Summary: | [i2c] Dell Precision 5690 touchpad unrecognized | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Austin Shafer <ashafer> | ||||||
Component: | kern | Assignee: | Vladimir Kondratyev <wulf> | ||||||
Status: | Closed FIXED | ||||||||
Severity: | Affects Only Me | CC: | rodrigo, wulf | ||||||
Priority: | --- | ||||||||
Version: | CURRENT | ||||||||
Hardware: | amd64 | ||||||||
OS: | Any | ||||||||
Attachments: |
|
Description
Austin Shafer
2024-10-28 17:55:51 UTC
I2C HID devices are generally detected by CID rather than by HID. The CID must be PNP0C50. Could you dump DSDT table with acpidump -dt ? Created attachment 254622 [details]
acpidump -dt
acpidump -dt fails with iasl exit status = 65280 for some reason, not sure what's happening there. No relevent logs in dmesg since I don't have the ACPI logging stuff built in this kernel. Attached the output up to that point. I think this is the same issue I have with my Lenovo ThinkBook G6, except I have an ELAN06FA touchpad. Seems I had to use acpidump -s to get it to work. There are a number of PNP0350 devices. https://badland.io/static/acpidump.txt (this is from a different laptop which has the same unrecognized touchpad problem) Some progress. The following patch seems to fix my legion 5's touchpad: https://reviews.freebsd.org/D47448 My Dell laptop still does not work though. Here's the acpidump -s from it: https://badland.io/static/acpidump_2.txt (In reply to Austin Shafer from comment #6) > My Dell laptop still does not work though. > Here's the acpidump -s from it: https://badland.io/static/acpidump_2.txt The file does not contain neither ELAN900C nor VEN_27C6 records. Ok lets try to get some info in other way. Please post output of next commands: pciconf -lv devinfo -rv acpidump & iasl from acpi-tools may be used too. You may also try patches from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280290 and https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280972. They fixes some known issues. Created attachment 254992 [details] devinfo -rv Here's the devinfo -rv output. I've tried disabling the touchscreen in the bios to see if that had an effect but it did not. That's why the ELAN900C device wasn't present. > unknown pnpinfo _HID=VEN_27C6 _UID=0 _CID=PNP0C50 at handle=\_SB_.PC00.I2C3.TPD0 Here's the touchpad being unrecognized. > unknown pnpinfo vendor=0x8086 device=0x7e7b subvendor=0x1028 subdevice=0x0cc8 class=0x0c8000 at slot=21 function=3 dbsf=pci0:0:21:3 handle=\_SB_.PC00.I2C3 Interestingly here is the i2c bus that holds the touchpad also not getting recognized, which I feel silly for not noticing sooner. Here's the relevant bit of pciconf -lv: ig4iic0@pci0:0:21:0: class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e78 subvendor=0x1028 subdevice=0x0cc8 vendor = 'Intel Corporation' device = 'Meteor Lake-P Serial IO I2C Controller' class = serial bus none8@pci0:0:21:3: class=0x0c8000 rev=0x20 hdr=0x00 vendor=0x8086 device=0x7e7b subvendor=0x1028 subdevice=0x0cc8 vendor = 'Intel Corporation' device = 'Meteor Lake-P Serial IO I2C Controller' class = serial bus With the following patch my touchpad now works: diff --git a/sys/dev/ichiic/ig4_pci.c b/sys/dev/ichiic/ig4_pci.c index 138de77c35db..874d6a9abc55 100644 --- a/sys/dev/ichiic/ig4_pci.c +++ b/sys/dev/ichiic/ig4_pci.c @@ -172,6 +172,8 @@ static int ig4iic_pci_detach(device_t dev); #define PCI_CHIP_METEORLAKE_M_I2C_1 0x7e798086 #define PCI_CHIP_METEORLAKE_M_I2C_2 0x7e508086 #define PCI_CHIP_METEORLAKE_M_I2C_3 0x7e518086 +#define PCI_CHIP_METEORLAKE_M_I2C_4 0x7e7a8086 +#define PCI_CHIP_METEORLAKE_M_I2C_5 0x7e7b8086 struct ig4iic_pci_device { uint32_t devid; @@ -288,6 +290,8 @@ static struct ig4iic_pci_device ig4iic_pci_devices[] = { { PCI_CHIP_METEORLAKE_M_I2C_1, "Intel Meteor Lake-M I2C Controller-1", IG4_TIGERLAKE}, { PCI_CHIP_METEORLAKE_M_I2C_2, "Intel Meteor Lake-M I2C Controller-2", IG4_TIGERLAKE}, { PCI_CHIP_METEORLAKE_M_I2C_3, "Intel Meteor Lake-M I2C Controller-3", IG4_TIGERLAKE}, + { PCI_CHIP_METEORLAKE_M_I2C_4, "Intel Meteor Lake-M I2C Controller-4", IG4_TIGERLAKE}, + { PCI_CHIP_METEORLAKE_M_I2C_5, "Intel Meteor Lake-M I2C Controller-5", IG4_TIGERLAKE}, }; It looks like we are missing other ids in addition to this one. For example I added 0x7e7a in the above although it's not in my machine. Not sure if we want to do a broader investigation and import a bunch of ids that we are missing? A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=bab5e3d468305928e9e5cf1ca9efcee4c89f6a76 commit bab5e3d468305928e9e5cf1ca9efcee4c89f6a76 Author: Austin Shafer <ashafer@badland.io> AuthorDate: 2024-11-09 05:05:34 +0000 Commit: Vladimir Kondratyev <wulf@FreeBSD.org> CommitDate: 2024-11-09 05:11:09 +0000 ig4(4): Add Meteor Lake PCI IDs PR: 282389 MFC after: 3 days sys/dev/ichiic/ig4_pci.c | 4 ++++ 1 file changed, 4 insertions(+) A commit in branch stable/14 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=5cc7196a81fe6924a2994a1efc31468ad045b0ce commit 5cc7196a81fe6924a2994a1efc31468ad045b0ce Author: Austin Shafer <ashafer@badland.io> AuthorDate: 2024-11-09 05:05:34 +0000 Commit: Vladimir Kondratyev <wulf@FreeBSD.org> CommitDate: 2024-11-12 04:08:43 +0000 ig4(4): Add Meteor Lake PCI IDs PR: 282389 MFC after: 3 days (cherry picked from commit bab5e3d468305928e9e5cf1ca9efcee4c89f6a76) sys/dev/ichiic/ig4_pci.c | 4 ++++ 1 file changed, 4 insertions(+) A commit in branch releng/14.2 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=56f0fc0011c2c2f57e0d9382e87cd7ea4e014bcd commit 56f0fc0011c2c2f57e0d9382e87cd7ea4e014bcd Author: Austin Shafer <ashafer@badland.io> AuthorDate: 2024-11-09 05:05:34 +0000 Commit: Vladimir Kondratyev <wulf@FreeBSD.org> CommitDate: 2024-11-12 23:27:46 +0000 ig4(4): Add Meteor Lake PCI IDs Approved by: re (cperciva) PR: 282389 MFC after: 3 days (cherry picked from commit bab5e3d468305928e9e5cf1ca9efcee4c89f6a76) (cherry picked from commit 5cc7196a81fe6924a2994a1efc31468ad045b0ce) sys/dev/ichiic/ig4_pci.c | 4 ++++ 1 file changed, 4 insertions(+) |