[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bfd65c47-a571-9273-b1c2-82d9857aec95@gmail.com>
Date: Fri, 26 Mar 2021 16:24:23 +0300
From: Dmitry Osipenko <digetx@...il.com>
To: Dmitry Torokhov <dmitry.torokhov@...il.com>,
Michał Mirosław <mirq-linux@...e.qmqm.pl>,
Johnny Chuang <johnny.chuang.emc@...il.com>,
Jasper Korten <jja2000@...il.com>,
Svyatoslav Ryhel <clamor95@...il.com>
Cc: linux-input@...r.kernel.org, linux-tegra@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1] Input: elants_i2c - fix division by zero if firmware
reports zero phys size
02.03.2021 13:08, Dmitry Osipenko пишет:
> Touchscreen firmware of ASUS Transformer TF700T reports zeros for the phys
> size. Hence check whether the size is zero and don't set the resolution in
> this case.
>
> Reported-by: Jasper Korten <jja2000@...il.com>
> Signed-off-by: Dmitry Osipenko <digetx@...il.com>
> ---
>
> Please note that ASUS TF700T isn't yet supported by upstream kernel,
> hence this is not a critical fix.
>
> drivers/input/touchscreen/elants_i2c.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c
> index 4c2b579f6c8b..a2e1cc4192b0 100644
> --- a/drivers/input/touchscreen/elants_i2c.c
> +++ b/drivers/input/touchscreen/elants_i2c.c
> @@ -1441,14 +1441,16 @@ static int elants_i2c_probe(struct i2c_client *client,
>
> touchscreen_parse_properties(ts->input, true, &ts->prop);
>
> - if (ts->chip_id == EKTF3624) {
> + if (ts->chip_id == EKTF3624 && ts->phy_x && ts->phy_y) {
> /* calculate resolution from size */
> ts->x_res = DIV_ROUND_CLOSEST(ts->prop.max_x, ts->phy_x);
> ts->y_res = DIV_ROUND_CLOSEST(ts->prop.max_y, ts->phy_y);
> }
>
> - input_abs_set_res(ts->input, ABS_MT_POSITION_X, ts->x_res);
> - input_abs_set_res(ts->input, ABS_MT_POSITION_Y, ts->y_res);
> + if (ts->x_res > 0)
> + input_abs_set_res(ts->input, ABS_MT_POSITION_X, ts->x_res);
> + if (ts->y_res > 0)
> + input_abs_set_res(ts->input, ABS_MT_POSITION_Y, ts->y_res);
> if (ts->major_res > 0)
> input_abs_set_res(ts->input, ABS_MT_TOUCH_MAJOR, ts->major_res);
>
>
Hi,
This is a very minor fix, but still will be nice if we could get it into
5.13 in order to have one less patch to care about. Thanks in advance!
Powered by blists - more mailing lists