Re: acer-wmi broken in latest git kernel on TravelMate 6492(Insufficient arguments - method [WQAA])

From: Sven Wegener
Date: Sat Aug 02 2008 - 13:02:20 EST


On Sat, 2 Aug 2008, Carlos Corbacho wrote:

> On Saturday 02 August 2008 16:50:54 Sven Wegener wrote:
> > Is it a bug in acer-wmi or in Acer's ACPI implementation? I can provide
> > more information as necessary.
>
> Neither - it's a bug in wmi.c
>
> Try the following patch:
> ---
> ACPI: WMI: Set instance for query block calls
>
> From: Carlos Corbacho <carlos@xxxxxxxxxxxxxxxxxxx>
>
> Although the necessary data structure was set up, it was never actually
> passed in, so data block calls have only been working by sheer chance.
>
> (On Acer laptops. the data block methods we've been calling never look at
> the instance value, hence acer-wmi never triggered this before).
>
> f3454ae8104efb2dbf0d08ec42c6f5d0fe9225bc brought this to light.
>
> Signed-off-by: Carlos Corbacho <carlos@xxxxxxxxxxxxxxxxxxx>

Yep, that fixes it, thanks.

Tested-by: Sven Wegener <sven.wegener@xxxxxxxxxxx>

> diff --git a/drivers/acpi/wmi.c b/drivers/acpi/wmi.c
> index c33b1c6..cfe2c83 100644
> --- a/drivers/acpi/wmi.c
> +++ b/drivers/acpi/wmi.c
> @@ -347,7 +347,7 @@ struct acpi_buffer *out)
> strcpy(method, "WQ");
> strncat(method, block->object_id, 2);
>
> - status = acpi_evaluate_object(handle, method, NULL, out);
> + status = acpi_evaluate_object(handle, method, &input, out);
>
> /*
> * If ACPI_WMI_EXPENSIVE, call the relevant WCxx method, even if
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/