Bug 199317 - _STA method for ELAN touchpad on HP X2 10-p0xx always returns 0
Summary: _STA method for ELAN touchpad on HP X2 10-p0xx always returns 0
Status: RESOLVED PATCH_ALREADY_AVAILABLE
Alias: None
Product: ACPI
Classification: Unclassified
Component: ACPICA-Core (show other bugs)
Hardware: Intel Linux
: P1 normal
Assignee: acpi_acpica-core@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-04-07 12:48 UTC by Daniele Laudani
Modified: 2018-04-09 06:08 UTC (History)
0 users

See Also:
Kernel Version: 4.16
Subsystem:
Regression: No
Bisected commit-id:


Attachments
decompiled dsdt (1.18 MB, text/x-csrc)
2018-04-07 12:48 UTC, Daniele Laudani
Details
acpidump (840.47 KB, text/plain)
2018-04-07 13:34 UTC, Daniele Laudani
Details

Description Daniele Laudani 2018-04-07 12:48:34 UTC
Created attachment 275151 [details]
decompiled dsdt

I am trying to enable multitouch support for Elan touchpads found in the HP X2 10-p0xx series. They use i2c with the same packet structure as in elan-i2c-core.c, but the driver is not used. By doing ls /sys/bus/acpi/devices I get no elan acpi id, but only XXXX0000:00.

I looked at the dsdt and it seems that the _INI method for this device (TPL1) is never called.

$ sudo ./acpidbg -b 'ex \_SB.PCI0.I2C6.TPL1._HID'
Evaluating \_SB.PCI0.I2C6.TPL1._HID
Evaluation of \_SB.PCI0.I2C6.TPL1._HID returned object 00000000c70e002e, external buffer length 28
 [String] Length 08 = "XXXX0000"

Calling the _INI manually the correct _HID is set (but still doesn't show up on /sys/bus/acpi/devices):

$ sudo ./acpidbg -b 'ex \_SB.PCI0.I2C6.TPL1._INI'
Evaluating \_SB.PCI0.I2C6.TPL1._INI
Evaluation of \_SB.PCI0.I2C6.TPL1._INI returned object 00000000a3ede7ec, external buffer length 18
 [Integer] = 0000000000000001

$ sudo ./acpidbg -b 'ex \_SB.PCI0.I2C6.TPL1._HID'
Evaluating \_SB.PCI0.I2C6.TPL1._HID
Evaluation of \_SB.PCI0.I2C6.TPL1._HID returned object 00000000a3ede7ec, external buffer length 28
 [String] Length 08 = "ELAN2317"

The _STA method checks for BDID to be != 1, but instead it is, returning always 0:

$ sudo ./acpidbg -b 'ex \_SB.PCI0.I2C6.TPL1._STA'
Evaluating \_SB.PCI0.I2C6.TPL1._STA
Evaluation of \_SB.PCI0.I2C6.TPL1._STA returned object 000000006bee48dd, external buffer length 18
 [Integer] = 0000000000000000

$ sudo ./acpidbg -b 'ex \BDID'
Evaluating \BDID
Evaluation of \BDID returned object 0000000001f1db34, external buffer length 18
 [Integer] = 0000000000000001



I'm not really sure what is the cause of this. I tried on mainline, but also 4.15 had the same problem.
Comment 1 Daniele Laudani 2018-04-07 13:34:01 UTC
Created attachment 275153 [details]
acpidump
Comment 2 Daniele Laudani 2018-04-09 06:08:26 UTC
This was already solved by this driver in January, and it wasn't an ACPI problem (BDID is the board ID, and that particular elan model was not present in this pc): https://patchwork.kernel.org/patch/10162493/

Note You need to log in before you can comment on or make changes to this bug.