summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen/atmel_mxt_ts.c
diff options
context:
space:
mode:
authorNick Dyer <nick.dyer@itdev.co.uk>2012-05-17 11:04:45 +0100
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 12:37:41 -0700
commit2470a5241edb37f30e331c5b762d700f0a342b1b (patch)
treebd07dcb11176e83275b508ede2d52dd46434d633 /drivers/input/touchscreen/atmel_mxt_ts.c
parentfd7821dfb3cfc87e67fd0ee91c796dbf79c79cc5 (diff)
Input: atmel_mxt_ts - attempt to downgrade configuration gracefully
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R48d5d95ab7cb9e7b4977b5794041cf14badf0c40
Diffstat (limited to 'drivers/input/touchscreen/atmel_mxt_ts.c')
-rw-r--r--drivers/input/touchscreen/atmel_mxt_ts.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 555fc6057285..a48ce61f98c3 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -973,10 +973,10 @@ int mxt_download_config(struct mxt_data *data, const char *fn)
goto release;
}
+ /* This error may be encountered on using a config from a later
+ * firmware version */
if (size > object->size) {
- dev_err(dev, "Object length exceeded!\n");
- ret = -EINVAL;
- goto release;
+ dev_err(dev, "Warning: Object length exceeded\n");
}
if (instance >= object->instances) {
@@ -997,9 +997,11 @@ int mxt_download_config(struct mxt_data *data, const char *fn)
goto release;
}
- ret = mxt_write_reg(data->client, reg + i, val);
- if (ret)
- goto release;
+ if (i < object->size) {
+ ret = mxt_write_reg(data->client, reg + i, val);
+ if (ret)
+ goto release;
+ }
pos += offset;
}