linux/drivers/input
Daniel Kurtz 333e5a9a99 Input: atmel_mxt_ts - cache T9 reportid range when reading object table
Streamline interrupt processing by caching the T9 reportid range when
first reading the object table.

In the process, refactor reading the object descriptor table.
First, since the object_table entries are now exactly the same layout
in device memory and in the driver, allocate an appropriately sized
array and fetch the entire table directly into it in a single i2c
transaction.  Since a 6 byte table object requires 10 bytes to read,
doing this dramatically reduces overhead.

Note: The cached T9 reportid's are initialized to 0, which is an invalid
reportid.  Thus, the checks in the interrupt handler will always fail for
devices that do not support the T9 object.  Therefore, after doing a
firmware update, the old object table is destroyed and all cached object
values are reset to 0, before reading the new object table, in case
the new firmware does not have the old objects.

This patch tested on an MXT224E.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
2012-06-29 15:58:06 +02:00
..
gameport Input: use module_pci_driver 2012-04-21 23:48:58 -07:00
joystick i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING 2012-05-30 10:55:34 +02:00
keyboard arm-soc: driver specific updates 2012-05-26 12:22:27 -07:00
misc MFD changes for 3.5 2012-05-29 11:53:11 -07:00
mouse Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-05-24 10:34:29 -07:00
serio Input: serio_raw - signal EFAULT even if read/write partially succeeds 2012-05-02 00:21:13 -07:00
tablet Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-05-24 10:34:29 -07:00
touchscreen Input: atmel_mxt_ts - cache T9 reportid range when reading object table 2012-06-29 15:58:06 +02:00
apm-power.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
evbug.c Input: use pr_fmt and pr_<level> 2010-11-30 23:10:26 -08:00
evdev.c Input: evdev - properly handle read/write with count 0 2012-05-02 00:23:58 -07:00
ff-core.c Input: force feedback - potential integer wrap in input_ff_create() 2011-10-12 21:13:11 -07:00
ff-memless.c [media] Input: move drivers/input/fixp-arith.h to include/linux 2012-05-14 09:47:23 -03:00
input-compat.c compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-compat.h compat: Use COMPAT_USE_64BIT_TIME in the input subsystem 2012-02-20 12:48:47 -08:00
input-mt.c Input: MT - fix null pointer warning 2012-06-04 16:33:34 +02:00
input-polldev.c Merge commit 'v3.2-rc3' into next 2011-11-29 01:51:07 -08:00
input.c Input: Use accessor for MT values 2012-02-02 14:42:20 +01:00
joydev.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
Kconfig Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
Makefile Input: matrix-keymap - uninline and prepare for device tree support 2012-05-10 22:38:47 -07:00
matrix-keymap.c Input: matrix-keymap - fix building keymaps 2012-05-24 01:12:20 -07:00
mousedev.c Input: properly assign return value of clamp() macro. 2011-05-25 09:24:58 -07:00
sparse-keymap.c drivers/input: Add module.h to modular drivers implicitly using it 2011-10-31 19:31:16 -04:00