* Acer-WMI: Iconia TAB W500 gyrosensor
@ 2012-05-01 15:31 Marek Vasut
2012-05-02 1:37 ` joeyli
[not found] ` <1336436380.5272.5047.camel@linux-s257.site>
0 siblings, 2 replies; 6+ messages in thread
From: Marek Vasut @ 2012-05-01 15:31 UTC (permalink / raw)
To: jlee; +Cc: platform-driver-x86
Hello,
I've been poking around the W500 gyrosensor.
* When the device is tilted, it generates PNP0C14 event.
* This is caught by acer_wmi_notify() in drivers/platform/x86/acer-wmi.c
Now it gets interesting ;-)
The obj->buffer.pointer contains the following:
0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x00
That means, return_value.function is 0x05, instead of 0x01 (WMID_HOTKEY_EVENT).
I've been poking around for quite a bit, but so far didn't get any further data
from it but this event. Any idea how to progress please? I think I just need to
call some of the methods (see below) that'll return the values from the
gyrosensor.
Find "fwts wmi -" below:
00012 wmi Test 1 of 2: Check Windows Management Instrumentation in
DSDT
00013 wmi Found WMI Event, Notifier ID: 0xbc, GUID:
676AA15E-6A47-4D9F-A2CC-1E6D18D14026, Instance 0x01
00014 wmi PASSED: Test 1, GUID 676AA15E-6A47-4D9F-A2CC-1E6D18D14026
is handled by driver acer-wmi (Vendor: Acer).
00015 wmi Found WMI Method WMAA with GUID: 61EF69EA-865C-4BC3-A502-
A0DEBA0CB531, Instance 0x01
00016 wmi PASSED: Test 1, GUID 61EF69EA-865C-4BC3-A502-A0DEBA0CB531
is handled by driver acer-wmi (Vendor: Acer).
00017 wmi Found WMI Method WMBL with GUID:
FE1DBBDA-3014-4856-870C-5B3A744BF341, Instance 0x01
00018 wmi Found WMI Method WMBE with GUID:
79772EC5-04B1-4BFD-843C-61E7F77B6CC9, Instance 0x01
00019 wmi Found WMI Method WMBK with GUID: F75F5666-B8B3-4A5D-
A91C-7488F62E5637, Instance 0x01
00020 wmi Found WMI Object, Object ID AB, GUID: 05901221-D566-11D1-
B2F0-00A0C9062910, Instance 0x01, Flags: 00
00021 wmi Found WMI Object, Object ID 00, GUID: 39142400-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00022 wmi Found WMI Object, Object ID 01, GUID: 49142400-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00023 wmi Found WMI Object, Object ID 02, GUID: 4A142400-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00024 wmi Found WMI Object, Object ID 11, GUID: 49142401-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00025 wmi Found WMI Object, Object ID 12, GUID: 4A142401-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00026 wmi Found WMI Object, Object ID 21, GUID: 49142402-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00027 wmi Found WMI Object, Object ID 22, GUID: 4A142402-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00028 wmi Found WMI Object, Object ID 31, GUID: 49142403-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00029 wmi Found WMI Object, Object ID 32, GUID: 4A142403-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00030 wmi Found WMI Object, Object ID 41, GUID: 49142404-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00031 wmi Found WMI Object, Object ID 42, GUID: 4A142404-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00032 wmi Found WMI Object, Object ID 51, GUID: 49142405-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00033 wmi Found WMI Object, Object ID 52, GUID: 4A142405-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00034 wmi Found WMI Object, Object ID 61, GUID: 49142406-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00035 wmi Found WMI Object, Object ID 62, GUID: 4A142406-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00036 wmi Found WMI Object, Object ID 71, GUID: 49142407-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00037 wmi Found WMI Object, Object ID 72, GUID: 4A142407-C6A3-40FA-
BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00038 wmi Found WMI Event, Notifier ID: 0x80, GUID: 59142400-
C6A3-40FA-BADB-8A2652834100, Instance 0x01
00039 wmi FAILED [MEDIUM] WMIUnknownGUID: Test 1, GUID 59142400-
C6A3-40FA-BADB-8A2652834100 is unknown to the kernel, a driver may need to be
implemented for this GUID.
00040 wmi
00041 wmi ADVICE: A WMI driver probably needs to be written for this
event.
00042 wmi It can checked for using: wmi_has_guid("59142400-
C6A3-40FA-BADB-8A2652834100").
00043 wmi One can install a notify handler using
wmi_install_notify_handler("59142400-C6A3-40FA-BADB-8A2652834100", handler,
NULL).
00044 wmi http://lwn.net/Articles/391230 describes how to write an
appropriate driver.
00045 wmi
00046 wmi Found WMI Method WM05 with GUID: 69142400-C6A3-40FA-
BADB-8A2652834100, Instance 0x01
00047 wmi Found WMI Method WM06 with GUID: 79142400-C6A3-40FA-
BADB-8A2652834100, Instance 0x01
00048 wmi Found WMI Method WM07 with GUID: 89142400-C6A3-40FA-
BADB-8A2652834100, Instance 0x01
00049 wmi Found WMI Object, Object ID BA, GUID: 05901221-D566-11D1-
B2F0-00A0C9062910, Instance 0x01, Flags: 01 WMI_EXPENSIVE
00050 wmi
00051 wmi Test 2 of 2: Check Windows Management Instrumentation in
SSDT
00052 wmi No WMI data found in table SSDT1.
00053 wmi No WMI data found in table SSDT2.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Acer-WMI: Iconia TAB W500 gyrosensor
2012-05-01 15:31 Acer-WMI: Iconia TAB W500 gyrosensor Marek Vasut
@ 2012-05-02 1:37 ` joeyli
[not found] ` <201205020446.41735.marek.vasut@gmail.com>
[not found] ` <1336436380.5272.5047.camel@linux-s257.site>
1 sibling, 1 reply; 6+ messages in thread
From: joeyli @ 2012-05-02 1:37 UTC (permalink / raw)
To: Marek Vasut; +Cc: jlee, platform-driver-x86
Hi Marek,
於 二,2012-05-01 於 17:31 +0200,Marek Vasut 提到:
> Hello,
>
> I've been poking around the W500 gyrosensor.
>
Interesting!
> * When the device is tilted, it generates PNP0C14 event.
> * This is caught by acer_wmi_notify() in drivers/platform/x86/acer-wmi.c
>
> Now it gets interesting ;-)
>
> The obj->buffer.pointer contains the following:
> 0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x00
> That means, return_value.function is 0x05, instead of 0x01 (WMID_HOTKEY_EVENT).
Yes, the 0x05 event is a event reflect to g-sensor, but I don't have any
hardware can test it.
Did you see any other value but not just "0x05 0x01 0x00 0x00 0x00 0x00
0x00 0x00" ?
I mean if you invert your table, did you see other return value? The
return data must point to Portrait or Landscape view.
> I've been poking around for quite a bit, but so far didn't get any further data
> from it but this event. Any idea how to progress please? I think I just need to
> call some of the methods (see below) that'll return the values from the
> gyrosensor.
>
> Find "fwts wmi -" below:
>
> 00012 wmi Test 1 of 2: Check Windows Management Instrumentation in
> DSDT
> 00013 wmi Found WMI Event, Notifier ID: 0xbc, GUID:
> 676AA15E-6A47-4D9F-A2CC-1E6D18D14026, Instance 0x01
> 00014 wmi PASSED: Test 1, GUID 676AA15E-6A47-4D9F-A2CC-1E6D18D14026
> is handled by driver acer-wmi (Vendor: Acer).
> 00015 wmi Found WMI Method WMAA with GUID: 61EF69EA-865C-4BC3-A502-
> A0DEBA0CB531, Instance 0x01
> 00016 wmi PASSED: Test 1, GUID 61EF69EA-865C-4BC3-A502-A0DEBA0CB531
> is handled by driver acer-wmi (Vendor: Acer).
> 00017 wmi Found WMI Method WMBL with GUID:
> FE1DBBDA-3014-4856-870C-5B3A744BF341, Instance 0x01
> 00018 wmi Found WMI Method WMBE with GUID:
> 79772EC5-04B1-4BFD-843C-61E7F77B6CC9, Instance 0x01
> 00019 wmi Found WMI Method WMBK with GUID: F75F5666-B8B3-4A5D-
> A91C-7488F62E5637, Instance 0x01
> 00020 wmi Found WMI Object, Object ID AB, GUID: 05901221-D566-11D1-
> B2F0-00A0C9062910, Instance 0x01, Flags: 00
> 00021 wmi Found WMI Object, Object ID 00, GUID: 39142400-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00022 wmi Found WMI Object, Object ID 01, GUID: 49142400-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00023 wmi Found WMI Object, Object ID 02, GUID: 4A142400-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00024 wmi Found WMI Object, Object ID 11, GUID: 49142401-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00025 wmi Found WMI Object, Object ID 12, GUID: 4A142401-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00026 wmi Found WMI Object, Object ID 21, GUID: 49142402-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00027 wmi Found WMI Object, Object ID 22, GUID: 4A142402-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00028 wmi Found WMI Object, Object ID 31, GUID: 49142403-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00029 wmi Found WMI Object, Object ID 32, GUID: 4A142403-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00030 wmi Found WMI Object, Object ID 41, GUID: 49142404-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00031 wmi Found WMI Object, Object ID 42, GUID: 4A142404-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00032 wmi Found WMI Object, Object ID 51, GUID: 49142405-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00033 wmi Found WMI Object, Object ID 52, GUID: 4A142405-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00034 wmi Found WMI Object, Object ID 61, GUID: 49142406-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00035 wmi Found WMI Object, Object ID 62, GUID: 4A142406-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00036 wmi Found WMI Object, Object ID 71, GUID: 49142407-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00037 wmi Found WMI Object, Object ID 72, GUID: 4A142407-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00038 wmi Found WMI Event, Notifier ID: 0x80, GUID: 59142400-
> C6A3-40FA-BADB-8A2652834100, Instance 0x01
> 00039 wmi FAILED [MEDIUM] WMIUnknownGUID: Test 1, GUID 59142400-
> C6A3-40FA-BADB-8A2652834100 is unknown to the kernel, a driver may need to be
> implemented for this GUID.
> 00040 wmi
> 00041 wmi ADVICE: A WMI driver probably needs to be written for this
> event.
> 00042 wmi It can checked for using: wmi_has_guid("59142400-
> C6A3-40FA-BADB-8A2652834100").
> 00043 wmi One can install a notify handler using
> wmi_install_notify_handler("59142400-C6A3-40FA-BADB-8A2652834100", handler,
> NULL).
> 00044 wmi http://lwn.net/Articles/391230 describes how to write an
> appropriate driver.
> 00045 wmi
> 00046 wmi Found WMI Method WM05 with GUID: 69142400-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01
> 00047 wmi Found WMI Method WM06 with GUID: 79142400-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01
> 00048 wmi Found WMI Method WM07 with GUID: 89142400-C6A3-40FA-
> BADB-8A2652834100, Instance 0x01
> 00049 wmi Found WMI Object, Object ID BA, GUID: 05901221-D566-11D1-
> B2F0-00A0C9062910, Instance 0x01, Flags: 01 WMI_EXPENSIVE
> 00050 wmi
> 00051 wmi Test 2 of 2: Check Windows Management Instrumentation in
> SSDT
> 00052 wmi No WMI data found in table SSDT1.
> 00053 wmi No WMI data found in table SSDT2.
>
> Best regards,
> Marek Vasut
>
Could you please kindly share the acpidump to me?
# acpidump > acpidump.dat
Thanks a lot!
Joey Lee
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Acer-WMI: Iconia TAB W500 gyrosensor
[not found] ` <201205020446.41735.marek.vasut@gmail.com>
@ 2012-05-07 19:38 ` Marek Vasut
0 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2012-05-07 19:38 UTC (permalink / raw)
To: joeyli; +Cc: jlee, platform-driver-x86
Dear joeyli,
>
> > Hi Marek,
> >
> > 於 二,2012-05-01 於 17:31 +0200,Marek Vasut 提到:
> >
> > > Hello,
> > >
> > > I've been poking around the W500 gyrosensor.
> >
> > Interesting!
> >
> > > * When the device is tilted, it generates PNP0C14 event.
> > > * This is caught by acer_wmi_notify() in
> > > drivers/platform/x86/acer-wmi.c
> > >
> > > Now it gets interesting ;-)
> > >
> > > The obj->buffer.pointer contains the following:
> > > 0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x00
> > >
> > > That means, return_value.function is 0x05, instead of 0x01
> > > (WMID_HOTKEY_EVENT).
> >
> > Yes, the 0x05 event is a event reflect to g-sensor, but I don't have any
> > hardware can test it.
> >
> > Did you see any other value but not just "0x05 0x01 0x00 0x00 0x00 0x00
> > 0x00 0x00" ?
>
> Nope, nothing at all. I flipped it back and forth, no result :(
>
> > I mean if you invert your table, did you see other return value? The
> > return data must point to Portrait or Landscape view.
>
> Nope, still zeroes. This is only some interrupt-like event I believe. My
> opinion is, I need to call some WMI method to actually read-back the data.
>
> > > I've been poking around for quite a bit, but so far didn't get any
> > > further data from it but this event. Any idea how to progress please? I
> > > think I just need to call some of the methods (see below) that'll
> > > return the values from the gyrosensor.
> > >
> > > Find "fwts wmi -" below:
> > >
> > > 00012 wmi Test 1 of 2: Check Windows Management
> > > Instrumentation in DSDT
> > > 00013 wmi Found WMI Event, Notifier ID: 0xbc, GUID:
> > > 676AA15E-6A47-4D9F-A2CC-1E6D18D14026, Instance 0x01
> > > 00014 wmi PASSED: Test 1, GUID
> > > 676AA15E-6A47-4D9F-A2CC-1E6D18D14026 is handled by driver acer-wmi
> > > (Vendor: Acer).
> > > 00015 wmi Found WMI Method WMAA with GUID:
> > > 61EF69EA-865C-4BC3-A502- A0DEBA0CB531, Instance 0x01
> > > 00016 wmi PASSED: Test 1, GUID
> > > 61EF69EA-865C-4BC3-A502-A0DEBA0CB531 is handled by driver acer-wmi
> > > (Vendor: Acer).
> > > 00017 wmi Found WMI Method WMBL with GUID:
> > > FE1DBBDA-3014-4856-870C-5B3A744BF341, Instance 0x01
> > > 00018 wmi Found WMI Method WMBE with GUID:
> > > 79772EC5-04B1-4BFD-843C-61E7F77B6CC9, Instance 0x01
> > > 00019 wmi Found WMI Method WMBK with GUID:
> > > F75F5666-B8B3-4A5D- A91C-7488F62E5637, Instance 0x01
> > > 00020 wmi Found WMI Object, Object ID AB, GUID:
> > > 05901221-D566-11D1- B2F0-00A0C9062910, Instance 0x01, Flags: 00
> > > 00021 wmi Found WMI Object, Object ID 00, GUID:
> > > 39142400-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00022 wmi Found WMI Object, Object ID 01, GUID:
> > > 49142400-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00023 wmi Found WMI Object, Object ID 02, GUID:
> > > 4A142400-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00024 wmi Found WMI Object, Object ID 11, GUID:
> > > 49142401-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00025 wmi Found WMI Object, Object ID 12, GUID:
> > > 4A142401-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00026 wmi Found WMI Object, Object ID 21, GUID:
> > > 49142402-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00027 wmi Found WMI Object, Object ID 22, GUID:
> > > 4A142402-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00028 wmi Found WMI Object, Object ID 31, GUID:
> > > 49142403-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00029 wmi Found WMI Object, Object ID 32, GUID:
> > > 4A142403-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00030 wmi Found WMI Object, Object ID 41, GUID:
> > > 49142404-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00031 wmi Found WMI Object, Object ID 42, GUID:
> > > 4A142404-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00032 wmi Found WMI Object, Object ID 51, GUID:
> > > 49142405-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00033 wmi Found WMI Object, Object ID 52, GUID:
> > > 4A142405-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00034 wmi Found WMI Object, Object ID 61, GUID:
> > > 49142406-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00035 wmi Found WMI Object, Object ID 62, GUID:
> > > 4A142406-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00036 wmi Found WMI Object, Object ID 71, GUID:
> > > 49142407-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00037 wmi Found WMI Object, Object ID 72, GUID:
> > > 4A142407-C6A3-40FA- BADB-8A2652834100, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00038 wmi Found WMI Event, Notifier ID: 0x80, GUID:
> > > 59142400- C6A3-40FA-BADB-8A2652834100, Instance 0x01
> > > 00039 wmi FAILED [MEDIUM] WMIUnknownGUID: Test 1, GUID
> > > 59142400- C6A3-40FA-BADB-8A2652834100 is unknown to the kernel, a
> > > driver may need to be implemented for this GUID.
> > > 00040 wmi
> > > 00041 wmi ADVICE: A WMI driver probably needs to be written
> > > for this event.
> > > 00042 wmi It can checked for using: wmi_has_guid("59142400-
> > > C6A3-40FA-BADB-8A2652834100").
> > > 00043 wmi One can install a notify handler using
> > > wmi_install_notify_handler("59142400-C6A3-40FA-BADB-8A2652834100",
> > > handler, NULL).
> > > 00044 wmi http://lwn.net/Articles/391230 describes how to
> > > write an appropriate driver.
> > > 00045 wmi
> > > 00046 wmi Found WMI Method WM05 with GUID:
> > > 69142400-C6A3-40FA- BADB-8A2652834100, Instance 0x01
> > > 00047 wmi Found WMI Method WM06 with GUID:
> > > 79142400-C6A3-40FA- BADB-8A2652834100, Instance 0x01
> > > 00048 wmi Found WMI Method WM07 with GUID:
> > > 89142400-C6A3-40FA- BADB-8A2652834100, Instance 0x01
> > > 00049 wmi Found WMI Object, Object ID BA, GUID:
> > > 05901221-D566-11D1- B2F0-00A0C9062910, Instance 0x01, Flags: 01
> > > WMI_EXPENSIVE
> > > 00050 wmi
> > > 00051 wmi Test 2 of 2: Check Windows Management
> > > Instrumentation in SSDT
> > > 00052 wmi No WMI data found in table SSDT1.
> > > 00053 wmi No WMI data found in table SSDT2.
> > >
> > > Best regards,
> > > Marek Vasut
> >
> > Could you please kindly share the acpidump to me?
> >
> > # acpidump > acpidump.dat
>
> Find attached. Thanks for your reply, I'm really lost with this, I spent
> some time on it and got nowhere :-(
Did you get anywhere with this stuff? Is there any way I can help you with this?
Thank you!
>
> > Thanks a lot!
> > Joey Lee
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Acer-WMI: Iconia TAB W500 gyrosensor
[not found] ` <1338133547.9751.3824.camel@linux-s257.site>
@ 2012-05-27 16:21 ` joeyli
2012-05-27 21:58 ` Marek Vasut
0 siblings, 1 reply; 6+ messages in thread
From: joeyli @ 2012-05-27 16:21 UTC (permalink / raw)
To: Marek Vasut; +Cc: platform-driver-x86
於 日,2012-05-27 於 23:45 +0800,joeyli 提到:
> 於 日,2012-05-27 於 10:28 +0200,Marek Vasut 提到:
> > Dear joeyli,
> >
> > > > Hi Marek,
> > > >
> > > > 於 一,2012-05-07 於 21:38 +0200,Marek Vasut 提到:
> > > >
> > > > > > > >
> > > > > > > > Now it gets interesting ;-)
> > > > > > > >
> > > > > > > > The obj->buffer.pointer contains the following:
> > > > > > > > 0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x00
> > > > > > > >
> > > > > > > > That means, return_value.function is 0x05, instead of 0x01
> > > > > > > > (WMID_HOTKEY_EVENT).
> > > > > > >
> > > > > > > Yes, the 0x05 event is a event reflect to g-sensor, but I don't
> > > > > > > have any hardware can test it.
> > > > > > >
> > > > > > > Did you see any other value but not just "0x05 0x01 0x00 0x00 0x00
> > > > > > > 0x00 0x00 0x00" ?
> > > > > >
> > > > > > Nope, nothing at all. I flipped it back and forth, no result :(
> > > > > >
> > > > > > > I mean if you invert your table, did you see other return value?
> > > > > > > The return data must point to Portrait or Landscape view.
> > > > > >
> > > > > > Nope, still zeroes. This is only some interrupt-like event I believe.
> > > > > > My opinion is, I need to call some WMI method to actually read-back
> > > > > > the data.
> > > > > >
> > > > > >
...
> > > >
> > > > Sorry! I am sticking on another critical issue. I will find a time to
> > > > trace TAB's DSDT at this week.
> > >
> > > No need to be sorry, I know exactly what you mean :) No need to rush, I'm
> > > stuck with a few bugs at work too.
> >
> > Hi, I'm starting to get curious again. Did you had time to look into it? Thanks
> > in advance!
> >
>
> Sorry for I am late to reply you!
...
> >
>
> I checked your DSDT, unfortunately I found the logic is empty for
> G-sesor in W500's DSDT.
>
> I mean, that's right we got only g-sensor event but didn't have sensor
> state data, because they didn't put the return value in DSDT!
>
> On you TAB W500, the _Q7C method should run by EC when G-sensor detected
> state change:
>
> Method (_Q7C, 0, NotSerialized)
> {
> If (LEqual (^^SENR.GSLC, Zero)) /* G sensor enabled? */
> {
> Store (0x05, Index (^^^WMID.FEBC, Zero)) /* 0x05 is Sensor Event */
> Store (One, Index (^^^WMID.FEBC, One)) /* 0x01 is G-Sensor */
> Notify (WMID, 0xBC)
> }
>
> If (LMST)
> {
> Return (Zero)
> }
> }
>
> You can enable ACPI debug message to verify _Q7C method run when you reverse TAB, add the
> following kernel parameter and reboot:
>
> acpi.debug_level=0x0000000F acpi.debug_layer=0xffffffff log_buf_len=5M
>
>
> The WMI event code in DSDT like this:
>
> Method (EVBC, 0, NotSerialized) /* call by _WED */
> {
> ...
> If (LEqual (Local0, One)) /* hotkey event */
> {
> ...
> If (LEqual (Local0, 0x05)) {} /* 0x05 is Sensor Event, why empty? */
> ...
> Store (Zero, Index (FEBC, 0x04)) /* all set to zero */
> Store (Zero, Index (FEBC, 0x05))
> Store (Zero, Index (FEBC, 0x06))
> Store (Zero, Index (FEBC, 0x07))
> ...
> Return (FEBC)
> }
>
>
> That's why we receive a G-sensor event but didn't have orientation information of TAB.
> On windows platform, I believe there have another driver listen and handle this g-sensor event when tab turned.
>
OK, there havse a "BST0001" acpi device should handle by a g-sensor
driver or a special acpi driver:
Scope (_SB.PCI0.LPC0)
{
Device (SENR)
{
Name (_HID, "BST0001")
Name (_UID, Zero)
Name (_STA, 0x0F)
Name (GSLC, Zero) /* G-sensor lock? */
Name (GSLX, Zero) /* X */
Name (GSLY, Zero) /* Y */
Name (GSLZ, Zero) /* Z */
...
Method (_INI, 0, NotSerialized)
...
Method (RDST, 0, NotSerialized)
{
...
Method (RDVL, 0, NotSerialized)
{
...
Method (WRVL, 1, NotSerialized)
{
...
There have 3 methods "RDST", "RDVL" and "WRVL", currently, no idea for
what functions provided by those 3 methods.
my _GUESS_:
"RDST" is read state?
"RDVL" is read value(what!?)
"WRVL" is write value?
My idea is just find out which method is for read the orientation of
G-sensor then we can use a driver raise it to userland.
Thanks a lot!
Joey Lee
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Acer-WMI: Iconia TAB W500 gyrosensor
2012-05-27 16:21 ` joeyli
@ 2012-05-27 21:58 ` Marek Vasut
2012-05-27 22:47 ` Marek Vasut
0 siblings, 1 reply; 6+ messages in thread
From: Marek Vasut @ 2012-05-27 21:58 UTC (permalink / raw)
To: joeyli; +Cc: platform-driver-x86
Dear joeyli,
> 於 日,2012-05-27 於 23:45 +0800,joeyli 提到:
>
> > 於 日,2012-05-27 於 10:28 +0200,Marek Vasut 提到:
> >
> > > Dear joeyli,
> > >
> > > > > Hi Marek,
> > > > >
> > > > > 於 一,2012-05-07 於 21:38 +0200,Marek Vasut 提到:
> > > > >
> > > > > > > > > Now it gets interesting ;-)
> > > > > > > > >
> > > > > > > > > The obj->buffer.pointer contains the following:
> > > > > > > > > 0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x00
> > > > > > > > >
> > > > > > > > > That means, return_value.function is 0x05, instead of 0x01
> > > > > > > > > (WMID_HOTKEY_EVENT).
> > > > > > > >
> > > > > > > > Yes, the 0x05 event is a event reflect to g-sensor, but I
> > > > > > > > don't have any hardware can test it.
> > > > > > > >
> > > > > > > > Did you see any other value but not just "0x05 0x01 0x00 0x00
> > > > > > > > 0x00 0x00 0x00 0x00" ?
> > > > > > >
> > > > > > > Nope, nothing at all. I flipped it back and forth, no result :(
> > > > > > >
> > > > > > > > I mean if you invert your table, did you see other return
> > > > > > > > value? The return data must point to Portrait or Landscape
> > > > > > > > view.
> > > > > > >
> > > > > > > Nope, still zeroes. This is only some interrupt-like event I
> > > > > > > believe. My opinion is, I need to call some WMI method to
> > > > > > > actually read-back the data.
>
> ...
>
> > > > > Sorry! I am sticking on another critical issue. I will find a time
> > > > > to trace TAB's DSDT at this week.
> > > >
> > > > No need to be sorry, I know exactly what you mean :) No need to rush,
> > > > I'm stuck with a few bugs at work too.
> > >
> > > Hi, I'm starting to get curious again. Did you had time to look into
> > > it? Thanks in advance!
> >
> > Sorry for I am late to reply you!
>
> ...
>
> > I checked your DSDT, unfortunately I found the logic is empty for
> > G-sesor in W500's DSDT.
> >
> > I mean, that's right we got only g-sensor event but didn't have sensor
> > state data, because they didn't put the return value in DSDT!
> >
> > On you TAB W500, the _Q7C method should run by EC when G-sensor detected
> >
> > state change:
> > Method (_Q7C, 0, NotSerialized)
> > {
> >
> > If (LEqual (^^SENR.GSLC, Zero)) /* G
> > sensor enabled? */ {
> >
> > Store (0x05, Index (^^^WMID.FEBC, Zero)) /* 0x05
> > is Sensor Event */ Store (One, Index (^^^WMID.FEBC,
> > One)) /* 0x01 is G-Sensor */ Notify (WMID,
> > 0xBC)
> >
> > }
> >
> > If (LMST)
> > {
> >
> > Return (Zero)
> >
> > }
> >
> > }
> >
> > You can enable ACPI debug message to verify _Q7C method run when you
> > reverse TAB, add the
> >
> > following kernel parameter and reboot:
> > acpi.debug_level=0x0000000F acpi.debug_layer=0xffffffff log_buf_len=5M
> >
> > The WMI event code in DSDT like this:
> > Method (EVBC, 0, NotSerialized) /* call by _WED
> > */ {
> >
> > ...
> >
> > If (LEqual (Local0, One)) /* hotkey event
> > */ {
> >
> > ...
> >
> > If (LEqual (Local0, 0x05)) {}
> > /* 0x05 is Sensor Event, why empty? */
> >
> > ...
> >
> > Store (Zero, Index (FEBC, 0x04)) /* all set to
zero */
> > Store (Zero, Index (FEBC, 0x05))
> > Store (Zero, Index (FEBC, 0x06))
> > Store (Zero, Index (FEBC, 0x07))
> >
> > ...
> >
> > Return (FEBC)
> >
> > }
> >
> > That's why we receive a G-sensor event but didn't have orientation
> > information of TAB. On windows platform, I believe there have another
> > driver listen and handle this g-sensor event when tab turned.
>
> OK, there havse a "BST0001" acpi device should handle by a g-sensor
> driver or a special acpi driver:
>
> Scope (_SB.PCI0.LPC0)
> {
> Device (SENR)
> {
> Name (_HID, "BST0001")
> Name (_UID, Zero)
> Name (_STA, 0x0F)
> Name (GSLC, Zero) /* G-sensor lock? */
> Name (GSLX, Zero) /* X */
> Name (GSLY, Zero) /* Y */
> Name (GSLZ, Zero) /* Z */
> ...
> Method (_INI, 0, NotSerialized)
> ...
> Method (RDST, 0, NotSerialized)
> {
> ...
> Method (RDVL, 0, NotSerialized)
> {
> ...
> Method (WRVL, 1, NotSerialized)
> {
> ...
>
>
> There have 3 methods "RDST", "RDVL" and "WRVL", currently, no idea for
> what functions provided by those 3 methods.
>
> my _GUESS_:
> "RDST" is read state?
> "RDVL" is read value(what!?)
> "WRVL" is write value?
>
> My idea is just find out which method is for read the orientation of
> G-sensor then we can use a driver raise it to userland.
Well, I'm getting somewhere, thanks for all your hints, they really blasted me
forward!
So, calling the _INI function, I get value of the G-Sensor kill switch (there's
a toggle on the bottom of the tablet to enable/disable input from the
accelerometer). So _INI returns integer, 0 for GS enabled, 1 for GS disabled. I
didn't get further (yet). Will keep you in loop!
Thanks!
>
> Thanks a lot!
> Joey Lee
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Acer-WMI: Iconia TAB W500 gyrosensor
2012-05-27 21:58 ` Marek Vasut
@ 2012-05-27 22:47 ` Marek Vasut
0 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2012-05-27 22:47 UTC (permalink / raw)
To: joeyli; +Cc: platform-driver-x86
Dear joeyli,
> > 於 日,2012-05-27 於 23:45 +0800,joeyli 提到:
> >
> > > 於 日,2012-05-27 於 10:28 +0200,Marek Vasut 提到:
> > >
> > > > Dear joeyli,
> > > >
> > > > > > Hi Marek,
> > > > > >
> > > > > > 於 一,2012-05-07 於 21:38 +0200,Marek Vasut 提到:
> > > > > >
> > > > > > > > > > Now it gets interesting ;-)
> > > > > > > > > >
> > > > > > > > > > The obj->buffer.pointer contains the following:
> > > > > > > > > > 0x05 0x01 0x00 0x00 0x00 0x00 0x00 0x00
> > > > > > > > > >
> > > > > > > > > > That means, return_value.function is 0x05, instead of
> > > > > > > > > > 0x01 (WMID_HOTKEY_EVENT).
> > > > > > > > >
> > > > > > > > > Yes, the 0x05 event is a event reflect to g-sensor, but I
> > > > > > > > > don't have any hardware can test it.
> > > > > > > > >
> > > > > > > > > Did you see any other value but not just "0x05 0x01 0x00
> > > > > > > > > 0x00 0x00 0x00 0x00 0x00" ?
> > > > > > > >
> > > > > > > > Nope, nothing at all. I flipped it back and forth, no result
> > > > > > > > :(
> > > > > > > >
> > > > > > > > > I mean if you invert your table, did you see other return
> > > > > > > > > value? The return data must point to Portrait or Landscape
> > > > > > > > > view.
> > > > > > > >
> > > > > > > > Nope, still zeroes. This is only some interrupt-like event I
> > > > > > > > believe. My opinion is, I need to call some WMI method to
> > > > > > > > actually read-back the data.
> >
> > ...
> >
> > > > > > Sorry! I am sticking on another critical issue. I will find a
> > > > > > time to trace TAB's DSDT at this week.
> > > > >
> > > > > No need to be sorry, I know exactly what you mean :) No need to
> > > > > rush, I'm stuck with a few bugs at work too.
> > > >
> > > > Hi, I'm starting to get curious again. Did you had time to look into
> > > > it? Thanks in advance!
> > >
> > > Sorry for I am late to reply you!
> >
> > ...
> >
> > > I checked your DSDT, unfortunately I found the logic is empty for
> > > G-sesor in W500's DSDT.
> > >
> > > I mean, that's right we got only g-sensor event but didn't have sensor
> > > state data, because they didn't put the return value in DSDT!
> > >
> > > On you TAB W500, the _Q7C method should run by EC when G-sensor
> > > detected
> > >
> > > state change:
> > > Method (_Q7C, 0, NotSerialized)
> > > {
> > >
> > > If (LEqual (^^SENR.GSLC, Zero)) /* G
> > > sensor enabled? */ {
> > >
> > > Store (0x05, Index (^^^WMID.FEBC, Zero)) /* 0x05
> > > is Sensor Event */ Store (One, Index (^^^WMID.FEBC,
> > > One)) /* 0x01 is G-Sensor */ Notify (WMID,
> > > 0xBC)
> > >
> > > }
> > >
> > > If (LMST)
> > > {
> > >
> > > Return (Zero)
> > >
> > > }
> > >
> > > }
> > >
> > > You can enable ACPI debug message to verify _Q7C method run when you
> > > reverse TAB, add the
> > >
> > > following kernel parameter and reboot:
> > > acpi.debug_level=0x0000000F acpi.debug_layer=0xffffffff log_buf_len=5M
> > >
> > > The WMI event code in DSDT like this:
> > > Method (EVBC, 0, NotSerialized) /* call by _WED
> > > */ {
> > >
> > > ...
> > >
> > > If (LEqual (Local0, One)) /* hotkey event
> > > */ {
> > >
> > > ...
> > >
> > > If (LEqual (Local0, 0x05)) {}
> > > /* 0x05 is Sensor Event, why empty? */
> > >
> > > ...
> > >
> > > Store (Zero, Index (FEBC, 0x04)) /* all set to
>
> zero */
>
> > > Store (Zero, Index (FEBC, 0x05))
> > > Store (Zero, Index (FEBC, 0x06))
> > > Store (Zero, Index (FEBC, 0x07))
> > >
> > > ...
> > >
> > > Return (FEBC)
> > >
> > > }
> > >
> > > That's why we receive a G-sensor event but didn't have orientation
> > > information of TAB. On windows platform, I believe there have another
> > > driver listen and handle this g-sensor event when tab turned.
> >
> > OK, there havse a "BST0001" acpi device should handle by a g-sensor
> >
> > driver or a special acpi driver:
> > Scope (_SB.PCI0.LPC0)
> > {
> >
> > Device (SENR)
> > {
> >
> > Name (_HID, "BST0001")
> > Name (_UID, Zero)
> > Name (_STA, 0x0F)
> > Name (GSLC, Zero) /* G-sensor lock? */
> > Name (GSLX, Zero) /* X */
> > Name (GSLY, Zero) /* Y */
> > Name (GSLZ, Zero) /* Z */
> >
> > ...
> >
> > Method (_INI, 0, NotSerialized)
> >
> > ...
> >
> > Method (RDST, 0, NotSerialized)
> > {
> >
> > ...
> >
> > Method (RDVL, 0, NotSerialized)
> > {
> >
> > ...
> >
> > Method (WRVL, 1, NotSerialized)
> > {
> >
> > ...
> >
> >
> > There have 3 methods "RDST", "RDVL" and "WRVL", currently, no idea for
> > what functions provided by those 3 methods.
> >
> > my _GUESS_:
> > "RDST" is read state?
> > "RDVL" is read value(what!?)
> > "WRVL" is write value?
> >
> > My idea is just find out which method is for read the orientation of
> > G-sensor then we can use a driver raise it to userland.
>
> Well, I'm getting somewhere, thanks for all your hints, they really blasted
> me forward!
>
> So, calling the _INI function, I get value of the G-Sensor kill switch
> (there's a toggle on the bottom of the tablet to enable/disable input from
> the accelerometer). So _INI returns integer, 0 for GS enabled, 1 for GS
> disabled. I didn't get further (yet). Will keep you in loop!
>
> Thanks!
Ok, I'm even getting values from RDVL now. I hope to come up with a patch soon.
>
> > Thanks a lot!
> > Joey Lee
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-05-27 22:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-01 15:31 Acer-WMI: Iconia TAB W500 gyrosensor Marek Vasut
2012-05-02 1:37 ` joeyli
[not found] ` <201205020446.41735.marek.vasut@gmail.com>
2012-05-07 19:38 ` Marek Vasut
[not found] ` <1336436380.5272.5047.camel@linux-s257.site>
[not found] ` <201205080345.44070.marek.vasut@gmail.com>
[not found] ` <201205271028.55484.marek.vasut@gmail.com>
[not found] ` <1338133547.9751.3824.camel@linux-s257.site>
2012-05-27 16:21 ` joeyli
2012-05-27 21:58 ` Marek Vasut
2012-05-27 22:47 ` Marek Vasut
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.