On Sat, 2023-10-14 at 22:30 +0200, Hans de Goede wrote: > On 10/14/23 22:22, Jonathan Dieter wrote: > > # ls -l /sys/bus/i2c/devices > > total 0 > > lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-0 -> > > ../../../devices/platform/AMDI0010:00/i2c-0 > > lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-1 -> > > ../../../devices/platform/AMDI0010:01/i2c-1 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:11 i2c-2 -> > > ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/i2c-2 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:11 i2c-3 -> > > ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/i2c-3 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:11 i2c-4 -> > > ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/i2c-4 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:11 i2c-5 -> > > ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card1/car > > d1-eDP-1/i2c-5 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:11 i2c-6 -> > > ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card1/car > > d1-DP-1/i2c-6 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:15 i2c-7 -> > > ../../../devices/pci0000:00/0000:00:14.0/i2c-7 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:15 i2c-8 -> > > ../../../devices/pci0000:00/0000:00:14.0/i2c-8 > > lrwxrwxrwx. 1 root root 0 Oct 14 21:15 i2c-9 -> > > ../../../devices/pci0000:00/0000:00:14.0/i2c-9 > > lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-ELAN238E:00 -> > > ../../../devices/platform/AMDI0010:00/i2c-0/i2c-ELAN238E:00 > > > > # ls -l /sys/bus/acpi/devices/ELAN066C:00/ > > total 0 > > -r--r--r--. 1 root root 4096 Oct 14 21:16 hid > > -r--r--r--. 1 root root 4096 Oct 14 21:16 modalias > > -r--r--r--. 1 root root 4096 Oct 14 21:16 path > > lrwxrwxrwx. 1 root root 0 Oct 14 21:16 physical_node -> > > ../../../../platform/AMDI0010:01/ELAN066C:00 > > Ok this looks like a platform-device is being instantiated for the > touchpad > rather then an i2c_client. > > Can you do: > > ls -l /sys/bus/platform/devices | grep ELAN066C > > and let me know the output of that ? > > If that confirms that a platform device is being instantiated > then the issue likely is that neither of the 2 if-s here: > ... > > Returns true causing no i2c-client to get instantiated. > > > If that is the case the first thing to do is try a DSDT overlay > replacing the > first if: > > If ((^^^PCI0.LPC0.H_EC.ECRD (RefOf (^^^PCI0.LPC0.H_EC.TPTY)) > == 0x01)) > { > ... > } > > With dropping the If so you get: > > { > ... > } > > See: > https://docs.kernel.org/admin-guide/acpi/initrd_table_override.html > > And then specifically the "How does it work" section. Hans, Thank you so much! Adding a DSDT overlay worked perfectly! The touchpad is functioning exactly as you would expect (using the i2c_hid_acpi driver). # ls -l /sys/bus/i2c/devices/ total 0 lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-0 -> ../../../devices/platform/AMDI0010:00/i2c-0 lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-1 -> ../../../devices/platform/AMDI0010:01/i2c-1 lrwxrwxrwx. 1 root root 0 Oct 14 22:02 i2c-2 -> ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/i2c-2 lrwxrwxrwx. 1 root root 0 Oct 14 22:02 i2c-3 -> ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/i2c-3 lrwxrwxrwx. 1 root root 0 Oct 14 22:02 i2c-4 -> ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/i2c-4 lrwxrwxrwx. 1 root root 0 Oct 14 22:02 i2c-5 -> ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card1/card1-eDP-1/i2c-5 lrwxrwxrwx. 1 root root 0 Oct 14 22:02 i2c-6 -> ../../../devices/pci0000:00/0000:00:08.1/0000:04:00.0/drm/card1/card1-DP-1/i2c-6 lrwxrwxrwx. 1 root root 0 Oct 14 22:03 i2c-7 -> ../../../devices/pci0000:00/0000:00:14.0/i2c-7 lrwxrwxrwx. 1 root root 0 Oct 14 22:03 i2c-8 -> ../../../devices/pci0000:00/0000:00:14.0/i2c-8 lrwxrwxrwx. 1 root root 0 Oct 14 22:03 i2c-9 -> ../../../devices/pci0000:00/0000:00:14.0/i2c-9 lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-ELAN066C:00 -> ../../../devices/platform/AMDI0010:01/i2c-1/i2c-ELAN066C:00 lrwxrwxrwx. 1 root root 0 Oct 14 2023 i2c-ELAN238E:00 -> ../../../devices/platform/AMDI0010:00/i2c-0/i2c-ELAN238E:00 # ls -l /sys/bus/acpi/devices/ELAN066C:00/ total 0 -r--r--r--. 1 root root 4096 Oct 14 22:10 hid -r--r--r--. 1 root root 4096 Oct 14 22:10 modalias -r--r--r--. 1 root root 4096 Oct 14 22:10 path lrwxrwxrwx. 1 root root 0 Oct 14 22:10 physical_node -> ../../../../platform/AMDI0010:01/i2c-1/i2c-ELAN066C:00 drwxr-xr-x. 2 root root 0 Oct 14 22:10 power -r--r--r--. 1 root root 4096 Oct 14 22:10 status lrwxrwxrwx. 1 root root 0 Oct 14 2023 subsystem -> ../../../../../bus/acpi -rw-r--r--. 1 root root 4096 Oct 14 2023 uevent drwxr-xr-x. 3 root root 0 Oct 14 2023 wakeup Is there some way we can get a fix in the kernel for this buggy ACPI table or should I be asking Lenovo for a fix? Thanks again, Jonathan