* [PATCH] Input: atmel_mxt_ts: Configuration data unnecessarily uploaded at each probe.
@ 2015-02-09 18:30 Martin Fuzzey
0 siblings, 0 replies; only message in thread
From: Martin Fuzzey @ 2015-02-09 18:30 UTC (permalink / raw)
To: Henrik Rydberg, Nick Dyer, linux-input
mxt_update_cfg() first checks the info block CRC (data->info_crc) and
always does an upload irrespective of configuration CRC if it does not match.
However the info_crc is never initialised from the information provided
by the firmware which causes an upload to be done at each probe if
configuration data firmware is available.
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index aaacf8b..0666759 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -1413,21 +1413,26 @@ static int mxt_get_object_table(struct mxt_data *data)
int i;
u8 reportid;
u16 end_address;
+ u8 *crc_ptr;
table_size = data->info.object_num * sizeof(struct mxt_object);
- object_table = kzalloc(table_size, GFP_KERNEL);
+ object_table = kzalloc(table_size + MXT_INFO_CHECKSUM_SIZE, GFP_KERNEL);
if (!object_table) {
dev_err(&data->client->dev, "Failed to allocate memory\n");
return -ENOMEM;
}
- error = __mxt_read_reg(client, MXT_OBJECT_START, table_size,
+ error = __mxt_read_reg(client, MXT_OBJECT_START,
+ table_size + MXT_INFO_CHECKSUM_SIZE,
object_table);
if (error) {
kfree(object_table);
return error;
}
+ crc_ptr = (u8 *)object_table + table_size;
+ data->info_crc = crc_ptr[0] | (crc_ptr[1] << 8) | (crc_ptr[2] << 16);
+
/* Valid Report IDs start counting from 1 */
reportid = 1;
data->mem_size = 0;
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-02-09 19:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-09 18:30 [PATCH] Input: atmel_mxt_ts: Configuration data unnecessarily uploaded at each probe Martin Fuzzey
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.