--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: i2c - Elantech touchscreen - Surface GO - not recognized properly
- From: wayne wayne <choeffer@mailbox.org>
- Date: Fri, 18 Jan 2019 10:28:28 +0100 (CET)
- Message-id: <1416978503.29028.1547803709035@office.mailbox.org>
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.
--- End Message ---