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

Bug#919648: i2c - Elantech touchscreen - Surface GO - not recognized properly



Package: linux-image-4.19.0-1-amd64
Severity: important

Device: Surface Go

Debian Version: Buster with latest updates

Summary:

In general it is working fine, but it seems that some stuff is missing because device ID is not known and then its loaded in a generic mode and not device specific. E.g. the assumed battery should be remove because it is a touchscreen and also the power control needs adjustement.

Please let me know which outputs are needed to get the Elantech toucschreen recognized properly.

First: The touchscreen is reporting a battery status in GNOME Settings -> Energy and also in general in the system.

This can be seen here:

pink@debian:/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/power_supply/hid-0018:04F3:261A.0001-battery$ ls
capacity  model_name  power   present  status     type
device    online      powers  scope    subsystem  uevent
pink@debian:/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/power_supply/hid-0018:04F3:261A.0001-battery$ cat uevent 
POWER_SUPPLY_NAME=hid-0018:04F3:261A.0001-battery
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=1
POWER_SUPPLY_CAPACITY=0
POWER_SUPPLY_MODEL_NAME=ELAN9038:00 04F3:261A
POWER_SUPPLY_STATUS=Unknown
POWER_SUPPLY_SCOPE=Device
and

pink@debian:~$ cat /sys/class/power_supply/hid-0018\:04F3\:261A.0001-battery/uevent
POWER_SUPPLY_NAME=hid-0018:04F3:261A.0001-battery
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_ONLINE=1
POWER_SUPPLY_CAPACITY=0
POWER_SUPPLY_MODEL_NAME=ELAN9038:00 04F3:261A
POWER_SUPPLY_STATUS=Unknown
POWER_SUPPLY_SCOPE=Device

In general, the device seems not to be recognized properly, see

pink@debian:~$ sudo journalctl | grep i2c
[sudo] Passwort für pink: 
Jan 17 19:35:44 debian kernel: i2c_hid i2c-ELAN9038:00: i2c-ELAN9038:00 supply vdd not found, using dummy regulator
Jan 17 19:35:44 debian kernel: i2c_hid i2c-ELAN9038:00: Linked as a consumer to regulator.0
Jan 17 19:35:44 debian kernel: i2c_hid i2c-ELAN9038:00: i2c-ELAN9038:00 supply vddl not found, using dummy regulator
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A Touchscreen as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input1
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input2
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input3
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input4
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input6
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input7
Jan 17 19:35:44 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input8
Jan 17 19:35:44 debian kernel: hid-generic 0018:04F3:261A.0001: input,hidraw0: I2C HID v1.00 Device [ELAN9038:00 04F3:261A] on i2c-ELAN9038:00
Jan 17 19:35:45 debian kernel: input: ELAN9038:00 04F3:261A as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input20
Jan 17 19:35:45 debian kernel: input: ELAN9038:00 04F3:261A Pen as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input23
Jan 17 19:35:45 debian kernel: hid-multitouch 0018:04F3:261A.0001: input,hidraw0: I2C HID v1.00 Device [ELAN9038:00 04F3:261A] on i2c-ELAN9038:00

and output of

pink@debian:~$ cat /proc/bus/input/devices 
I: Bus=0011 Vendor=0001 Product=0001 Version=ab83
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=sysrq kbd leds event0 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=045e Product=096f Version=0111
N: Name="Microsoft Surface Type Cover"
P: Phys=usb-0000:00:14.0-7/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:045E:096F.0004/input/input10
U: Uniq=
H: Handlers=sysrq kbd leds event1 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=045e Product=096f Version=0111
N: Name="Microsoft Surface Type Cover Consumer Control"
P: Phys=usb-0000:00:14.0-7/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1/0003:045E:096F.0005/input/input11
U: Uniq=
H: Handlers=kbd event2 
B: PROP=0
B: EV=1f
B: KEY=3f0003007f 0 0 483ffff17aff32d bf54444600000000 1 130f938b17c000 677bfad9415fed 9ed68000004400 10000002
B: REL=40
B: ABS=100000000
B: MSC=10

I: Bus=0003 Vendor=045e Product=096f Version=0111
N: Name="Microsoft Surface Type Cover"
P: Phys=usb-0000:00:14.0-7/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.1/0003:045E:096F.0005/input/input12
U: Uniq=
H: Handlers=event3 
B: PROP=0
B: EV=9
B: ABS=10000000000

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Intel HID events"
P: Phys=
S: Sysfs=/devices/platform/INT33D5:00/input/input15
U: Uniq=
H: Handlers=kbd rfkill event6 
B: PROP=0
B: EV=13
B: KEY=81000300000000 5000004000 1e294000000020 0
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Intel HID 5 button array"
P: Phys=
S: Sysfs=/devices/platform/INT33D5:00/input/input16
U: Uniq=
H: Handlers=kbd event7 
B: PROP=0
B: EV=13
B: KEY=2000000000000 0 0 0 0 1000000000000 0 201c000000000000 0
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input17
U: Uniq=
H: Handlers=kbd event8 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input18
U: Uniq=
H: Handlers=event9 
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input19
U: Uniq=
H: Handlers=kbd event10 
B: PROP=0
B: EV=40001
B: SND=6

I: Bus=0018 Vendor=04f3 Product=261a Version=0100
N: Name="ELAN9038:00 04F3:261A"
P: Phys=i2c-ELAN9038:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input20
U: Uniq=
H: Handlers=mouse0 event11 
B: PROP=2
B: EV=1b
B: KEY=400 0 0 0 0 0
B: ABS=3273800000000003
B: MSC=20

I: Bus=0018 Vendor=04f3 Product=261a Version=0100
N: Name="ELAN9038:00 04F3:261A Pen"
P: Phys=i2c-ELAN9038:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN9038:00/0018:04F3:261A.0001/input/input23
U: Uniq=
H: Handlers=mouse1 event12 
B: PROP=0
B: EV=1b
B: KEY=c03 0 0 0 0 0
B: ABS=1000d000003
B: MSC=10

I: Bus=0003 Vendor=045e Product=096f Version=0111
N: Name="Microsoft Surface Type Cover Touchpad"
P: Phys=usb-0000:00:14.0-7/input3
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.3/0003:045E:096F.0007/input/input30
U: Uniq=
H: Handlers=mouse2 event4 
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input31
U: Uniq=
H: Handlers=kbd event5 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input32
U: Uniq=
H: Handlers=event13 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input33
U: Uniq=
H: Handlers=event14 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input34
U: Uniq=
H: Handlers=event15 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input35
U: Uniq=
H: Handlers=event16 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input36
U: Uniq=
H: Handlers=event17 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=9"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input37
U: Uniq=
H: Handlers=event18 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=10"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input38
U: Uniq=
H: Handlers=event19 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0005 Vendor=046d Product=b01a Version=0003
N: Name="MX Anywhere 2S Keyboard"
P: Phys=D8:C4:97:84:A7:27
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B01A.0008/input/input39
U: Uniq=CC:AF:FD:50:C4:83
H: Handlers=sysrq kbd event20 
B: PROP=0
B: EV=100013
B: KEY=1000000000007 ff800000000007ff febeffdfffefffff fffffffffffffffe
B: MSC=10

I: Bus=0005 Vendor=046d Product=b01a Version=0003
N: Name="MX Anywhere 2S Mouse"
P: Phys=D8:C4:97:84:A7:27
S: Sysfs=/devices/virtual/misc/uhid/0005:046D:B01A.0008/input/input40
U: Uniq=CC:AF:FD:50:C4:83
H: Handlers=mouse3 event21 
B: PROP=0
B: EV=17
B: KEY=ffff0000 0 0 0 0
B: REL=143
B: MSC=10

Every device seems to be recognized properly, just Name="ELAN9038:00 04F3:261A" and Name="ELAN9038:00 04F3:261A Pen" are not.

Second: The touchscreen is not working properly, it seems to time out after one second which leeds to click input instead of scrolling in Chromium etc.

After setting 

echo on > /sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/power/control

the touchsreen is working fine, no false recognized input. https://www.kernel.org/doc/html/v4.19/driver-api/pm/devices.html#sys-devices-power-control-files

Multitouch is also working without applying the setting above.

Suspend delay is set to 1000ms which might explain why by default the weird behaviour occurs.

pink@debian:/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/power$ cat autosuspend_delay_ms 
1000

Third: Also get this error messages displayed short before Surface shut down (shown for 0.5 sec).

[500.561334] i2c_hid i2c-ELAN9038:00: failed to change power setting.
[501.280361] reboot: Restarting system

Fourth: 

When using default Wayland: Using the surface pen leads to double occurrence of a mouse pointer, one like the normal one, one like a X. But different pressure levels are recognized and even the eraser is recognized ootb, tested with GNOME settings -> Devices -> Wacom-Tablet -> Check your settings.

When using System X11 Default: Using the surface pen just leads to one mouse pointer, pressure levels are recognized but the erase is also recognized as a pen intput in GNOME settings -> Devices -> Wacom-Tablet -> Check your settings

best regars

Christian H.


Reply to: