This patchset cleans up the atmel_mxt_ts touchscreen driver.
In particular, it addresses the following issues:
1) sysfs
a) fw_update only by root
b) allow writing config
c) add backupnv to save config to device flash
2) faster initialization
a) read/write sets of registers using i2c block transactions
b) fetch object table as a set of i2c reads, one per object
c) write config data as a set of i2c writes, one per object
3) faster interrupt processing& initialization times
a) cache important values at init instead of computing in isr
b) don't read message checksum byte (which isn't even enabled in fw)
c) read num messages first, instead of looking for 0xFF reportid
d) read all pending message bytes in one i2c read transaction
4) more correct MT-B support
a) send all (changed) contacts in a single EV_SYN/SYN_REPORT
Daniel Kurtz (20):
Input: atmel_mxt_ts - use CONFIG_PM_SLEEP
Input: atmel_mxt_ts - only allow root to update firmware
Input: atmel_mxt_ts - verify object size in mxt_write_object
Input: atmel_mxt_ts - refactor mxt_read/write_reg to take a length
Input: atmel_mxt_ts - dump mxt_read/write_reg
Input: atmel_mxt_ts - allow writing to object sysfs entry
Input: atmel_mxt_ts - add backupnv sysfs entry
Input: atmel_mxt_ts - store actual size and instance
Input: atmel_mxt_ts - do not read extra (checksum) byte
Input: atmel_mxt_ts - dump each message on just 1 line
Input: atmel_mxt_ts - refactor mxt_object_show
Input: atmel_mxt_ts - simplify event reporting
Input: atmel_mxt_ts - parse vector field of data packets
Input: atmel_mxt_ts - refactor reading object table
Input: atmel_mxt_ts - optimize writing of object table entries
Input: atmel_mxt_ts - refactor get info
Input: atmel_mxt_ts - use cached T9 reportid range in isr
Input: atmel_mxt_ts - read num messages, then all messages
Input: atmel_mxt_ts - remove mxt_make_highchg and parse T6 report
Input: atmel_mxt_ts - send all MT-B slots in one input report
drivers/input/touchscreen/atmel_mxt_ts.c | 590 +++++++++++++++---------------
1 files changed, 286 insertions(+), 304 deletions(-)