linux-xiaomi-chiron/drivers/input/touchscreen
Hans de Goede faec44b683 Input: goodix - disable IRQs while suspended
We should not try to do any i2c transfers before the controller is
resumed (which happens before our resume method gets called).

So we need to disable our IRQ while suspended to enforce this. The
code paths for devices with GPIOs for the int and reset pins already
disable the IRQ the through goodix_free_irq().

This commit also disables the IRQ while suspended for devices without
GPIOs for the int and reset pins.

This fixes the i2c bus sometimes getting stuck after a suspend/resume
causing the touchscreen to sometimes not work after a suspend/resume.
This has been tested on a GPD pocked device.

BugLink: https://github.com/nexus511/gpd-ubuntu-packages/issues/10
BugLink: https://www.reddit.com/r/GPDPocket/comments/7niut2/fix_for_broken_touch_after_resume_all_linux/
Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2018-01-12 00:42:47 -08:00
..
88pm860x-ts.c Input: touchscreen - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:53 -08:00
ad7877.c Input: ad7877 - convert to using timer_setup() 2017-10-23 16:31:56 -07: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-wm97xx.c Input: touchsceen - convert timers to use timer_setup() 2017-10-24 10:09:33 -07:00
atmel_mxt_ts.c Input: atmel_mxt_ts - add support for reset line 2017-08-21 13:10:19 -07:00
auo-pixcir-ts.c Input: auo-pixcir-ts - simplify function return logic 2015-10-02 11:44:18 -07: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: touchscreen - drop calls to platform_set_drvdata and i2c_set_clientdata 2017-01-21 23:51:53 -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 Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
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.c Input: cyttsp - use devres managed resource allocations 2016-01-27 14:32:46 -08:00
cyttsp_i2c_common.c Input: cyttsp - include appropriate header file in cyttsp_i2c_common.c 2013-12-15 02:54:04 -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: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
dynapro.c Input: dynapro - constify serio_device_id 2017-08-18 17:15:10 -07:00
edt-ft5x06.c Input: edt-ft5x06 - implement support for the EDT-M12 series 2017-10-19 17:17:47 -07:00
eeti_ts.c Input: eeti_ts - switch to gpiod API 2017-04-05 08:52:33 -07:00
egalax_ts.c Input: touchscreen - drop unnecessary calls to input_set_drvdata 2017-01-22 17:22:31 -08:00
egalax_ts_serial.c Input: egalax_ts_serial - fix potential NULL dereference on error 2015-12-19 23:44:40 -08:00
ektf2127.c Input: ektf2127 - mark PM functions as __maybe_unused 2016-10-03 16:36:52 -07:00
elants_i2c.c Input: elants_i2c - use managed devm_device_add_group 2017-09-29 16:51:02 -07: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 - disable IRQs while suspended 2018-01-12 00:42:47 -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: add support for HiDeep touchscreen 2017-11-10 10:18:22 -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: add support for the Samsung S6SY761 touchscreen 2017-11-10 10:18:23 -08:00
lpc32xx_ts.c Input: lpc32xx_ts - check for clk_prepare_enable() error 2017-04-12 08:47:18 -07:00
mainstone-wm97xx.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
Makefile Input: add support for the Samsung S6SY761 touchscreen 2017-11-10 10:18:23 -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: melfas_mip4 - use managed devm_device_add_group 2017-09-29 16:51:03 -07: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 - move header file out of I2C realm 2017-05-22 17:26:58 -07: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 support for inverted / swapped axes 2016-07-15 14:50:53 -07: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 Input: s3c2410_ts - handle return value of clk_prepare_enable 2017-06-02 17:57:26 -07:00
s6sy761.c Input: add support for the Samsung S6SY761 touchscreen 2017-11-10 10:18:23 -08:00
silead.c Input: silead - add support for capactive home button found on some x86 tablets 2018-01-09 16:38:06 -08: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 Linux 4.14-rc6 2017-10-23 11:43:40 -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 Input: touchsceen - convert timers to use timer_setup() 2017-10-24 10:09:33 -07: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.h Input: tsc2007 - rename function tsc2007_calculate_pressure 2017-02-22 23:55:07 -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 - 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 - avoid unresponsive TSC-30 touch screen 2015-07-23 14:43:17 -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: wdt87xx_i2c - use managed devm_device_add_group 2017-09-29 16:51:05 -07:00
wm97xx-core.c Input: wm97xx - make missing platform data non-fatal 2017-01-24 10:27:34 -08:00
wm831x-ts.c input: touchscreen: drop owner assignment from platform_drivers 2014-10-20 16:20:41 +02:00
wm9705.c
wm9712.c Input: wm971x - fix typo in module parameter description 2014-09-09 16:52:09 -07:00
wm9713.c Input: wm971x - fix typo in module parameter description 2014-09-09 16:52:09 -07:00
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 Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00