linux/drivers/input/touchscreen
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
..
88pm860x-ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
ad7877.c Input: convert SPI drivers to use module_spi_driver() 2012-03-16 23:06:11 -07:00
ad7879-i2c.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
ad7879-spi.c Input: convert SPI drivers to use module_spi_driver() 2012-03-16 23:06:11 -07:00
ad7879.c Merge commit 'v3.2-rc3' into next 2011-11-29 01:51:07 -08:00
ad7879.h Input: ad7879 - consolidate PM methods 2011-11-15 22:24:22 -08:00
ads7846.c Input: convert SPI drivers to use module_spi_driver() 2012-03-16 23:06:11 -07:00
atmel_mxt_ts.c Input: atmel_mxt_ts - cache T9 reportid range when reading object table 2012-06-29 15:58:06 +02:00
atmel_tsadcc.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
atmel-wm97xx.c Merge commit 'v3.3-rc6' into next 2012-03-09 10:55:17 -08:00
auo-pixcir-ts.c Input: synaptics_usb - switch to module_usb_driver() 2012-03-16 23:06:34 -07:00
bu21013_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
cy8ctmg110_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
cyttsp_core.c Input: cyttsp - remove useless checks in cyttsp_probe() 2012-03-04 10:49:27 -08:00
cyttsp_core.h Input: add Cypress TTSP capacitive multi-touch screen support 2012-01-31 00:18:36 -08:00
cyttsp_i2c.c Input: synaptics_usb - switch to module_usb_driver() 2012-03-16 23:06:34 -07:00
cyttsp_spi.c Input: convert SPI drivers to use module_spi_driver() 2012-03-16 23:06:11 -07:00
da9034-ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
da9052_tsi.c Input: add support for DA9052/53 touch screen controller 2012-04-29 23:37:15 -07:00
dynapro.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
eeti_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
egalax_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
elo.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
fujitsu_ts.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
gunze.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
h3600_ts_input.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
hampshire.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
hp680_ts_input.c Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible 2012-03-12 22:17:56 -07:00
htcpen.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
ili210x.c Input: ili210x - add support for Ilitek ILI210x based touchscreens 2012-03-17 12:20:44 -07:00
inexio.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
intel-mid-touch.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
jornada720_ts.c ARM: 7341/1: input: prepare jornada720 keyboard and ts for sa11x0 sparse irq 2012-03-25 23:57:19 +01:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-05-24 10:34:29 -07:00
lpc32xx_ts.c Input: lpc32xx_ts - fix device tree compatible string 2012-04-23 23:35:59 -07:00
mainstone-wm97xx.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
Makefile Input: add support for DA9052/53 touch screen controller 2012-04-29 23:37:15 -07:00
max11801_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
mc13783_ts.c mfd: Add pdata to set mc13783-ts conversion delay 2012-03-06 18:46:30 +01:00
mcs5000_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
migor_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
mk712.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
mtouch.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
pcap_ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
penmount.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
pixcir_i2c_ts.c Input: synaptics_usb - switch to module_usb_driver() 2012-03-16 23:06:34 -07:00
s3c2410_ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
st1232.c Input: st1232 - switch to using SIMPLE_DEV_PM_OPS 2012-04-04 09:25:40 -07:00
stmpe-ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
ti_tscadc.c Input: add support for TI Touchscreen controller 2012-03-04 08:45:00 -08:00
tnetv107x-ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
touchit213.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
touchright.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
touchwin.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
tps6507x-ts.c Input: tps6507x-ts - fix MODULE_ALIAS to match driver name 2012-04-03 09:55:45 -07:00
tsc40.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
tsc2005.c Input: convert SPI drivers to use module_spi_driver() 2012-03-16 23:06:11 -07:00
tsc2007.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
ucb1400_ts.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
usbtouchscreen.c USB: input: usbtouchscreen.c: fix up dev_* messages 2012-05-04 15:33:16 -07:00
w90p910_ts.c Input: touchscreen - use macro module_platform_driver() 2011-11-30 23:41:43 -08:00
wacom_i2c.c Input: wacom_i2c - do not use irq_to_gpio 2012-04-10 00:42:15 -07:00
wacom_w8001.c Input: serio - use module_serio_driver 2012-04-04 09:25:43 -07:00
wm97xx-core.c Fix common misspellings 2011-03-31 11:26:23 -03:00
wm831x-ts.c mfd: Convert wm831x to irq_domain 2012-05-20 17:27:07 +02:00
wm9705.c Input: wm97xx - mark channels which need pen_down 2011-07-04 19:31:47 -07:00
wm9712.c Input: wm97xx - mark channels which need pen_down 2011-07-04 19:31:47 -07:00
wm9713.c Input: wm97xx - mark channels which need pen_down 2011-07-04 19:31:47 -07:00
zylonite-wm97xx.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-01-10 10:55:52 -08:00