From: Iiro Valkonen Date: Mon, 4 Jul 2011 10:16:25 +0000 (-0700) Subject: Input: atmel_mxt_ts - handle objects with multiple instances correctly X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=a93d4f2d023ea5e84c0104d4e479243c6ac77d17;p=linux-beck.git Input: atmel_mxt_ts - handle objects with multiple instances correctly Handle the objects with multiple instances correctly when the configuration data is loaded. Signed-off-by: Iiro Valkonen Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 5d71e4475934..ae00604a6a81 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -655,7 +655,9 @@ static int mxt_check_reg_init(struct mxt_data *data) if (!mxt_object_writable(object->type)) continue; - for (j = 0; j < object->size + 1; j++) { + for (j = 0; + j < (object->size + 1) * (object->instances + 1); + j++) { config_offset = index + j; if (config_offset > pdata->config_length) { dev_err(dev, "Not enough config data!\n"); @@ -664,7 +666,7 @@ static int mxt_check_reg_init(struct mxt_data *data) mxt_write_object(data, object->type, j, pdata->config[config_offset]); } - index += object->size + 1; + index += (object->size + 1) * (object->instances + 1); } return 0;