2012-06-20 03:47:43

by Alex Hung

[permalink] [raw]
Subject: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

According to responses from the BIOS team, ASUS_WMI_METHODID_DSTS2
(0x53545344) will be used as future DSTS ID. In addition, calling
asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL) returns
ASUS_WMI_UNSUPPORTED_METHOD in new ASUS laptop PCs. This patch fixes
no DSTS ID will be assigned in this case.

Signed-off-by: Alex Hung <[email protected]>
---
drivers/platform/x86/asus-wmi.c | 7 +------
1 files changed, 1 insertions(+), 6 deletions(-)

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 25e3093..0f69a97 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -1461,14 +1461,9 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
*/
if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, 0, 0, NULL))
asus->dsts_id = ASUS_WMI_METHODID_DSTS;
- else if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL))
+ else
asus->dsts_id = ASUS_WMI_METHODID_DSTS2;

- if (!asus->dsts_id) {
- pr_err("Can't find DSTS");
- return -ENODEV;
- }
-
/* CWAP allow to define the behavior of the Fn+F2 key,
* this method doesn't seems to be present on Eee PCs */
if (asus->driver->quirks->wapf >= 0)
--
1.7.0.4


2012-06-20 03:50:47

by Alex Hung

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

Hi All,

The attached is acpi and dmi dumps and dmesg logs of before and after
applying the patch for references.

Best Regards,
Alex Hung

On 06/20/2012 11:47 AM, Alex Hung wrote:
> According to responses from the BIOS team, ASUS_WMI_METHODID_DSTS2
> (0x53545344) will be used as future DSTS ID. In addition, calling
> asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL) returns
> ASUS_WMI_UNSUPPORTED_METHOD in new ASUS laptop PCs. This patch fixes
> no DSTS ID will be assigned in this case.
>
> Signed-off-by: Alex Hung<[email protected]>
> ---
> drivers/platform/x86/asus-wmi.c | 7 +------
> 1 files changed, 1 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 25e3093..0f69a97 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -1461,14 +1461,9 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
> */
> if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, 0, 0, NULL))
> asus->dsts_id = ASUS_WMI_METHODID_DSTS;
> - else if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL))
> + else
> asus->dsts_id = ASUS_WMI_METHODID_DSTS2;
>
> - if (!asus->dsts_id) {
> - pr_err("Can't find DSTS");
> - return -ENODEV;
> - }
> -
> /* CWAP allow to define the behavior of the Fn+F2 key,
> * this method doesn't seems to be present on Eee PCs */
> if (asus->driver->quirks->wapf>= 0)


Attachments:
asus-wmi-dump.tar (133.78 kB)

2012-06-26 21:40:13

by Jonathan Nieder

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

Hi Alex,

Alex Hung wrote:

> According to responses from the BIOS team, ASUS_WMI_METHODID_DSTS2
> (0x53545344) will be used as future DSTS ID. In addition, calling
> asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL) returns
> ASUS_WMI_UNSUPPORTED_METHOD in new ASUS laptop PCs. This patch fixes
> no DSTS ID will be assigned in this case.

Tested-by: Carsten Otto <[email protected]> # 3.2.21, Asus UX31A

More precisely, Carsten was unable to use asus_wmi, getting the
following message from a distro kernel based on 3.4.1 and from
unpatched 3.2.21:[1]

| asus_wmi: Can't find DSTS

After applying the patch described above to 3.2.21, multimedia keys
work.

| The patch works, dmesg before and after are attached.
|
| With the patched kernel I can (at least) change the volume using the
| Fn keys, gnome shows some audio related icons and a changing (volume)
| bar. I did not try further than that (yet).

This is on an Asus Zenbook Prime (UX31A). acpidump, logs, and other
info are at [1]. Could you remind me when this hits mainline so we
can make sure it gets applied to earlier kernels, for example by
adding "Cc: [email protected]" to the commit message?

Thanks and hope that helps,
Jonathan

[1] http://bugs.debian.org/679158

2012-06-26 22:28:19

by Carsten Otto

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

Dear all,

On Tue, Jun 26, 2012 at 04:39:58PM -0500, Jonathan Nieder wrote:
> After applying the patch described above to 3.2.21, multimedia keys
> work.

To be precise, only some of the Fn keys work. I will update the
bug report at http://bugs.debian.org/679158 now. Please contact me if
you need further information,

Best regards,
--
Carsten Otto [email protected]
LuFG Informatik 2 http://verify.rwth-aachen.de/otto/
RWTH Aachen phone: +49 241 80-21211


Attachments:
(No filename) (497.00 B)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-06-27 07:53:43

by Alex Hung

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

On 06/27/2012 05:58 AM, Carsten Otto wrote:
> Dear all,
>
> On Tue, Jun 26, 2012 at 04:39:58PM -0500, Jonathan Nieder wrote:
>> After applying the patch described above to 3.2.21, multimedia keys
>> work.
>
> To be precise, only some of the Fn keys work. I will update the
> bug report at http://bugs.debian.org/679158 now. Please contact me if
> you need further information,
>
> Best regards,

Some Fn keys fail to work is probably the result of un-handled events,
i.e. asus_wmi: Unknown key 7a pressed.

Do you always receive the error messages for each of the Fn-keys that
fails? I can take a closer look and try to fix each of them. I don't
have a Asus Zenbook Prime but I can check on other available Asus machines.

Best Regards,
Alex Hung

2012-06-27 22:17:50

by Jonathan Nieder

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

Hi Alex,

Alex Hung wrote:

> Some Fn keys fail to work is probably the result of un-handled
> events, i.e. asus_wmi: Unknown key 7a pressed.
>
> Do you always receive the error messages for each of the Fn-keys
> that fails? I can take a closer look and try to fix each of them. I
> don't have a Asus Zenbook Prime but I can check on other available
> Asus machines.

It looks like your message didn't reach Carsten. I'm cc-ing him now.

See http://bugs.debian.org/679158#62 for a summary of what each Fn-key
that fails does (it varies from key to key).

Regards,
Jonathan

2012-06-28 08:18:33

by Carsten Otto

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

Hi,

On Wed, Jun 27, 2012 at 05:17:43PM -0500, Jonathan Nieder wrote:
> It looks like your message didn't reach Carsten. I'm cc-ing him now.

Thanks, where did the original message go? :)

> See http://bugs.debian.org/679158#62 for a summary of what each Fn-key
> that fails does (it varies from key to key).

That list is correct. To clarify, the "Unknown key 7a pressed" message
only appears with Fn+A.

According to the following thread, some Ubuntu users managed to get more
buttons to work. The test module/program/? can be downloaded from #49
and #30 (I attached the files).

http://ubuntuforums.org/showthread.php?t=2005756&page=5

Best regards,
--
Carsten Otto [email protected]
LuFG Informatik 2 http://verify.rwth-aachen.de/otto/
RWTH Aachen phone: +49 241 80-21211


Attachments:
(No filename) (0.00 B)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-06-29 12:21:39

by Corentin Chary

[permalink] [raw]
Subject: Re: [PATCH] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

On Wed, Jun 20, 2012 at 5:47 AM, Alex Hung <[email protected]> wrote:
> According to responses from the BIOS team, ASUS_WMI_METHODID_DSTS2
> (0x53545344) will be used as future DSTS ID. In addition, calling
> asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL) returns
> ASUS_WMI_UNSUPPORTED_METHOD in new ASUS laptop PCs. This patch fixes
> no DSTS ID will be assigned in this case.
>
> Signed-off-by: Alex Hung <[email protected]>
> ---
>  drivers/platform/x86/asus-wmi.c |    7 +------
>  1 files changed, 1 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 25e3093..0f69a97 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -1461,14 +1461,9 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
>         */
>        if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, 0, 0, NULL))
>                asus->dsts_id = ASUS_WMI_METHODID_DSTS;
> -       else if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL))
> +       else
>                asus->dsts_id = ASUS_WMI_METHODID_DSTS2;
>
> -       if (!asus->dsts_id) {
> -               pr_err("Can't find DSTS");
> -               return -ENODEV;
> -       }
> -
>        /* CWAP allow to define the behavior of the Fn+F2 key,
>         * this method doesn't seems to be present on Eee PCs */
>        if (asus->driver->quirks->wapf >= 0)
> --
> 1.7.0.4
>

Hum, I don't like acking patches referencing documentation I can't
read, but I don't really have the choice !

Matthew, could you merge this one ?
Thanks,

Acked-By: Corentin Chary <[email protected]>


--
Corentin Chary
http://xf.iksaif.net