Would it be possible for you to test the latest upstream kernel? Refer
to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest
v4.10 kernel[0].

If this bug is fixed in the mainline kernel, please add the following
tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag:
'kernel-bug-exists-upstream'.

Once testing of the upstream kernel is complete, please mark this bug as
"Confirmed".


Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10-rc7

** Changed in: linux (Ubuntu)
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1663620

Title:
  HP_WMI bad report on tablet mode

Status in linux package in Ubuntu:
  Incomplete

Bug description:
  Hi, I'm trying to get the 'SW_TABLET_MODE' event to work correctly on my HP 
Spectre X360.
  I think I got most of the peaces of the puzzle, but I need help putting them 
together.

  *hp-wmi is suppose to trigger this event, but has some error on startup, here 
is dmesg: 
  ```
  [    2.711444] input: HP WMI hotkeys as /devices/virtual/input/input14
  [    2.714634] ACPI Error: Field [D128] at 1152 exceeds Buffer [NULL] size 
160 (bits) (20160831/dsopcode-236)
  [    2.714643] ACPI Error: Method parse/execution failed [\HWMC] (Node 
ffff8da6c60c1730), AE_AML_BUFFER_LIMIT (20160831/psparse-543)
  [    2.714654] ACPI Error: Method parse/execution failed [\_SB.WMID.WMAA] 
(Node ffff8da6c60c3690), AE_AML_BUFFER_LIMIT (20160831/psparse-543)
  [    2.714715] ACPI Error: Field [D128] at 1152 exceeds Buffer [NULL] size 
160 (bits) (20160831/dsopcode-236)
  [    2.714719] ACPI Error: Method parse/execution failed [\HWMC] (Node 
ffff8da6c60c1730), AE_AML_BUFFER_LIMIT (20160831/psparse-543)
  [    2.714728] ACPI Error: Method parse/execution failed [\_SB.WMID.WMAA] 
(Node ffff8da6c60c3690), AE_AML_BUFFER_LIMIT (20160831/psparse-543)

  ```

  *I believe that the problem is related to a [known 
problem](https://wiki.archlinux.org/index.php/HP_Spectre_x360_13-4231ng#Issues),
 where the airplane mode key is spammed because everytime I open the computer 
to more than 180* and close it again to normal I get another spam of airplane 
mode keys
  *I believe the problem is acpi related.
  *If I cat the event of INT33D6 ```
  cat /dev/input/by-path/platform-INT33D6:00-event
  ```
   I get garbage output  `XXXX+X+` when over 180* (tablet state) and when back 
to normal (laptop state)
  *I think there is a mixup of INT33D3 and INT33D6, because INT33D3 (or 
PNP0C60) is suppose to be incharge of laptop mode see here:
  
[https://msdn.microsoft.com/library/windows/hardware/dn457868](https://msdn.microsoft.com/library/windows/hardware/dn457868)
  
[https://patchwork.kernel.org/patch/9306475/](https://patchwork.kernel.org/patch/9306475/)
  I also decompiled  my DSDT, here is the relevant part (I think):
  ```
  Scope (_SB)
      {
          Device (VBPA)
          {
              Name (_HID, "INT33D6" /* Intel Virtual Buttons Device */)  // 
_HID: Hardware ID
              Method (_STA, 0, NotSerialized)  // _STA: Status
              {
                  If ((OSYS >= 0x07DD))
                  {
                      Return (0x0F)
                  }
                  Else
                  {
                      Return (Zero)
                  }
              }

              Name (VBST, Zero)
              Method (VBDL, 0, NotSerialized)
              {
                  If ((^^PCI0.LPCB.EC0.ECOK == One))
                  {
                      If ((^^PCI0.LPCB.EC0.CVTS == Zero))
                      {
                          VBST = 0x40
                      }
                      Else
                      {
                          VBST = Zero
                      }
                  }
              }

              Method (VGBS, 0, NotSerialized)
              {
                  If ((^^PCI0.LPCB.EC0.ECOK == One))
                  {
                      If ((^^PCI0.LPCB.EC0.CVTS == Zero))
                      {
                          VBST = 0x40
                      }
                      Else
                      {
                          VBST = Zero
                      }
                  }

                  Return (VBST) /* \_SB_.VBPA.VBST */
              }
          }

          Device (CIND)
          {
              Name (_HID, "INT33D3" /* Intel GPIO Buttons */)  // _HID: 
Hardware ID
              Name (_CID, "PNP0C60" /* Display Sensor Device */)  // _CID: 
Compatible ID
              Method (_STA, 0, NotSerialized)  // _STA: Status
              {
                  If ((OSYS >= 0x07DD))
                  {
                      Return (0x0B)
                  }
                  Else
                  {
                      Return (Zero)
                  }
              }
          }
      }
  ```

  *Putting the the computer at tablet state and back at laptop state result in 
the folllowing messages on dmesg:
  ```
  [ 4320.122389] intel-vbtn INT33D6:00: unknown event index 0xcc
  [ 4320.171779] atkbd serio0: Unknown key pressed (translated set 2, code 0xd8 
on isa0060/serio0).
  [ 4320.171782] atkbd serio0: Use 'setkeycodes e058 <keycode>' to make it 
known.
  [ 4320.179630] atkbd serio0: Unknown key released (translated set 2, code 
0xd8 on isa0060/serio0).
  [ 4320.179631] atkbd serio0: Use 'setkeycodes e058 <keycode>' to make it 
known.
  [ 4329.585035] intel-vbtn INT33D6:00: unknown event index 0xcd

  ```

  *I can't read the output of hp-wmi:
  ```
  ls -la /sys/devices/platform/hp-wmi                                           
                 9:13PM 
  total 0
  drwxr-xr-x  3 root root    0 פבר  9 19:20 .
  drwxr-xr-x 22 root root    0 פבר  9 19:20 ..
  -rw-r--r--  1 root root 4096 פבר  9 21:12 als
  -r--r--r--  1 root root 4096 פבר  9 21:12 display
  -r--r--r--  1 root root 4096 פבר  9 21:12 dock
  lrwxrwxrwx  1 root root    0 פבר  9 19:20 driver -> 
../../../bus/platform/drivers/hp-wmi
  -rw-r--r--  1 root root 4096 פבר  9 21:12 driver_override
  -r--r--r--  1 root root 4096 פבר  9 21:12 hddtemp
  -r--r--r--  1 root root 4096 פבר  9 21:12 modalias
  -rw-r--r--  1 root root 4096 פבר  9 21:12 postcode
  drwxr-xr-x  2 root root    0 פבר  9 21:11 power
  lrwxrwxrwx  1 root root    0 פבר  9 19:26 subsystem -> ../../../bus/platform
  -r--r--r--  1 root root 4096 פבר  9 21:12 tablet
  -rw-r--r--  1 root root 4096 פבר  9 21:12 uevent

  ```

  ```

  sudo cat /sys/devices/platform/hp-wmi/tablet                                  
                    9:12PM 
  cat: tablet: Invalid argument

  ```

  After trying to read it I get these messages on dmesg:
  ```
  [12025.122317] ACPI Error: Field [D128] at 1152 exceeds Buffer [NULL] size 
160 (bits) (20160831/dsopcode-236)
  [12025.122323] ACPI Error: Method parse/execution failed [\HWMC] (Node 
ffff8da6c60c1730), AE_AML_BUFFER_LIMIT (20160831/psparse-543)
  [12025.122332] ACPI Error: Method parse/execution failed [\_SB.WMID.WMAA] 
(Node ffff8da6c60c3690), AE_AML_BUFFER_LIMIT (20160831/psparse-543)

  ```
   
  *xev output is identical when pressing airplane mode key and when switching 
from laptop to tablet and vise versa:
  ```
  MappingNotify event, serial 35, synthetic NO, window 0x0,
      request MappingKeyboard, first_keycode 8, count 248

  ```


  I hope this would help other user too,
  Thanks in advance,
  Itay

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1663620/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to