All of lore.kernel.org
 help / color / mirror / Atom feed
* I2C MSFT0001 (04F3:3072) touchpad is not recognized / registered
@ 2021-10-15 14:47 naib
  2021-10-15 21:32 ` Dmitry Torokhov
  0 siblings, 1 reply; 3+ messages in thread
From: naib @ 2021-10-15 14:47 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input

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

Maybe the wrong driver is selected? Excerpt from hwinfo:
P: /devices/platform/AMDI0010:01
L: 0
E: DEVPATH=/devices/platform/AMDI0010:01
E: SUBSYSTEM=platform
E: DRIVER=i2c_designware
E: MODALIAS=acpi:AMDI0010:
E: USEC_INITIALIZED=10263200
E: ID_VENDOR_FROM_DATABASE=Amdek Corporation
E: ID_PATH=platform-AMDI0010:01
E: ID_PATH_TAG=platform-AMDI0010_01

P: /devices/platform/AMDI0010:01/MSFT0001:00
L: 0
E: DEVPATH=/devices/platform/AMDI0010:01/MSFT0001:00
E: SUBSYSTEM=platform
E: MODALIAS=acpi:MSFT0001:PNP0C50:
E: USEC_INITIALIZED=10266881
E: ID_VENDOR_FROM_DATABASE=M-Systems Flash Disk Pioneers
E: ID_PATH=platform-MSFT0001:00
E: ID_PATH_TAG=platform-MSFT0001_00

P: /devices/platform/AMDI0010:01/i2c-1
L: 0
E: DEVPATH=/devices/platform/AMDI0010:01/i2c-1
E: SUBSYSTEM=i2c

Similiar bugs and resources:
https://bugzilla.kernel.org/show_bug.cgi?id=207759
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1861610/+index
https://patchwork.kernel.org/project/linux-input/patch/20180405132537.3218-7-benjamin.tissoires@redhat.com/
https://lore.kernel.org/linux-input/000201d5a8bd$9fead3f0$dfc07bd0$@emc.com.tw/

I'll also attach my current running config [2], a current dmesg [3], a current hwinfo [4] and also an acpidump [5], since it was wished for at other similiar bugs.

[1] https://op.xn--bimann-cta.de/bug/2021-09-19_journalctl.txt
[2] https://op.xn--bimann-cta.de/bug/running_config.txt
[3] https://op.xn--bimann-cta.de/bug/2021-10-15_dmesg.txt
[4] https://op.xn--bimann-cta.de/bug/hwinfo.txt
[5] https://op.xn--bimann-cta.de/bug/acpidump.lenovo-Ideapad-Flex-3-11ADA05.txt

Best,
Fabian

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: I2C MSFT0001 (04F3:3072) touchpad is not recognized / registered
  2021-10-15 14:47 I2C MSFT0001 (04F3:3072) touchpad is not recognized / registered naib
@ 2021-10-15 21:32 ` Dmitry Torokhov
  2021-10-17 20:34   ` naib
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry Torokhov @ 2021-10-15 21:32 UTC (permalink / raw)
  To: naib; +Cc: linux-input, linux-i2c

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: I2C MSFT0001 (04F3:3072) touchpad is not recognized / registered
  2021-10-15 21:32 ` Dmitry Torokhov
@ 2021-10-17 20:34   ` naib
  0 siblings, 0 replies; 3+ messages in thread
From: naib @ 2021-10-17 20:34 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, linux-i2c

Thanks for helping me.

On Fri, Oct 15, 2021 at 02:32:13PM -0700, Dmitry Torokhov wrote:
> > # 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.

I have enabled tracing via kernel parameters. Solely enabling i2c_acpi_add_device and i2c_acpi_get_info generates no output. Output for "ftrace=function ftrace_filter=i2c_acpi_*" is at [1]. I have also generated a version with the option func_stack_trace enabled, but I don't think that it worked, since the output has'nt changed that much: "ftrace=function ftrace_filter=i2c_acpi_* trace_options=print-parent,trace_printk,annotate,context-info,record-cmd,overwrite,irq-info,markers,function-trace,func_stack_trace" [2]. To correlate entries I'll also supply a dmesg buffer output [3] from the same boot.

While testing with different ftrace setups I've noticed that sometimes the touchscreen is not working. Looking at dmesg output [4] there seems to be an error while probing for it. As of [5]: "The duplicate WMI GUIDs are used for the binary MOF file of a _WDG entry in the ASL". To concentrate on the trackpad and not mix things up, I'd ignore these errors for the moment.

I'll continue reading through different docs of ftrace, to generate more usable output.

[1] https://op.xn--bimann-cta.de/bug/2021-10-16_trace.txt
[2] https://op.xn--bimann-cta.de/bug/2021-10-17_trace.txt
[3] https://op.xn--bimann-cta.de/bug/2021-10-17_dmesg.txt
[4] https://op.xn--bimann-cta.de/bug/touchscreen_errors.txt
[5] https://lkml.org/lkml/2017/12/8/914

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-10-17 20:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-15 14:47 I2C MSFT0001 (04F3:3072) touchpad is not recognized / registered naib
2021-10-15 21:32 ` Dmitry Torokhov
2021-10-17 20:34   ` naib

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.