26.04.2020 20:29, Michał Mirosław пишет: > On Sun, Apr 26, 2020 at 07:35:47PM +0300, Dmitry Osipenko wrote: >> 26.04.2020 19:11, Michał Mirosław пишет: >>> Driver only ever reports MT events and input_mt_init_slots() sets up >>> emulated axes already. Clear the capabilities not generated directly >>> and move MT axes setup, so they are visible by input_mt_init_slots(). >>> >>> Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx> >>> Reviewed-by: Dmitry Osipenko <digetx@xxxxxxxxx> >>> Tested-by: Dmitry Osipenko <digetx@xxxxxxxxx> >>> --- >>> v4: reword commitmsg; reorder axis setup >>> --- >> >> Legacy pointer emulation doesn't work using v4. I think it will be >> better to drop this patch for now and add this hunk to the patch #4: > > Have you tried it together with the next patch? It adds > touchscreen_parse_properties() to initialize axes also from DT, and > should be equivalent to the hunk you proposed. Yes, the touchscreen_parse_properties() takes bool multitouch for the argument, and thus, it needs to be applied to both MT/non-MT cases. https://elixir.bootlin.com/linux/v5.7-rc2/source/drivers/input/touchscreen/of_touchscreen.c#L64 > [...] >> Maybe input_mt_init_slots() could be changed to set up all the >> properties that are needed for the legacy pointer, but I'm not 100% sure >> because not very familiar with that code. Perhaps Dmitry Torokhov could >> clarify? > > The code of input_mt_init_slots() looks like it does initialize the > properties needed. What does evtest return with and without the patches? ==== vanilla v4 (doesn't work) ==== Input driver version is 1.0.1 Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0 Input device name: "Elan Touchscreen" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 47 (ABS_MT_SLOT) Value 0 Min 0 Max 9 Event code 48 (ABS_MT_TOUCH_MAJOR) Value 0 Min 0 Max 255 Resolution 1 Event code 53 (ABS_MT_POSITION_X) Value 0 Min 0 Max 1279 Event code 54 (ABS_MT_POSITION_Y) Value 0 Min 0 Max 2111 Event code 55 (ABS_MT_TOOL_TYPE) Value 0 Min 0 Max 2 Event code 57 (ABS_MT_TRACKING_ID) Value 0 Min 0 Max 65535 Event code 58 (ABS_MT_PRESSURE) Value 0 Min 0 Max 255 Event: time 1587922487.077439, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 64 Event: time 1587922487.077439, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 855 Event: time 1587922487.077439, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 893 Event: time 1587922487.077439, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 47 Event: time 1587922487.077439, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1587922487.077439, -------------- SYN_REPORT ------------ Event: time 1587922487.089144, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 899 Event: time 1587922487.089144, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 124 Event: time 1587922487.089144, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 11 Event: time 1587922487.089144, -------------- SYN_REPORT ------------ Event: time 1587922487.100292, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 854 Event: time 1587922487.100292, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 911 Event: time 1587922487.100292, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 166 Event: time 1587922487.100292, -------------- SYN_REPORT ------------ Event: time 1587922487.109238, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 851 Event: time 1587922487.109238, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 922 Event: time 1587922487.109238, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 180 Event: time 1587922487.109238, -------------- SYN_REPORT ------------ Event: time 1587922487.117997, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 847 Event: time 1587922487.117997, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 936 Event: time 1587922487.117997, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 187 Event: time 1587922487.117997, -------------- SYN_REPORT ------------ Event: time 1587922487.126925, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 841 Event: time 1587922487.126925, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 947 Event: time 1587922487.126925, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 199 Event: time 1587922487.126925, -------------- SYN_REPORT ------------ Event: time 1587922487.139066, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 836 Event: time 1587922487.139066, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 958 Event: time 1587922487.139066, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 204 Event: time 1587922487.139066, -------------- SYN_REPORT ------------ Event: time 1587922487.150355, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 829 Event: time 1587922487.150355, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 969 Event: time 1587922487.150355, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 207 Event: time 1587922487.150355, -------------- SYN_REPORT ------------ Event: time 1587922487.172261, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 826 Event: time 1587922487.172261, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 977 Event: time 1587922487.172261, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 183 Event: time 1587922487.172261, -------------- SYN_REPORT ------------ Event: time 1587922487.205326, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1587922487.205326, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1587922487.205326, -------------- SYN_REPORT ------------ ==== v4 with reverted patch #3 + my hunk applied (works) ==== Input driver version is 1.0.1 Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0 Input device name: "Elan Touchscreen" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 0 Min 0 Max 1279 Event code 1 (ABS_Y) Value 0 Min 0 Max 2111 Event code 24 (ABS_PRESSURE) Value 0 Min 0 Max 255 Event code 47 (ABS_MT_SLOT) Value 0 Min 0 Max 9 Event code 48 (ABS_MT_TOUCH_MAJOR) Value 0 Min 0 Max 255 Resolution 1 Event code 53 (ABS_MT_POSITION_X) Value 0 Min 0 Max 1279 Event code 54 (ABS_MT_POSITION_Y) Value 0 Min 0 Max 2111 Event code 55 (ABS_MT_TOOL_TYPE) Value 0 Min 0 Max 2 Event code 57 (ABS_MT_TRACKING_ID) Value 0 Min 0 Max 65535 Event code 58 (ABS_MT_PRESSURE) Value 0 Min 0 Max 255 Testing ... (interrupt to exit) Event: time 1587922846.335151, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 0 Event: time 1587922846.335151, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 565 Event: time 1587922846.335151, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 423 Event: time 1587922846.335151, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 39 Event: time 1587922846.335151, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 10 Event: time 1587922846.335151, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1587922846.335151, type 3 (EV_ABS), code 0 (ABS_X), value 565 Event: time 1587922846.335151, type 3 (EV_ABS), code 1 (ABS_Y), value 423 Event: time 1587922846.335151, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 39 Event: time 1587922846.335151, -------------- SYN_REPORT ------------ Event: time 1587922846.464426, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1 Event: time 1587922846.464426, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1587922846.464426, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0 Event: time 1587922846.464426, -------------- SYN_REPORT ------------