Commit 928eedf0 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Dmitry Torokhov
Browse files

Input: st1232 - fix off-by-one error in resolution handling



Before, the maximum coordinates were fixed to (799, 479) or (319, 479),
depending on touchscreen controller type.  The driver was changed to
read the actual values from the touchscreen controller, but did not take
into account the returned values are not the maximum coordinates, but
the touchscreen resolution (e.g. 800 and 480).

Fix this by subtracting 1.

Fixes: 3a54a215 ("Input: st1232 - add support resolution reading")
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20201229162601.2154566-2-geert+renesas@glider.be


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 4b419325
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -85,8 +85,8 @@ static int st1232_ts_read_resolution(struct st1232_ts_data *ts, u16 *max_x,

	buf = ts->read_buf;

	*max_x = ((buf[0] & 0x0070) << 4) | buf[1];
	*max_y = ((buf[0] & 0x0007) << 8) | buf[2];
	*max_x = (((buf[0] & 0x0070) << 4) | buf[1]) - 1;
	*max_y = (((buf[0] & 0x0007) << 8) | buf[2]) - 1;

	return 0;
}