On Tue, Nov 12, 2019 at 04:01:47PM -0500, Sven Van Asbroeck wrote: > Optionally allow the touch screen resolution to be set by adding > it to the chip operations structure. If it is omitted (left zero), > the resolution defaults to 64K. Which is the previously hard-coded > value. > > Set the ili2117 resolution to 2048, as indicated in its datasheet. > > Link: https://lore.kernel.org/lkml/20191111181657.GA57214@dtor-ws/ > Cc: Marek Vasut <marex@xxxxxxx> > Cc: Adam Ford <aford173@xxxxxxxxx> > Cc: <linux-kernel@xxxxxxxxxxxxxxx> > Cc: linux-input@xxxxxxxxxxxxxxx > Tree: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git/log/?h=next > Signed-off-by: Sven Van Asbroeck <TheSven73@xxxxxxxxx> > --- > drivers/input/touchscreen/ili210x.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/ili210x.c b/drivers/input/touchscreen/ili210x.c > index a6feae5ce887..3b8e24815a1f 100644 > --- a/drivers/input/touchscreen/ili210x.c > +++ b/drivers/input/touchscreen/ili210x.c > @@ -31,6 +31,7 @@ struct ili2xxx_chip { > unsigned int *x, unsigned int *y); > bool (*continue_polling)(const u8 *data, bool touch); > unsigned int max_touches; > + unsigned int resolution; > }; > > struct ili210x { > @@ -160,6 +161,7 @@ static const struct ili2xxx_chip ili211x_chip = { > .parse_touch_data = ili211x_touchdata_to_coords, > .continue_polling = ili211x_decline_polling, > .max_touches = 10, > + .resolution = 2048, > }; > > static int ili251x_read_reg(struct i2c_client *client, > @@ -336,6 +338,7 @@ static int ili210x_i2c_probe(struct i2c_client *client, > struct gpio_desc *reset_gpio; > struct input_dev *input; > int error; > + unsigned int max_xy; > > dev_dbg(dev, "Probing for ILI210X I2C Touschreen driver"); > > @@ -386,8 +389,9 @@ static int ili210x_i2c_probe(struct i2c_client *client, > input->id.bustype = BUS_I2C; > > /* Multi touch */ > - input_set_abs_params(input, ABS_MT_POSITION_X, 0, 0xffff, 0, 0); > - input_set_abs_params(input, ABS_MT_POSITION_Y, 0, 0xffff, 0, 0); > + max_xy = (chip->resolution ?: SZ_64K) - 1; I had to add linux/sizes.h for this. Applied, thank you. -- Dmitry