Bug 209521

Summary: Touchscreen not working Lenovo 14IIL05
Product: Drivers Reporter: Remco Luitwieler (rl)
Component: I2CAssignee: Drivers/I2C virtual user (drivers-i2c)
Status: RESOLVED CODE_FIX    
Severity: normal CC: alexfebbraio, anna.schumaker, ftsiadimos, kerneldotorg
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.7.16-200 Tree: Mainline
Regression: No

Description Remco Luitwieler 2020-10-05 20:02:02 UTC
New bug report on advice from https://bugzilla.kernel.org/show_bug.cgi?id=207759#c28

I am using a 14IIL05 where touchscreen is not working, touchpad is working, xinput shows MSFT0001:00 04F3:3140 Mouse and MSFT0001:00 04F3:3140 Touchpad. When using Fedora 32 with 5.7.16-200 the Touchpad is working as expected, but the Touchscreen is not working at all (no hardware defect as it works with Windows).  I tried the hid-rmi patch for the kernel module as mentioned in comment #41 from https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1887190 but that is not working for me.
xinput test shows output for the TouchPad, but nothing for the TouchScreen although it seems recognized as a mouse.
Output from Xorg.0.log shows: 
MSFT0001:00 04F3:3140 Mouse: is tagged by udev as: Mouse Pointingstick
Output from lspci:
00:1f.4 SMBus: Intel Corporation Ice Lake-LP SMBus Controller (rev 30)
        Subsystem: Lenovo Device 3813
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
Output from dmesg:
[    1.397059] i2c_hid i2c-MSFT0001:00: supply vdd not found, using dummy regulator
[    1.397076] i2c_hid i2c-MSFT0001:00: supply vddl not found, using dummy regulator
[    1.419419] input: MSFT0001:00 04F3:3140 Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input5
[    1.419549] input: MSFT0001:00 04F3:3140 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input6
[    1.419621] hid-generic 0018:04F3:3140.0001: input,hidraw0: I2C HID v1.00 Mouse [MSFT0001:00 04F3:3140] on i2c-MSFT0001:00
[    1.594818] input: MSFT0001:00 04F3:3140 Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input7
[    1.594952] input: MSFT0001:00 04F3:3140 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input8
[    1.595035] hid-multitouch 0018:04F3:3140.0001: input,hidraw0: I2C HID v1.00 Mouse [MSFT0001:00 04F3:3140] on i2c-MSFT0001:00

To me it seems that the TouchPad and TouchScreen is one device, but only the TouchPad is working right now. Can't figure out where it exactly goes wrong and no idea what i could try next. In a clean install of Windows the TouchPad and TouchScreen didn't work and both started working after i installed the driver (Intel Serial-IO (SIO) Driver for Windows 10 (64-bit) - Flex 5-14IIL05, Flex 5-15IIL05). 
Did someone managed to get the TouchScreen and TouchPad working or knows what to do next?
Comment 1 Anna Schumaker 2020-10-05 20:40:33 UTC
I have the same laptop running Arch Linux with 5.8.13, and I'm seeing the same problem. I've also tried a 5.9-rc kernel a few weeks ago and touchscreen support still seems to be missing there.
Comment 2 armadillo 2020-10-06 08:22:52 UTC
I have the same problem with Pop_OS!, touchpad works fine but the touchscreen won't work.

It seems that the touchscreen is using the correct kernel module (i2c_hid) in comparison to the other thread about the ELAN touchscreen.
Comment 3 Ftsiadim 2020-11-23 16:09:44 UTC
I have the same issue with Fedora 33. The TouchPad and TouchScreen is one device as there is no device for the touchscreen. On Windows touchpad and touchscreen are not working until to install the drivers, that probably shows they share the same device. Please any help on how to torubleshoot touchscreen? 

-----------------
Machine:   Type: Convertible System: LENOVO product: 81X1 v: IdeaPad Flex 5 14IIL05  Mobo: LENOVO model: LNVNB161216 v: SDK0J40700  UEFI: LENOVO v: ECCN23WW         

CPU: Quad Core Intel Core i5-1035G1 (-MT MCP-) speed/min/max: 731/400/3600 MHz Kernel: 5.9.9-200.fc33.x86_64 x86_64 
--------------------


hwinfo --short
mouse:
  /dev/input/mice      MSFT0001:00 04F3:3140 Mouse
  /dev/input/mice      MSFT0001:00 04F3:3140 Touchpad


evemu-describe                                                                                                              
Available devices:
/dev/input/event0:	Power Button
/dev/input/event1:	Lid Switch
/dev/input/event2:	Sleep Button
/dev/input/event3:	Power Button
/dev/input/event4:	AT Translated Set 2 keyboard
/dev/input/event5:	MSFT0001:00 04F3:3140 Mouse
/dev/input/event6:	MSFT0001:00 04F3:3140 Touchpad
Comment 4 Ftsiadim 2020-11-25 14:05:17 UTC
How I can verify the "MSFT0001:00 04F3:3140 Mouse" is the touchscreen device and not something else? In the xorg.logs I see " No input driver specified" for the "/dev/input/mouse0)" device but I am not sure if I am looking the right device...

[    25.298] (II) config/udev: Adding input device MSFT0001:00 04F3:3140 Mouse (/dev/input/event5)
[    25.298] (**) MSFT0001:00 04F3:3140 Mouse: Applying InputClass "evdev pointer catchall"
[    25.298] (**) MSFT0001:00 04F3:3140 Mouse: Applying InputClass "libinput pointer catchall"
[    25.299] (II) Using input driver 'libinput' for 'MSFT0001:00 04F3:3140 Mouse'
[    25.299] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 37 paused 0
[    25.299] (**) MSFT0001:00 04F3:3140 Mouse: always reports core events
[    25.299] (**) Option "Device" "/dev/input/event5"
[    25.299] (**) Option "_source" "server/udev"
[    25.302] (II) event5  - MSFT0001:00 04F3:3140 Mouse: is tagged by udev as: Mouse Pointingstick
[    25.302] (II) event5  - MSFT0001:00 04F3:3140 Mouse: device is a pointer
[    25.303] (II) event5  - MSFT0001:00 04F3:3140 Mouse: device removed
[    25.303] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-MSFT0001:00/0018:04F3:3140.0001/input/input7/event5"
[    25.303] (II) XINPUT: Adding extended input device "MSFT0001:00 04F3:3140 Mouse" (type: MOUSE, id 11)
[    25.303] (**) Option "AccelerationScheme" "none"
[    25.303] (**) MSFT0001:00 04F3:3140 Mouse: (accel) selected scheme none/0
[    25.303] (**) MSFT0001:00 04F3:3140 Mouse: (accel) acceleration factor: 2.000
[    25.303] (**) MSFT0001:00 04F3:3140 Mouse: (accel) acceleration threshold: 4
[    25.305] (II) event5  - MSFT0001:00 04F3:3140 Mouse: is tagged by udev as: Mouse Pointingstick
[    25.305] (II) event5  - MSFT0001:00 04F3:3140 Mouse: device is a pointer
[    25.307] (II) config/udev: Adding input device MSFT0001:00 04F3:3140 Mouse (/dev/input/mouse0)
[    25.307] (II) No input driver specified, ignoring this device.
[    25.307] (II) This device may have been added with another device file.
Comment 5 Remco Luitwieler 2020-11-25 14:20:08 UTC
You can use xinput to show the devices and xinput test <id of device> to show what is measured. In my case there is a MSFT0001:00 04F3:3140 Touchpad which works and there is output when using with xinput test, the device MSFT0001:00 04F3:3140 Mouse is not working and no output when touching the screen. In Windows they both don't work until driver is installed, so since they have the same ID i therefore concluded that Mouse is the Touchscreen.
Comment 6 Alexfebbraio 2020-11-25 14:49:25 UTC
Ho un lenovo ideapad flex 5 i3 10gen e mi trovo nella stessa situazione. Esiste un driver per far funzionare il touchscreen individuato da xinput come Name="MSFT0001:00 06CB:CE2D Mouse"
Questo è il mio hw-probe  https://linux-hardware.org/index.php?probe=4244d265ff
Comment 7 Ftsiadim 2020-11-25 15:24:26 UTC
maybe I am wrong but it seems we have 2 devices.

MSFT0001 --> mouse
WACF2200 -->I think this is the touchscreen

For the touchpad is "i2c-MSFT0001" it seems is power on (acpi)

/sys/bus/i2c/devices/i2c-MSFT0001\:00/modalias

acpi:MSFT0001:PNP0C50:



then for the touchscreen the acpi is not there.

/sys/bus/i2c/devices/i2c-WACF2200\:00/modalias

i2c:WACF2200:00



maybe the device is not power on and for that reasons we see only the below devices in the xinput output



⎜ ↳ MSFT0001:00 04F3:3140 Mouse id=11 [slave pointer (2)]

⎜ ↳ MSFT0001:00 04F3:3140 Touchpad id=12 [slave pointer (2)]



I was confused.... I thought the "mouse" was the touchscreen but it is not.

It seems the touchscreen is "i2c:WACF2200" and it not power yet.
Comment 8 Alexfebbraio 2020-11-25 15:33:52 UTC
Sorry for my italian comment 6

I have a lenovo ideapad flex 5 i3 10gen and I am in the same situation. There is a driver to make the touchscreen identified by xinput work as Name = "MSFT0001: 00 06CB: CE2D Mouse"
This is my hw-probe https://linux-hardware.org/index.php?probe=4244d265ff
Comment 9 Alexfebbraio 2020-11-25 15:36:49 UTC
(In reply to Ftsiadim from comment #7)
> maybe I am wrong but it seems we have 2 devices.
> 
> MSFT0001 --> mouse
> WACF2200 -->I think this is the touchscreen
> 
> For the touchpad is "i2c-MSFT0001" it seems is power on (acpi)
> 
> /sys/bus/i2c/devices/i2c-MSFT0001\:00/modalias
> 
> acpi:MSFT0001:PNP0C50:
> 
> 
> 
> then for the touchscreen the acpi is not there.
> 
> /sys/bus/i2c/devices/i2c-WACF2200\:00/modalias
> 
> i2c:WACF2200:00
> 
> 
> 
> maybe the device is not power on and for that reasons we see only the below
> devices in the xinput output
> 
> 
> 
> ⎜ ↳ MSFT0001:00 04F3:3140 Mouse id=11 [slave pointer (2)]
> 
> ⎜ ↳ MSFT0001:00 04F3:3140 Touchpad id=12 [slave pointer (2)]
> 
> 
> 
> I was confused.... I thought the "mouse" was the touchscreen but it is not.
> 
> It seems the touchscreen is "i2c:WACF2200" and it not power yet.

It may be but I don't understand why it should be turned off
Comment 10 Ftsiadim 2020-11-25 16:01:41 UTC
 There's a problem with the ACPI table on these devices. I have no clue on how to troubleshoot this...
Comment 11 Alexfebbraio 2020-11-25 16:25:54 UTC
(In reply to Ftsiadim from comment #10)
>  There's a problem with the ACPI table on these devices. I have no clue on
> how to troubleshoot this...
Maybe some parameters to pass to the kernel
Comment 12 Remco Luitwieler 2020-11-25 17:09:09 UTC
(In reply to Ftsiadim from comment #10)
>  There's a problem with the ACPI table on these devices. I have no clue on
> how to troubleshoot this...

I think you are right, found this very recent page: https://github.com/linuxwacom/wacom-hid-descriptors/issues/107
Comment 13 Ftsiadim 2020-11-25 17:52:30 UTC
I provided the debugs  https://github.com/linuxwacom/wacom-hid-descriptors/issues/107  

I hope someone that knows more to help us! lol
Comment 14 Alexfebbraio 2020-12-12 18:03:47 UTC
hi, is there any news?
Comment 15 Remco Luitwieler 2020-12-13 07:00:04 UTC
No news, but the Wacom driver issue is now in one thread combined: https://github.com/linuxwacom/input-wacom/issues/218
Comment 16 Remco Luitwieler 2021-01-10 21:47:06 UTC
Installed Slackware-current with kernel 5.10.5 and can confirm that the touchscreen started working.