ACPI: EC: Don't init EC early if it has no _INI
PATCH 1/1 ACPI: EC: Don't init EC early if it has no _INI
Option to init EC early inserted to handle #8598 ASUS problem, introduced several others.
EC driver in this particular case has fake _INI method, not present on other machines, which don't need or break from this workaround, so lets use its presence as a flag for early init.
Reference: http://bugzilla.kernel.org/show_bug.cgi?id=9262
Reference: http://bugzilla.kernel.org/show_bug.cgi?id=8598
Reference: https://bugzilla.novell.com/show_bug.cgi?id=334806
Signed-off-by Alexey Starikovskiy <[email protected]>
---
drivers/acpi/ec.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/acpi/ec.c +3 -0
@@ -881,12 +881,15 @@ int __init acpi_ec_ecdt_probe(void) boot_ec->gpe = ecdt_ptr->gpe; boot_ec->handle =ACPI_ROOT_OBJECT ; }else { +acpi_handle x; printk(KERN_DEBUG PREFIX "Look up EC in DSDT\n"); status =acpi_get_devices (ec_device_ids[0 ].id, ec_parse_device, boot_ec,NULL );/* Check that acpi_get_devices actually find something */ if (ACPI_FAILURE (status) || !boot_ec->handle) goto error; +if (ACPI_FAILURE (acpi_get_handle (boot_ec->handle,"_INI" , &x))) + goto error; } ret =ec_install_handlers (boot_ec);