* [PATCH] ACPI: EC: Don't init EC early if it has no _INI
@ 2007-11-15 18:52 Alexey Starikovskiy
2007-11-19 6:45 ` Len Brown
0 siblings, 1 reply; 3+ messages in thread
From: Alexey Starikovskiy @ 2007-11-15 18:52 UTC (permalink / raw)
To: LenBrown; +Cc: Linux-acpi
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 <astarikovskiy@suse.de>
---
drivers/acpi/ec.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 06b78e5..56afe13 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -881,12 +881,20 @@ int __init acpi_ec_ecdt_probe(void)
boot_ec->gpe = ecdt_ptr->gpe;
boot_ec->handle = ACPI_ROOT_OBJECT;
} else {
+ /* This workaround is needed only on some broken machines,
+ * which require early EC, but fail to provide ECDT */
+ 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;
+ /* We really need to limit this workaround, the only ASUS,
+ * which needs it, has fake EC._INI method, so use it as flag.
+ */
+ if (ACPI_FAILURE(acpi_get_handle(boot_ec->handle, "_INI", &x)))
+ goto error;
}
ret = ec_install_handlers(boot_ec);
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ACPI: EC: Don't init EC early if it has no _INI
2007-11-15 18:52 [PATCH] ACPI: EC: Don't init EC early if it has no _INI Alexey Starikovskiy
@ 2007-11-19 6:45 ` Len Brown
0 siblings, 0 replies; 3+ messages in thread
From: Len Brown @ 2007-11-19 6:45 UTC (permalink / raw)
To: Alexey Starikovskiy; +Cc: Linux-acpi
applied.
thanks,
-len
On Thursday 15 November 2007 13:52, Alexey Starikovskiy wrote:
> 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 <astarikovskiy@suse.de>
> ---
>
> drivers/acpi/ec.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
> index 06b78e5..56afe13 100644
> --- a/drivers/acpi/ec.c
> +++ b/drivers/acpi/ec.c
> @@ -881,12 +881,20 @@ int __init acpi_ec_ecdt_probe(void)
> boot_ec->gpe = ecdt_ptr->gpe;
> boot_ec->handle = ACPI_ROOT_OBJECT;
> } else {
> + /* This workaround is needed only on some broken machines,
> + * which require early EC, but fail to provide ECDT */
> + 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;
> + /* We really need to limit this workaround, the only ASUS,
> + * which needs it, has fake EC._INI method, so use it as flag.
> + */
> + if (ACPI_FAILURE(acpi_get_handle(boot_ec->handle, "_INI", &x)))
> + goto error;
> }
>
> ret = ec_install_handlers(boot_ec);
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] ACPI: EC: Don't init EC early if it has no _INI
@ 2007-11-03 10:12 Alexey Starikovskiy
0 siblings, 0 replies; 3+ messages in thread
From: Alexey Starikovskiy @ 2007-11-03 10:12 UTC (permalink / raw)
To: LenBrown; +Cc: Linux-acpi
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 <astarikovskiy@suse.de>
---
drivers/acpi/ec.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 06b78e5..d4dc38f 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -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);
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-11-19 16:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-15 18:52 [PATCH] ACPI: EC: Don't init EC early if it has no _INI Alexey Starikovskiy
2007-11-19 6:45 ` Len Brown
-- strict thread matches above, loose matches on Subject: below --
2007-11-03 10:12 Alexey Starikovskiy
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.