Skip to content

Commit

Permalink
Input: synaptics-rmi4 - fix maximum size check for F12 control regist…
Browse files Browse the repository at this point in the history
…er 8

According to the RMI4 spec the maximum size of F12 control register 8 is
15 bytes. The current code incorrectly reports an error if control 8 is
greater then 14. Making sensors with a control register 8 with 15 bytes
unusable.

Signed-off-by: Andrew Duggan <[email protected]>
Reported-by: Chris Healy <[email protected]>
Cc: [email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
  • Loading branch information
aduggan-syna authored and dtor committed Jul 20, 2016
1 parent 6a5029e commit e4add7b
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/input/rmi4/rmi_f12.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
struct rmi_device *rmi_dev = fn->rmi_dev;
int ret;
int offset;
u8 buf[14];
u8 buf[15];
int pitch_x = 0;
int pitch_y = 0;
int clip_x_low = 0;
Expand All @@ -86,9 +86,10 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)

offset = rmi_register_desc_calc_reg_offset(&f12->control_reg_desc, 8);

if (item->reg_size > 14) {
dev_err(&fn->dev, "F12 control8 should be 14 bytes, not: %ld\n",
item->reg_size);
if (item->reg_size > sizeof(buf)) {
dev_err(&fn->dev,
"F12 control8 should be no bigger than %zd bytes, not: %ld\n",
sizeof(buf), item->reg_size);
return -ENODEV;
}

Expand Down

0 comments on commit e4add7b

Please sign in to comment.