26.04.2020 18:41, Dmitry Osipenko пишет: > 26.04.2020 18:39, Dmitry Osipenko пишет: >> 26.04.2020 14:21, Michał Mirosław пишет: >>> On Sat, Apr 25, 2020 at 09:52:00PM -0700, Dmitry Torokhov wrote: >>>> On Mon, Apr 13, 2020 at 03:32:23PM +0200, Michał Mirosław wrote: >>>>> Driver only ever reports MT events. Clear capabilities of all others. >>>> This is not true. input_mt_sync_frame() calls >>>> input_mt_report_pointer_emulation() which does emut single-touch events >>>> for the benefit of older userspace (or userspace that is not interested >>>> in multitouch). >>> >>> Oh, I didn't notice that. Looking at the code, I see that >>> input_mt_init_slots() sets up the emulated axes in this case. >>> >>> Do you need me to update the commitmsg? >> >> I tried Ubuntu 12.04 that uses ancient libinput (or whatever it was back >> then), which doesn't support MT. Mouse doesn't move at all with this >> patch being applied. > Without this patch mouse moves, but it's not usable >> because the cursor's position is wrong, i.e. mouse position doesn't >> match the screen touches. The fix for the legacy pointer emulation is trivial: --- >8 --- diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c index 060c60c04f25..3644b5b48081 100644 --- a/drivers/input/touchscreen/elants_i2c.c +++ b/drivers/input/touchscreen/elants_i2c.c @@ -1414,6 +1414,8 @@ static int elants_i2c_probe(struct i2c_client *client, input_abs_set_res(ts->input, ABS_X, ts->x_res); input_abs_set_res(ts->input, ABS_Y, ts->y_res); + touchscreen_parse_properties(ts->input, false, &ts->prop); + /* Multitouch input params setup */ error = input_mt_init_slots(ts->input, MAX_CONTACT_NUM, INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED); --- >8 --- Michał, please incorporate this change into the next version. >> This means that input_mt_report_pointer_emulation() doesn't set up >> everything needed for the legacy pointer emulation. >> > > I meant the input_mt_init_slots(). >