Message ID | d5eee8cd305adb144a11264d70da94f7b6570366.1587923061.git.mirq-linux@rere.qmqm.pl (mailing list archive) |
---|---|
State | Superseded |
Commit | 6def17b12ba3d30196d4f35a5cf1edf38f791d1d |
Headers | show |
Series | input: elants: Support Asus TF300T touchscreen | expand |
26.04.2020 20:47, 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@rere.qmqm.pl> > Reviewed-by: Dmitry Osipenko <digetx@gmail.com> > Tested-by: Dmitry Osipenko <digetx@gmail.com> > --- > v4: reword commitmsg; reorder axis setup > --- v5 applies cleanly to the current linux-next and everything working fine on both Ubuntu 12.04 and 20.04! Thank you very much :)
On Sun, Apr 26, 2020 at 07:47:50PM +0200, Michał Mirosław wrote: > 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@rere.qmqm.pl> > Reviewed-by: Dmitry Osipenko <digetx@gmail.com> > Tested-by: Dmitry Osipenko <digetx@gmail.com> Applied, thank you.
diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c index 6c2b336d92bf..61a9098f35d2 100644 --- a/drivers/input/touchscreen/elants_i2c.c +++ b/drivers/input/touchscreen/elants_i2c.c @@ -1319,25 +1319,7 @@ static int elants_i2c_probe(struct i2c_client *client, ts->input->name = "Elan Touchscreen"; ts->input->id.bustype = BUS_I2C; - __set_bit(BTN_TOUCH, ts->input->keybit); - __set_bit(EV_ABS, ts->input->evbit); - __set_bit(EV_KEY, ts->input->evbit); - - /* Single touch input params setup */ - input_set_abs_params(ts->input, ABS_X, 0, ts->x_max, 0, 0); - input_set_abs_params(ts->input, ABS_Y, 0, ts->y_max, 0, 0); - input_set_abs_params(ts->input, ABS_PRESSURE, 0, 255, 0, 0); - input_abs_set_res(ts->input, ABS_X, ts->x_res); - input_abs_set_res(ts->input, ABS_Y, ts->y_res); - /* Multitouch input params setup */ - error = input_mt_init_slots(ts->input, MAX_CONTACT_NUM, - INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED); - if (error) { - dev_err(&client->dev, - "failed to initialize MT slots: %d\n", error); - return error; - } input_set_abs_params(ts->input, ABS_MT_POSITION_X, 0, ts->x_max, 0, 0); input_set_abs_params(ts->input, ABS_MT_POSITION_Y, 0, ts->y_max, 0, 0); @@ -1349,6 +1331,14 @@ static int elants_i2c_probe(struct i2c_client *client, input_abs_set_res(ts->input, ABS_MT_POSITION_Y, ts->y_res); input_abs_set_res(ts->input, ABS_MT_TOUCH_MAJOR, 1); + error = input_mt_init_slots(ts->input, MAX_CONTACT_NUM, + INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED); + if (error) { + dev_err(&client->dev, + "failed to initialize MT slots: %d\n", error); + return error; + } + error = input_register_device(ts->input); if (error) { dev_err(&client->dev,