|
Lines 146-161
Link Here
|
| 146 |
.disp_set = "SDSP" |
146 |
.disp_set = "SDSP" |
| 147 |
}, |
147 |
}, |
| 148 |
{ |
148 |
{ |
|
|
149 |
.name = "A3E", |
| 150 |
.mled_set = "MLED", |
| 151 |
.wled_set = "WLED", |
| 152 |
.lcd_get = "\\_SB.PCI0.SBRG.EC0.RPIN(0x67)", |
| 153 |
.lcd_set = "\\_SB.PCI0.SBRG.EC0._Q10", |
| 154 |
.brn_get = "GPLV", |
| 155 |
.brn_set = "SPLV", |
| 156 |
.disp_get = "\\_SB.PCI0.P0P2.VGA.GETD", |
| 157 |
.disp_set = "SDSP" |
| 158 |
}, |
| 159 |
{ |
| 160 |
.name = "A3F", |
| 161 |
.mled_set = "MLED", |
| 162 |
.wled_set = "WLED", |
| 163 |
.bled_set = "BLED", |
| 164 |
.lcd_get = "\\_SB.PCI0.SBRG.EC0.RPIN(0x11)", |
| 165 |
.lcd_set = "\\_SB.PCI0.SBRG.EC0._Q10", |
| 166 |
.brn_get = "GPLV", |
| 167 |
.brn_set = "SPLV", |
| 168 |
.disp_get = "\\SSTE", |
| 169 |
.disp_set = "SDSP" |
| 170 |
}, |
| 171 |
{ |
| 149 |
.name = "A3N", |
172 |
.name = "A3N", |
| 150 |
.mled_set = "MLED", |
173 |
.mled_set = "MLED", |
| 151 |
.bled_set = "BLED", |
174 |
.bled_set = "BLED", |
| 152 |
.wled_set = "WLED", |
175 |
.wled_set = "WLED", |
| 153 |
.lcd_get = NULL, |
176 |
.lcd_get = "\\BKLT", |
| 154 |
.lcd_set = "\\_SB.PCI0.SBRG.EC0._Q10", |
177 |
.lcd_set = "\\_SB.PCI0.SBRG.EC0._Q10", |
|
|
178 |
.brn_get = "GPLV", |
| 155 |
.brn_set = "SPLV", |
179 |
.brn_set = "SPLV", |
| 156 |
.brn_get = "SDSP", |
180 |
.disp_get = "\\_SB.PCI0.P0P3.VGA.GETD", |
| 157 |
.disp_set = "SDSP", |
181 |
.disp_set = "SDSP" |
| 158 |
.disp_get = "\\_SB.PCI0.P0P3.VGA.GETD" |
|
|
| 159 |
}, |
182 |
}, |
| 160 |
{ |
183 |
{ |
| 161 |
.name = "A4D", |
184 |
.name = "A4D", |
|
Lines 354-359
Link Here
|
| 354 |
{ .name = NULL } |
377 |
{ .name = NULL } |
| 355 |
}; |
378 |
}; |
| 356 |
|
379 |
|
|
|
380 |
/* |
| 381 |
* EeePC have an Asus ASUS010 gadget interface, |
| 382 |
* but they can't be probed quite the same way as Asus laptops. |
| 383 |
*/ |
| 384 |
static struct acpi_asus_model acpi_eeepc_models[] = { |
| 385 |
{ |
| 386 |
.name = "EEE", |
| 387 |
.brn_get = "\\_SB.ATKD.PBLG", |
| 388 |
.brn_set = "\\_SB.ATKD.PBLS" |
| 389 |
}, |
| 390 |
|
| 391 |
{ .name = NULL } |
| 392 |
}; |
| 393 |
|
| 357 |
static struct { |
394 |
static struct { |
| 358 |
char *name; |
395 |
char *name; |
| 359 |
char *description; |
396 |
char *description; |
|
Lines 423-435
Link Here
|
| 423 |
ACPI_BUFFER Buf; |
460 |
ACPI_BUFFER Buf; |
| 424 |
ACPI_OBJECT Arg, *Obj; |
461 |
ACPI_OBJECT Arg, *Obj; |
| 425 |
ACPI_OBJECT_LIST Args; |
462 |
ACPI_OBJECT_LIST Args; |
| 426 |
static char *asus_ids[] = { "ATK0100", NULL }; |
463 |
static char *asus_ids[] = { "ATK0100", "ASUS010", NULL }; |
|
|
464 |
char *rstr; |
| 427 |
|
465 |
|
| 428 |
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); |
466 |
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); |
| 429 |
|
467 |
|
| 430 |
if (acpi_disabled("asus") || |
468 |
if (acpi_disabled("asus")) |
| 431 |
ACPI_ID_PROBE(device_get_parent(dev), dev, asus_ids) == NULL) |
|
|
| 432 |
return (ENXIO); |
469 |
return (ENXIO); |
|
|
470 |
rstr = ACPI_ID_PROBE(device_get_parent(dev), dev, asus_ids); |
| 471 |
if (rstr == NULL) { |
| 472 |
return (ENXIO); |
| 473 |
} |
| 433 |
|
474 |
|
| 434 |
sc = device_get_softc(dev); |
475 |
sc = device_get_softc(dev); |
| 435 |
sc->dev = dev; |
476 |
sc->dev = dev; |
|
Lines 468-473
Link Here
|
| 468 |
AcpiOsFree(Buf.Pointer); |
509 |
AcpiOsFree(Buf.Pointer); |
| 469 |
return (0); |
510 |
return (0); |
| 470 |
} |
511 |
} |
|
|
512 |
|
| 513 |
/* if EeePC */ |
| 514 |
if(strncmp("ASUS010", rstr, 7) == 0) { |
| 515 |
sc->model = &acpi_eeepc_models[0]; |
| 516 |
device_set_desc(dev, "ASUS EeePC"); |
| 517 |
AcpiOsFree(Buf.Pointer); |
| 518 |
return (0); |
| 519 |
} |
| 471 |
} |
520 |
} |
| 472 |
|
521 |
|
| 473 |
sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND); |
522 |
sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND); |
|
Lines 511-516
Link Here
|
| 511 |
else if (strncmp(model->name, "A2x", 3) == 0 && |
560 |
else if (strncmp(model->name, "A2x", 3) == 0 && |
| 512 |
strncmp(Obj->String.Pointer, "A2", 2) == 0) |
561 |
strncmp(Obj->String.Pointer, "A2", 2) == 0) |
| 513 |
goto good; |
562 |
goto good; |
|
|
563 |
else if (strncmp(model->name, "A3F", 3) == 0 && |
| 564 |
strncmp(Obj->String.Pointer, "A6F", 3) == 0) |
| 565 |
goto good; |
| 514 |
else if (strncmp(model->name, "D1x", 3) == 0 && |
566 |
else if (strncmp(model->name, "D1x", 3) == 0 && |
| 515 |
strncmp(Obj->String.Pointer, "D1", 2) == 0) |
567 |
strncmp(Obj->String.Pointer, "D1", 2) == 0) |
| 516 |
goto good; |
568 |
goto good; |