linux/drivers/pinctrl
Mario Limonciello 6bc3462a0f pinctrl: amd: Mask wake bits on probe again
Shubhra reports that their laptop is heating up over s2idle. Even though
it's getting into the deepest state, it appears to be having spurious
wakeup events.

While debugging a tangential issue with the RTC Carsten reports that recent
6.1.y based kernel face a similar problem.

Looking at acpidump and GPIO register comparisons these spurious wakeup
events are from the GPIO associated with the I2C touchpad on both laptops
and occur even when the touchpad is not marked as a wake source by the
kernel.

This means that the boot firmware has programmed these bits and because
Linux didn't touch them lead to spurious wakeup events from that GPIO.

To fix this issue, restore most of the code that previously would clear all
the bits associated with wakeup sources. This will allow the kernel to only
program the wake up sources that are necessary.

This is similar to what was done previously; but only the wake bits are
cleared by default instead of interrupts and wake bits.  If any other
problems are reported then it may make sense to clear interrupts again too.

Cc: Sachi King <nakato@nakato.io>
Cc: stable@vger.kernel.org
Cc: Thorsten Leemhuis <regressions@leemhuis.info>
Fixes: 65f6c7c91c ("pinctrl: amd: Revert "pinctrl: amd: disable and mask interrupts on probe"")
Reported-by: Shubhra Prakash Nandi <email2shubhra@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217754
Reported-by: Carsten Hatger <xmb8dsv4@gmail.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217626#c28
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20230818144850.1439-1-mario.limonciello@amd.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2023-08-21 12:28:28 +02:00
..
actions pinctrl: actions: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
aspeed pinctrl: aspeed: Revert "Force to disable the function's signal" 2023-01-30 23:51:03 +01:00
bcm pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors 2023-05-08 15:42:24 +02:00
berlin pinctrl: berlin: fix spelling typo in comment 2022-09-05 14:10:14 +02:00
cirrus pinctrl: lochnagar: Add missing header(s) 2022-10-24 17:06:46 +03:00
freescale pinctrl: freescale: Fix a memory out of bounds when num_configs is 1 2023-06-16 14:59:03 +02:00
intel pinctrl: cherryview: Drop goto label 2023-06-19 17:03:52 +03:00
mediatek Pin control bulk changes for the v6.4 kernel: 2023-05-02 15:40:41 -07:00
meson pinctrl: meson-axg: add missing GPIOA_18 gpio group 2023-05-16 15:02:01 +02:00
mvebu pinctrl: armada-37xx: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
nomadik Core changes: 2023-02-22 11:05:56 -08:00
nuvoton pinctrl: npcm7xx: Add missing check for ioremap 2023-06-09 09:42:52 +02:00
nxp pinctrl: nxp: Fix resource leaks in for_each_child_of_node() loops 2023-06-09 09:24:51 +02:00
pxa drivers/pinctrl: remove redundant ret variable 2022-01-24 01:12:54 +01:00
qcom pinctrl: qcom: Add intr_target_width field to support increased number of interrupt targets 2023-08-10 10:48:15 +02:00
renesas pinctrl: renesas: rza2: Add lock around pinctrl_generic{{add,remove}_group,{add,remove}_function} 2023-08-18 13:01:41 +02:00
samsung Core changes: 2023-02-22 11:05:56 -08:00
spear pinctrl: spear: Remove unused of_gpio.h inclusion 2023-06-16 15:05:24 +02:00
sprd pinctrl: sprd: Add missing header(s) 2022-10-24 17:06:47 +03:00
starfive pinctrl: starfive: Add StarFive JH7110 aon controller driver 2023-02-10 23:44:07 +01:00
stm32 pinctrl: stm32: add stm32mp257 pinctrl support 2023-06-08 16:01:29 +02:00
sunplus pinctrl:sunplus: Add check for kmalloc 2023-06-09 09:31:18 +02:00
sunxi pinctrl: Use of_property_present() for testing DT property presence 2023-03-23 09:28:38 +01:00
tegra pinctrl: tegra: avoid duplicate field initializers 2023-06-19 10:54:35 +02:00
ti pinctrl: ti-iodelay: Add missing header(s) 2022-10-24 17:06:47 +03:00
uniphier pinctrl: uniphier: Add missing header(s) 2022-10-24 17:06:47 +03:00
visconti
vt8500 pinctrl: Get rid of duplicate of_node assignment in the drivers 2021-12-16 04:18:30 +01:00
core.c gpiolib: remove asm-generic/gpio.h 2023-03-06 12:33:01 +02:00
core.h pinctrl: Move for_each_maps() to namespace and hide iterator inside 2022-11-14 14:19:33 +01:00
devicetree.c pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map 2022-11-10 12:26:18 +01:00
devicetree.h pinctrl: Clean up headers 2022-10-24 17:06:48 +03:00
Kconfig Pin control changes for the v6.5 kernel cycle: 2023-06-30 14:57:19 -07:00
Makefile pinctrl: qcom: allow true compile testing 2023-06-09 09:05:36 +02:00
pinconf-generic.c pinctrl: pinconf-generic: add missing of_node_put() 2022-11-25 10:49:28 +01:00
pinconf.c
pinconf.h pinctrl: Clean up headers 2022-10-24 17:06:48 +03:00
pinctrl-amd.c pinctrl: amd: Mask wake bits on probe again 2023-08-21 12:28:28 +02:00
pinctrl-amd.h pinctrl: amd: Drop pull up select configuration 2023-07-13 00:04:43 +02:00
pinctrl-apple-gpio.c pinctrl: apple-gpio: Add missing header(s) 2022-10-24 12:31:17 +03:00
pinctrl-artpec6.c
pinctrl-as3722.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_318.RULE 2022-06-10 14:51:36 +02:00
pinctrl-at91-pio4.c pinctrl: at91-pio4: check return value of devm_kasprintf() 2023-06-16 15:01:50 +02:00
pinctrl-at91.c pinctrl: at91: fix a couple NULL vs IS_ERR() checks 2023-05-24 10:51:30 +02:00
pinctrl-at91.h
pinctrl-axp209.c pinctrl: axp209: Add support for GPIO3 on the AXP209 2023-05-29 11:50:41 +02:00
pinctrl-bm1880.c pinctrl: bm1880: Add missing header(s) 2022-10-24 12:53:33 +03:00
pinctrl-cy8c95x0.c pinctrl: Switch i2c drivers back to use .probe() 2023-05-29 15:16:30 +02:00
pinctrl-da850-pupd.c pinctrl: da850-pupd: Drop empty platform remove function 2022-12-29 02:02:46 +01:00
pinctrl-da9062.c pinctrl: Propagate firmware node from a parent device 2021-12-22 03:09:56 +01:00
pinctrl-digicolor.c pinctrl: digicolor: Use proper headers and drop OF dependency 2023-01-16 15:14:03 +01:00
pinctrl-equilibrium.c pinctrl: equilibrium: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
pinctrl-equilibrium.h pinctrl: equilibrium: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
pinctrl-falcon.c pinctrl: lantiq: Remove unused of_gpio.h inclusion 2023-06-16 15:04:34 +02:00
pinctrl-gemini.c pinctrl: gemini: Add missing header(s) 2022-10-24 17:06:45 +03:00
pinctrl-ingenic.c Pin control changes for the v6.2 kernel cycle: 2022-12-13 13:03:06 -08:00
pinctrl-k210.c pinctrl: k210: call of_node_put() 2022-11-22 09:35:27 +01:00
pinctrl-keembay.c pinctrl: keembay: rework loops looking for groups names 2021-12-22 02:57:27 +01:00
pinctrl-lantiq.c pinctrl: lantiq: Add missing header(s) 2022-10-24 17:06:46 +03:00
pinctrl-lantiq.h pinctrl: lantiq: Add missing header(s) 2022-10-24 17:06:46 +03:00
pinctrl-loongson2.c pinctrl: loongson2: Fix some const correctness 2022-11-25 11:41:01 +01:00
pinctrl-lpc18xx.c pinctrl: lpc18xx: Add missing header(s) 2022-10-24 17:06:46 +03:00
pinctrl-max77620.c pinctrl: max77620: drop unneeded MODULE_ALIAS 2022-04-22 22:56:46 +02:00
pinctrl-mcp23s08_i2c.c pinctrl: Switch i2c drivers back to use .probe() 2023-05-29 15:16:30 +02:00
pinctrl-mcp23s08_spi.c
pinctrl-mcp23s08.c pinctrl: mcp23s08: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
pinctrl-mcp23s08.h pinctrl: mcp23s08: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
pinctrl-microchip-sgpio.c pinctrl: microchip-sgpio: check return value of devm_kasprintf() 2023-06-16 15:01:45 +02:00
pinctrl-mlxbf3.c pinctrl: mlxbf3: set varaiable mlxbf3_pmx_funcs storage-class-specifier to static 2023-04-04 16:07:06 +02:00
pinctrl-ocelot.c pinctrl: ocelot: Fix alt mode for ocelot 2023-03-06 15:18:07 +01:00
pinctrl-oxnas.c pinctrl: Get rid of duplicate of_node assignment in the drivers 2021-12-16 04:18:30 +01:00
pinctrl-palmas.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_318.RULE 2022-06-10 14:51:36 +02:00
pinctrl-pic32.c pinctrl: pic32: Convert to immutable irq_chip 2023-04-20 16:07:40 +02:00
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: pistachio: Convert to immutable irq_chip 2023-04-20 16:07:40 +02:00
pinctrl-rk805.c pinctrl: rk805: Add rk806 pinctrl support 2023-05-15 16:21:01 +01:00
pinctrl-rockchip.c Core changes: 2023-02-22 11:05:56 -08:00
pinctrl-rockchip.h pinctrl: rockchip: Add RV1126 pinctrl support 2022-08-22 09:51:08 +02:00
pinctrl-single.c pinctrl: Use of_property_present() for testing DT property presence 2023-03-23 09:28:38 +01:00
pinctrl-st.c pinctrl: st: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
pinctrl-stmfx.c pinctrl: stmfx: Convert to immutable irq_chip 2023-04-14 11:08:17 +02:00
pinctrl-sx150x.c pinctrl: Switch i2c drivers back to use .probe() 2023-05-29 15:16:30 +02:00
pinctrl-tb10x.c
pinctrl-utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_318.RULE 2022-06-10 14:51:36 +02:00
pinctrl-utils.h pinctrl: Clean up headers 2022-10-24 17:06:48 +03:00
pinctrl-xway.c pinctrl: lantiq: Remove unused of_gpio.h inclusion 2023-06-16 15:04:34 +02:00
pinctrl-zynq.c pinctrl: zynq: use module_platform_driver to simplify the code 2022-03-15 01:46:13 +01:00
pinctrl-zynqmp.c Pin control changes for the v6.2 kernel cycle: 2022-12-13 13:03:06 -08:00
pinmux.c pinctrl: Relax user input size in pinmux_select() 2023-06-09 09:20:56 +02:00
pinmux.h pinctrl: Clean up headers 2022-10-24 17:06:48 +03:00