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: --- >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 --- This hunk makes the DT properties to be applied for the legacy pointer, fixing the cursor position on Nexus 7 device using Ubuntu 12.04. The MT still works fine using Ubuntu 20.04. 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?