Mika Westerberg
c538b94367
pinctrl: intel: Only restore pins that are used by the driver
...
Dell XPS 13 (and maybe some others) uses a GPIO (CPU_GP_1) during suspend
to explicitly disable USB touchscreen interrupt. This is done to prevent
situation where the lid is closed the touchscreen is left functional.
The pinctrl driver (wrongly) assumes it owns all pins which are owned by
host and not locked down. It is perfectly fine for BIOS to use those pins
as it is also considered as host in this context.
What happens is that when the lid of Dell XPS 13 is closed, the BIOS
configures CPU_GP_1 low disabling the touchscreen interrupt. During resume
we restore all host owned pins to the known state which includes CPU_GP_1
and this overwrites what the BIOS has programmed there causing the
touchscreen to fail as no interrupts are reaching the CPU anymore.
Fix this by restoring only those pins we know are explicitly requested by
the kernel one way or other.
Cc: stable@vger.kernel.org
Link: https://bugzilla.kernel.org/show_bug.cgi?id=176361
Reported-by: AceLan Kao <acelan.kao@canonical.com>
Tested-by: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2016-10-18 14:38:16 +02:00
..
aspeed
pinctrl: aspeed-g5: Fix pin association of SPI1 function
2016-10-18 14:36:12 +02:00
bcm
pinctrl: bcm281xx: constify pinctrl_ops and pinmux_ops structures
2016-09-07 22:41:30 +02:00
berlin
freescale
pinctrl: imx: accept gpio request/free from pinctrl
2016-09-12 14:25:52 +02:00
intel
pinctrl: intel: Only restore pins that are used by the driver
2016-10-18 14:38:16 +02:00
mediatek
pinctrl: mediatek: constify gpio_chip structures
2016-09-13 10:39:33 +02:00
meson
Linux 4.8-rc6
2016-09-23 14:57:16 +02:00
mvebu
pinctrl: mvebu: orion5x: Generalise mv88f5181l support for 88f5181
2016-09-21 11:49:18 +02:00
nomadik
pinctrl: nomadik: don't default-flag IRQs as falling
2016-09-19 11:01:33 +02:00
pxa
qcom
pinctrl: qcom: fix masking of pinmux functions
2016-10-04 00:36:20 +02:00
samsung
Merge branch 'fixes' into devel
2016-09-23 17:41:40 +02:00
sh-pfc
pinctrl: sh-pfc: r8a7794: Implement voltage switching for SDHI
2016-09-14 09:26:54 +02:00
sirf
pinctrl: sirf: make core support explicitly non-modular
2016-08-27 13:16:12 +02:00
spear
stm32
pinctrl: stm32: add IRQ_DOMAIN_HIERARCHY dependency
2016-09-15 14:13:10 +02:00
sunxi
This is the bulk of GPIO changes for the v4.9 series:
2016-10-05 11:49:09 -07:00
tegra
This is the bulk of pin control changes for the v4.8 kernel cycle.
2016-07-28 17:06:51 -07:00
uniphier
pinctrl: uniphier: add Ethernet pin-mux settings
2016-07-11 09:53:25 +02:00
vt8500
core.c
pinctrl: copy per-pin driver private data to struct pin_desc
2016-05-31 10:27:19 +02:00
core.h
pinctrl: copy per-pin driver private data to struct pin_desc
2016-05-31 10:27:19 +02:00
devicetree.c
pinctrl: OF: Don't create a pinctrl handle if no pinctrl entries exist
2016-06-18 10:40:15 +02:00
devicetree.h
Kconfig
pinctrl: Add core support for Aspeed SoCs
2016-09-07 16:48:22 +02:00
Makefile
pinctrl: Add core support for Aspeed SoCs
2016-09-07 16:48:22 +02:00
pinconf-generic.c
Merge branch 'devel-dt-free-map' into devel
2016-06-23 11:19:14 +02:00
pinconf.c
pinctrl: pinconf: separate config parameters with commas for debugfs
2016-05-31 10:29:06 +02:00
pinconf.h
pinctrl-adi2-bf54x.c
pinctrl-adi2-bf60x.c
pinctrl-adi2.c
pinctrl-adi2.h
pinctrl-amd.c
Linux 4.8-rc6
2016-09-23 14:57:16 +02:00
pinctrl-amd.h
pinctrl-as3722.c
pinctrl-at91-pio4.c
pinctrl: at91-pio4: make it explicitly non-modular
2016-06-13 08:40:14 +02:00
pinctrl-at91.c
pinctrl/at91: Don't provide a default trigger type
2016-09-12 14:17:02 +02:00
pinctrl-at91.h
pinctrl-coh901.c
pinctrl-coh901.h
pinctrl-digicolor.c
Revert "pinctrl: digicolor: add missing platform_set_drvdata() call"
2016-06-23 09:50:05 +02:00
pinctrl-falcon.c
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-lpc18xx.c
pinctrl: lpc18xx: make it explicitly non-modular
2016-06-13 08:28:18 +02:00
pinctrl-max77620.c
pinctrl: max77620: Remove unused structure definition
2016-06-15 08:37:40 +02:00
pinctrl-oxnas.c
pinctrl: oxnas: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map
2016-05-31 12:59:29 +02:00
pinctrl-palmas.c
pinctrl: palmas: fix a possible NULL dereference
2016-08-22 14:11:00 +02:00
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c
pinctrl: pistachio: fix mfio pll_lock pinmux
2016-08-22 15:28:35 +02:00
pinctrl-rockchip.c
pinctrl: rockchip: make it explicitly non-modular
2016-08-27 13:14:21 +02:00
pinctrl-single.c
pinctrl: single: Fix missing flush of posted write for a wakeirq
2016-06-22 17:58:07 +02:00
pinctrl-st.c
pinctrl: st: Remove STiH415/6 SoC pinctrl driver support.
2016-09-15 15:55:25 +02:00
pinctrl-tb10x.c
pinctrl-tz1090-pdc.c
pinctrl-tz1090.c
pinctrl-u300.c
pinctrl: u300: make u300_pmx_registers static
2016-06-13 09:27:43 +02:00
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
This is the bulk of pin control changes for the v4.8 kernel cycle.
2016-07-28 17:06:51 -07:00
pinctrl-zynq.c
pinctrl: zynq: fix typo in sdio1_3_grp pin list
2016-09-06 00:49:00 +02:00
pinmux.c
pinctrl: return -ENOMEM instead of -EINVAL for kasprintf() failure
2016-05-31 10:33:00 +02:00
pinmux.h