2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-24 05:04:00 +08:00
linux-next/drivers/input/touchscreen
Nick Dyer 068bdb67ef Input: atmel_mxt_ts - fix the firmware update
The automatic update mechanism will trigger an update if the
info block CRCs are different between maxtouch configuration
file (maxtouch.cfg) and chip.

The driver compared the CRCs without retrieving the chip CRC,
resulting always in a failure and firmware flashing action
triggered. Fix this issue by retrieving the chip info block
CRC before the check.

Note that this solution has the benefit that by reading the
information block and the object table into a contiguous region
of memory, we can verify the checksum at probe time. This means
we make sure that we are indeed talking to a chip that supports
object protocol correctly.

Using this patch on a kevin chromebook, the touchscreen and
touchpad drivers are able to match the CRC:

  atmel_mxt_ts 3-004b: Family: 164 Variant: 14 Firmware V2.3.AA Objects: 40
  atmel_mxt_ts 5-004a: Family: 164 Variant: 17 Firmware V2.0.AA Objects: 31
  atmel_mxt_ts 3-004b: Resetting device
  atmel_mxt_ts 5-004a: Resetting device
  atmel_mxt_ts 3-004b: Config CRC 0x573E89: OK
  atmel_mxt_ts 3-004b: Touchscreen size X4095Y2729
  input: Atmel maXTouch Touchscreen as /devices/platform/ff130000.i2c/i2c-3/3-004b/input/input5
  atmel_mxt_ts 5-004a: Config CRC 0x0AF6BA: OK
  atmel_mxt_ts 5-004a: Touchscreen size X1920Y1080
  input: Atmel maXTouch Touchpad as /devices/platform/ff140000.i2c/i2c-5/5-004a/input/input6

Signed-off-by: Nick Dyer <nick.dyer@shmanahar.org>
Acked-by: Benson Leung <bleung@chromium.org>
[Ezequiel: minor patch massage]
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2018-05-01 11:54:51 -07:00
..
88pm860x-ts.c Input: 88pm860x-ts - fix child-node lookup 2018-01-08 17:40:59 -08:00
ad7877.c Input: ad7877 - use managed resource allocations 2018-01-22 16:25:53 -08:00
ad7879-i2c.c Input: ad7879 - return plain error code from ad7879_probe() 2017-03-01 09:42:44 -08:00
ad7879-spi.c Input: ad7879 - return plain error code from ad7879_probe() 2017-03-01 09:42:44 -08:00
ad7879.c Input: touchsceen - convert timers to use timer_setup() 2017-10-24 10:09:33 -07:00
ad7879.h Input: ad7879 - return plain error code from ad7879_probe() 2017-03-01 09:42:44 -08:00
ads7846.c Input: ads7846 - constify attribute_group structures 2017-07-12 14:19:31 -07:00
ar1021_i2c.c Input: ar1021_i2c - set INPUT_PROP_DIRECT 2017-11-03 12:47:33 -07:00
atmel_mxt_ts.c Input: atmel_mxt_ts - fix the firmware update 2018-05-01 11:54:51 -07:00
auo-pixcir-ts.c Input: auo-pixcir-ts - delete an unnecessary return statement 2018-01-22 16:28:59 -08:00
bcm_iproc_tsc.c Input: bcm_iproc_tsc - use syscon to access shared registers 2016-04-06 16:11:56 -07:00
bu21013_ts.c Input: touchscreen - drop unnecessary calls to device_init_wakeup 2017-01-21 23:53:30 -08:00
chipone_icn8318.c Input: icn8318 - use of_touchscreen helpers for inverting / swapping axes 2016-07-15 14:50:56 -07:00
colibri-vf50-ts.c Input: remove unneeded MODULE_VERSION() usage in touchscreen drivers 2018-01-16 16:48:23 -08:00
cy8ctmg110_ts.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
cyttsp4_core.c Input: cyttsp4 - avoid overflows when calculating memory sizes 2017-11-03 12:45:22 -07:00
cyttsp4_core.h
cyttsp4_i2c.c Input: cyttsp - use PTR_ERR_OR_ZERO() 2015-10-02 11:44:19 -07:00
cyttsp4_spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
cyttsp_core.c Input: of_touchscreen - add support for inverted / swapped axes 2016-07-15 14:50:53 -07:00
cyttsp_core.h Input: cyttsp - switch to using device properties 2016-01-27 14:32:48 -08:00
cyttsp_i2c_common.c
cyttsp_i2c.c Input: cyttsp - use devres managed resource allocations 2016-01-27 14:32:46 -08:00
cyttsp_spi.c Input: cyttsp - use devres managed resource allocations 2016-01-27 14:32:46 -08:00
da9034-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
da9052_tsi.c Input: da9052_tsi - remove unused mutex 2018-01-22 16:28:03 -08:00
dynapro.c Input: dynapro - constify serio_device_id 2017-08-18 17:15:10 -07:00
edt-ft5x06.c Input: edt-ft5x06 - fix error handling for factory mode on non-M06 2018-01-24 14:43:10 -08:00
eeti_ts.c Input: eeti_ts - switch to gpiod API 2017-04-05 08:52:33 -07:00
egalax_ts_serial.c Input: egalax_ts_serial - fix potential NULL dereference on error 2015-12-19 23:44:40 -08:00
egalax_ts.c Input: touchscreen - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:31 -08:00
ektf2127.c Input: ektf2127 - mark PM functions as __maybe_unused 2016-10-03 16:36:52 -07:00
elants_i2c.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2018-02-01 10:49:58 -08:00
elo.c Input: elo - constify serio_device_id 2017-08-18 17:15:13 -07:00
exc3000.c Input: add I2C attached EETI EXC3000 multi touch driver 2017-10-25 14:55:33 -07:00
fsl-imx25-tcq.c Input: touchscreen - use local variables consistently 2017-01-21 23:53:17 -08:00
fujitsu_ts.c Input: fujitsu_ts - constify serio_device_id 2017-08-18 17:15:19 -07:00
goodix.c Input: goodix - use generic touchscreen_properties 2018-01-31 14:44:40 -08:00
gunze.c Input: gunze - constify serio_device_id 2017-08-18 17:15:28 -07:00
hampshire.c Input: hampshire - constify serio_device_id 2017-08-18 17:15:30 -07:00
hideep.c Input: hideep - fix compile error due to missing include file 2017-12-18 13:40:15 -08:00
hp680_ts_input.c
htcpen.c dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
ili210x.c Input: touchscreen - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:31 -08:00
imx6ul_tsc.c Input: imx6ul_tsc - fix error handling 2017-04-12 08:47:17 -07:00
inexio.c Input: inexio - constify serio_device_id 2017-08-18 17:15:31 -07:00
ipaq-micro-ts.c Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume 2014-11-02 00:10:07 -07:00
jornada720_ts.c Input: jornada720_ts - get rid of mach/irqs.h and mach/hardware.h includes 2016-09-10 10:47:48 -07:00
Kconfig Input: hideep_ts - fix a typo in Kconfig 2018-04-23 16:38:16 -07:00
lpc32xx_ts.c Input: lpc32xx_ts - check for clk_prepare_enable() error 2017-04-12 08:47:18 -07:00
mainstone-wm97xx.c
Makefile Input: remove atmel-wm97xx touchscreen driver 2018-01-19 09:35:24 -08:00
max11801_ts.c Input: max11801_ts - add missing of_match_table 2017-03-29 00:25:03 -07:00
mc13783_ts.c Input: mc13783_ts - remove deprecated create_singletheread_workqueue 2016-08-25 10:11:00 -07:00
mcs5000_ts.c Input: mcs - move header file out of I2C realm 2017-05-22 17:26:57 -07:00
melfas_mip4.c Input: remove unneeded MODULE_VERSION() usage in touchscreen drivers 2018-01-16 16:48:23 -08:00
migor_ts.c Input: migor-ts - mark PM functions as __maybe_unused 2016-05-19 09:35:15 -07:00
mk712.c Annotate hardware config module parameters in drivers/input/ 2017-04-20 12:02:32 +01:00
mms114.c Input: mms114 - add SPDX identifier 2018-02-02 16:04:10 -08:00
mtouch.c Input: mtouch - constify serio_device_id 2017-08-18 17:15:32 -07:00
mxs-lradc-ts.c Input: mxs-lradc - remove redundant assignment to pointer input 2017-10-27 15:48:00 -07:00
of_touchscreen.c Input: of_touchscreen - add MODULE_LICENSE 2018-01-10 16:38:12 -08:00
pcap_ts.c Input: pcap_ts - use to_delayed_work 2016-01-02 21:08:53 -08:00
penmount.c Input: penmount - constify serio_device_id 2017-08-18 17:15:34 -07:00
pixcir_i2c_ts.c Input: touchscreen - use local variables consistently 2017-01-21 23:53:17 -08:00
raydium_i2c_ts.c Input: raydium_i2c_ts - include hardware version in firmware name 2018-01-05 09:28:39 -08:00
rohm_bu21023.c Input: rohm_bu21023 - use managed devm_device_add_group 2017-09-29 16:51:04 -07:00
s3c2410_ts.c treewide: Switch DEFINE_TIMER callbacks to struct timer_list * 2017-11-21 15:57:05 -08:00
s6sy761.c Input: stmfts, s6sy761 - update my e-mail 2018-03-30 15:31:41 -07:00
silead.c Input: silead - add Chuwi Hi8 support 2018-03-14 09:56:31 -07:00
sis_i2c.c Input: sis_i2c - drop unnecessary call to i2c_set_clientdata 2017-01-18 14:29:57 -08:00
st1232.c Input: st1232 - remove obsolete platform device support 2017-11-07 18:13:42 -08:00
stmfts.c Input: stmfts, s6sy761 - update my e-mail 2018-03-30 15:31:41 -07:00
stmpe-ts.c Input: stmpe-ts - restore kerneldoc 2016-03-02 09:40:20 -08:00
sun4i-ts.c Input: sun4i-ts - constify thermal_zone_of_device_ops structures 2017-08-14 22:12:06 -07:00
sur40.c Input: sur40 - skip all blobs that are not touches 2017-07-12 14:20:28 -07:00
surface3_spi.c Input: surface3_spi - make const array header static, reduces object code size 2017-09-11 14:23:39 -07:00
sx8654.c Input: touchscreen - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:53 -08:00
ti_am335x_tsc.c Input: ti_am335x_tsc - fix incorrect step config for 5 wire touchscreen 2017-10-18 17:54:12 -07:00
touchit213.c Input: touchit213 - constify serio_device_id 2017-08-18 17:15:35 -07:00
touchright.c Input: touchright - constify serio_device_id 2017-08-18 17:15:36 -07:00
touchwin.c Input: touchwin - constify serio_device_id 2017-08-18 17:15:37 -07:00
tps6507x-ts.c Input: tps6507x-ts - update to devm_* API 2017-03-15 15:44:49 -07:00
ts4800-ts.c Input: ts4800-ts - add missing of_node_put after calling of_parse_phandle 2016-07-15 10:50:12 -07:00
tsc40.c Input: tsc40 - constify serio_device_id 2017-08-18 17:15:40 -07:00
tsc200x-core.c Merge branch 'next' into for-linus 2017-11-13 17:10:13 -08:00
tsc200x-core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tsc2004.c Input: tsc200x - report proper input_dev name 2016-07-20 17:50:24 -07:00
tsc2005.c Input: tsc2005 - add OF device table 2017-02-12 14:55:08 -08:00
tsc2007_core.c Input: tsc2007 - move header file out of I2C realm 2017-05-22 17:26:58 -07:00
tsc2007_iio.c input: tsc2007 - drop the driver_module assignment in iio interface. 2017-08-22 22:14:59 +01:00
tsc2007.h Input: tsc2007 - rename function tsc2007_calculate_pressure 2017-02-22 23:55:07 -08:00
ucb1400_ts.c Input: ucb1400_ts - fix suspend and resume handling 2017-09-11 14:23:56 -07:00
usbtouchscreen.c Input: usbtouchscreen - do not rely on input_dev->users 2018-03-26 15:22:16 -07:00
w90p910_ts.c Input: touchsceen - convert timers to use timer_setup() 2017-10-24 10:09:33 -07:00
wacom_i2c.c Input: drop owner assignment from i2c_driver 2015-07-17 16:57:00 -07:00
wacom_w8001.c Input: wacom_w8001 - constify serio_device_id 2017-08-18 17:15:41 -07:00
wdt87xx_i2c.c Input: remove unneeded MODULE_VERSION() usage in touchscreen drivers 2018-01-16 16:48:23 -08:00
wm97xx-core.c Input: wm97xx: add new AC97 bus support 2017-09-19 17:07:28 +01:00
wm831x-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
wm9705.c
wm9712.c
wm9713.c
zet6223.c Input: zet6223 - export OF device ID as module aliases 2017-02-20 15:12:26 -08:00
zforce_ts.c Input: zforce_ts - fix dual touch recognition 2016-04-25 14:27:56 -07:00
zylonite-wm97xx.c