diff options
author | Nick Dyer <nick.dyer@itdev.co.uk> | 2012-05-17 11:04:45 +0100 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 12:37:41 -0700 |
commit | 2470a5241edb37f30e331c5b762d700f0a342b1b (patch) | |
tree | bd07dcb11176e83275b508ede2d52dd46434d633 /drivers/input/touchscreen/atmel_mxt_ts.c | |
parent | fd7821dfb3cfc87e67fd0ee91c796dbf79c79cc5 (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.c | 14 |
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; } |