Bug 202161
Summary: | i2c hid touchscreen stylus device is not detected | ||
---|---|---|---|
Product: | Drivers | Reporter: | gregkwaste (gregkwaste) |
Component: | Input Devices | Assignee: | drivers_input-devices |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | jwrdegoede, rubensa |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 4.20 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
gregkwaste
2019-01-05 21:37:22 UTC
I investigated a little bit more and I think that the Goodix-TS driver that I first suspected has probably nothing to do with it. So since on this specific tablet the touchscreen the touchpad and both accelerometers are using the i2c bus, 99% this is what is happening with the stylus stuff as well, which for some reason are not recognized. Since the touchpad of this tablet is the infamous SYNA3602:00, which is handled using some explicit quirks on the i2c-hid module, I think this is what it happening with these input devices as well. Quoting Julian Sax: * This device does not supply any descriptors and on windows a filter * driver operates between the i2c-hid layer and the device and injects * these descriptors when the device is prompted. The descriptors were * extracted by listening to the i2c-hid traffic that occurs between the * windows filter driver and the windows i2c-hid driver. I have a feeling that this process should be repeated for the rest input devices. I have the same problem but with other configuration: **Hardware**: Chuwi Chorebook **Linux**: Ubuntu 18.04 **Kernel**: 4.15.0-43-generic ```bash rubensa@rubensa-corebook:~$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SIPODEV USB Composite Device Touchpad id=11 [slave pointer (2)] ⎜ ↳ Goodix Capacitive TouchScreen id=15 [slave pointer (2)] ⎜ ↳ Bluetooth Mouse id=21 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ SIPODEV USB Composite Device id=10 [slave keyboard (3)] ↳ SIPODEV USB Composite Device Wireless Radio Control id=12 [slave keyboard (3)] ↳ SIPODEV USB Composite Device System Control id=13 [slave keyboard (3)] ↳ SIPODEV USB Composite Device Consumer Control id=14 [slave keyboard (3)] ↳ Intel Virtual Button driver id=16 [slave keyboard (3)] ↳ Intel HID events id=17 [slave keyboard (3)] ↳ Intel HID 5 button array id=18 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=19 [slave keyboard (3)] ↳ Goodix Capacitive TouchScreen id=20 [slave keyboard (3)] ↳ Bluetooth Mouse id=22 [slave keyboard (3)] ``` ```bash rubensa@rubensa-corebook:~$ xinput list-props 15 Device 'Goodix Capacitive TouchScreen': Device Enabled (139): 1 Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix (304): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix Default (305): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Send Events Modes Available (261): 1, 0 libinput Send Events Mode Enabled (262): 0, 0 libinput Send Events Mode Enabled Default (263): 0, 0 Device Node (264): "/dev/input/event13" Device Product ID (265): 1046, 9111 ``` ```bash rubensa@rubensa-corebook:~$ sudo evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: Lid Switch /dev/input/event1: Sleep Button /dev/input/event2: Power Button /dev/input/event3: Power Button /dev/input/event4: AT Translated Set 2 keyboard /dev/input/event5: Video Bus /dev/input/event6: SIPODEV USB Composite Device /dev/input/event7: Intel Virtual Button driver /dev/input/event8: Intel HID events /dev/input/event9: Intel HID 5 button array /dev/input/event10: SIPODEV USB Composite Device Touchpad /dev/input/event11: SIPODEV USB Composite Device Wireless Radio Control /dev/input/event12: SIPODEV USB Composite Device System Control /dev/input/event13: Goodix Capacitive TouchScreen /dev/input/event14: SIPODEV USB Composite Device Consumer Control /dev/input/event15: HDA Intel PCH Mic /dev/input/event16: HDA Intel PCH Front Headphone /dev/input/event17: HDA Intel PCH HDMI/DP,pcm=3 /dev/input/event18: HDA Intel PCH HDMI/DP,pcm=7 /dev/input/event19: HDA Intel PCH HDMI/DP,pcm=8 /dev/input/event20: HDA Intel PCH HDMI/DP,pcm=9 /dev/input/event21: HDA Intel PCH HDMI/DP,pcm=10 /dev/input/event22: Bluetooth Mouse Select the device event number [0-22]: 13 Input driver version is 1.0.1 Input device ID: bus 0x18 vendor 0x416 product 0x2397 version 0x2020 Input device name: "Goodix Capacitive TouchScreen" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 125 (KEY_LEFTMETA) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 1404 Min 0 Max 1920 Event code 1 (ABS_Y) Value 462 Min 0 Max 1080 Event code 47 (ABS_MT_SLOT) Value 2 Min 0 Max 9 Event code 48 (ABS_MT_TOUCH_MAJOR) Value 0 Min 0 Max 255 Event code 50 (ABS_MT_WIDTH_MAJOR) Value 0 Min 0 Max 255 Event code 53 (ABS_MT_POSITION_X) Value 0 Min 0 Max 1920 Event code 54 (ABS_MT_POSITION_Y) Value 0 Min 0 Max 1080 Event code 57 (ABS_MT_TRACKING_ID) Value 0 Min 0 Max 65535 Properties: Property type 1 (INPUT_PROP_DIRECT) Testing ... (interrupt to exit) Event: time 1546965355.223405, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0 Event: time 1546965355.223405, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1359 Event: time 1546965355.223405, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1003 Event: time 1546965355.223405, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 656 Event: time 1546965355.223405, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 100 Event: time 1546965355.223405, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 100 Event: time 1546965355.223405, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.223405, type 3 (EV_ABS), code 0 (ABS_X), value 1003 Event: time 1546965355.223405, type 3 (EV_ABS), code 1 (ABS_Y), value 656 Event: time 1546965355.223405, -------------- SYN_REPORT ------------ Event: time 1546965355.250658, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.250658, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.250658, -------------- SYN_REPORT ------------ Event: time 1546965355.259697, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1360 Event: time 1546965355.259697, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.259697, -------------- SYN_REPORT ------------ Event: time 1546965355.278616, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.278616, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.278616, -------------- SYN_REPORT ------------ Event: time 1546965355.288004, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1361 Event: time 1546965355.288004, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.288004, -------------- SYN_REPORT ------------ Event: time 1546965355.306823, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.306823, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.306823, -------------- SYN_REPORT ------------ Event: time 1546965355.315265, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1362 Event: time 1546965355.315265, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.315265, -------------- SYN_REPORT ------------ Event: time 1546965355.336382, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.336382, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.336382, -------------- SYN_REPORT ------------ Event: time 1546965355.339339, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1363 Event: time 1546965355.339339, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.339339, -------------- SYN_REPORT ------------ Event: time 1546965355.360646, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.360646, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.360646, -------------- SYN_REPORT ------------ Event: time 1546965355.369092, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1364 Event: time 1546965355.369092, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.369092, -------------- SYN_REPORT ------------ Event: time 1546965355.386735, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.386735, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.386735, -------------- SYN_REPORT ------------ Event: time 1546965355.393504, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1365 Event: time 1546965355.393504, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.393504, -------------- SYN_REPORT ------------ Event: time 1546965355.412951, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.412951, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.412951, -------------- SYN_REPORT ------------ Event: time 1546965355.421500, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1366 Event: time 1546965355.421500, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.421500, -------------- SYN_REPORT ------------ Event: time 1546965355.438883, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.438883, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.438883, -------------- SYN_REPORT ------------ Event: time 1546965355.446954, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1367 Event: time 1546965355.446954, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.446954, -------------- SYN_REPORT ------------ Event: time 1546965355.466827, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.466827, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.466827, -------------- SYN_REPORT ------------ Event: time 1546965355.473684, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1368 Event: time 1546965355.473684, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.473684, -------------- SYN_REPORT ------------ Event: time 1546965355.492402, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.492402, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.492402, -------------- SYN_REPORT ------------ Event: time 1546965355.500514, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1369 Event: time 1546965355.500514, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.500514, -------------- SYN_REPORT ------------ Event: time 1546965355.520208, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.520208, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.520208, -------------- SYN_REPORT ------------ Event: time 1546965355.527078, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1370 Event: time 1546965355.527078, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 84 Event: time 1546965355.527078, type 3 (EV_ABS), code 50 (ABS_MT_WIDTH_MAJOR), value 84 Event: time 1546965355.527078, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.527078, -------------- SYN_REPORT ------------ Event: time 1546965355.548114, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.548114, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.548114, -------------- SYN_REPORT ------------ Event: time 1546965355.553311, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1371 Event: time 1546965355.553311, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1546965355.553311, -------------- SYN_REPORT ------------ Event: time 1546965355.572991, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1546965355.572991, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1546965355.572991, -------------- SYN_REPORT ------------ ``` (When I'm running evtest, I long-pressed the tablet with one finger.) Sorry... comment on wrong bug report. Please ignore. Good news, I've written a patch to properly report the stylus/pen events as stylus events and submitted this upstream, see: https://lore.kernel.org/linux-input/20211207100754.31155-1-hdegoede@redhat.com/T/#t |