diff options
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r-- | drivers/acpi/ec.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 0e70181f150c..73c76d646064 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -1446,10 +1446,30 @@ ec_parse_io_ports(struct acpi_resource *resource, void *context) | |||
1446 | return AE_OK; | 1446 | return AE_OK; |
1447 | } | 1447 | } |
1448 | 1448 | ||
1449 | int __init acpi_boot_ec_enable(void) | 1449 | static const struct acpi_device_id ec_device_ids[] = { |
1450 | {"PNP0C09", 0}, | ||
1451 | {"", 0}, | ||
1452 | }; | ||
1453 | |||
1454 | int __init acpi_ec_dsdt_probe(void) | ||
1450 | { | 1455 | { |
1451 | if (!boot_ec) | 1456 | acpi_status status; |
1457 | |||
1458 | if (boot_ec) | ||
1452 | return 0; | 1459 | return 0; |
1460 | |||
1461 | /* | ||
1462 | * Finding EC from DSDT if there is no ECDT EC available. When this | ||
1463 | * function is invoked, ACPI tables have been fully loaded, we can | ||
1464 | * walk namespace now. | ||
1465 | */ | ||
1466 | boot_ec = make_acpi_ec(); | ||
1467 | if (!boot_ec) | ||
1468 | return -ENOMEM; | ||
1469 | status = acpi_get_devices(ec_device_ids[0].id, | ||
1470 | ec_parse_device, boot_ec, NULL); | ||
1471 | if (ACPI_FAILURE(status) || !boot_ec->handle) | ||
1472 | return -ENODEV; | ||
1453 | if (!ec_install_handlers(boot_ec)) { | 1473 | if (!ec_install_handlers(boot_ec)) { |
1454 | first_ec = boot_ec; | 1474 | first_ec = boot_ec; |
1455 | return 0; | 1475 | return 0; |
@@ -1457,11 +1477,6 @@ int __init acpi_boot_ec_enable(void) | |||
1457 | return -EFAULT; | 1477 | return -EFAULT; |
1458 | } | 1478 | } |
1459 | 1479 | ||
1460 | static const struct acpi_device_id ec_device_ids[] = { | ||
1461 | {"PNP0C09", 0}, | ||
1462 | {"", 0}, | ||
1463 | }; | ||
1464 | |||
1465 | #if 0 | 1480 | #if 0 |
1466 | /* | 1481 | /* |
1467 | * Some EC firmware variations refuses to respond QR_EC when SCI_EVT is not | 1482 | * Some EC firmware variations refuses to respond QR_EC when SCI_EVT is not |