Re: I2C MSFT0001 (04F3:3072) touchpad is not recognized / registered

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Oct 15, 2021 at 04:47:14PM +0200, naib@bißmann.de wrote:
> Hello,
> 
> since I've upgraded my BIOS to a recent version, the touchpad on my laptop isn't recognized anymore. I suspect that Lenovo did change some id or specifier, that causes the touchpad to be thrown in the wrong driver category.
> 
> I am using kernel 5.15.0-rc4 on Archlinux. My hardware is Lenovo Ideapad Flex 3 11ADA05. The touchpad is from ELAN/MSFT00001? (04F3:3072). Before the mentioned BIOS upgrade, the touchpad was working with the default Archlinux kernel. Also it is currently functional while running a Windows OS. I have an old log output from dmesg [1]. I tried the following things to troubleshoot this issue:
> - Boot without hid_multitouch, hid_elants, i2c_hid, i2c_hid_acpi
> - Boot with CONFIG_MOUSE_ELAN_I2C & co.
> - Boot with blacklisting init calls and modules (see links below)
> - Tinker with i2cdetect (nothing valuable)
> 
> The touchscreen is at AMDI0010:00, the touchpad is at AMDI0010:01. While collecting i2c debug messages, I've found out that the client on the adapter does not register. The touchscreen is registering successfully, even when the corresponding multitouch drivers are missing (hid-multitouch, hid-elants). (Bare with me, since I'm just guessing things)
> # The touchscreen (ok):
> i2c_designware AMDI0010:00: using lookup tables for GPIO lookup
> i2c_designware AMDI0010:00: No GPIO consumer scl found
> i2c i2c-0: adapter [Synopsys DesignWare I2C adapter] registered
> i2c i2c-0: client [ELAN238E:00] registered with bus id i2c-ELAN238E:00
> # The touchpad (not ok):
> i2c_designware AMDI0010:01: using lookup tables for GPIO lookup
> i2c_designware AMDI0010:01: No GPIO consumer scl found
> i2c i2c-1: adapter [Synopsys DesignWare I2C adapter] registered

Since we do not see I2C client being registered in the case of touchpad
I'd start tracing drivers/i2c/i2c-core-acpi.c, functions
i2c_acpi_add_device() and i2c_acpi_get_info() to see where the failure
is. I guess the changes made ACPI descriptions not match with what Linux
expects.

Thanks.

-- 
Dmitry



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux