acrn-kernel/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
aspeed
bcm pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors 2023-05-08 15:42:24 +02:00
berlin
cirrus
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
nomadik
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
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
spear pinctrl: spear: Remove unused of_gpio.h inclusion 2023-06-16 15:05:24 +02:00
sprd
starfive
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
tegra pinctrl: tegra: avoid duplicate field initializers 2023-06-19 10:54:35 +02:00
ti
uniphier
visconti
vt8500
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
core.c
core.h
devicetree.c
devicetree.h
pinconf-generic.c
pinconf.c
pinconf.h
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-artpec6.c
pinctrl-as3722.c
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-cy8c95x0.c pinctrl: Switch i2c drivers back to use .probe() 2023-05-29 15:16:30 +02:00
pinctrl-da850-pupd.c
pinctrl-da9062.c
pinctrl-digicolor.c
pinctrl-equilibrium.c
pinctrl-equilibrium.h
pinctrl-falcon.c pinctrl: lantiq: Remove unused of_gpio.h inclusion 2023-06-16 15:04:34 +02:00
pinctrl-gemini.c
pinctrl-ingenic.c
pinctrl-k210.c
pinctrl-keembay.c
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-loongson2.c
pinctrl-lpc18xx.c
pinctrl-max77620.c
pinctrl-mcp23s08.c
pinctrl-mcp23s08.h
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-microchip-sgpio.c pinctrl: microchip-sgpio: check return value of devm_kasprintf() 2023-06-16 15:01:45 +02:00
pinctrl-mlxbf3.c
pinctrl-ocelot.c
pinctrl-oxnas.c
pinctrl-palmas.c
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c
pinctrl-rk805.c pinctrl: rk805: Add rk806 pinctrl support 2023-05-15 16:21:01 +01:00
pinctrl-rockchip.c
pinctrl-rockchip.h
pinctrl-single.c
pinctrl-st.c
pinctrl-stmfx.c
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
pinctrl-utils.h
pinctrl-xway.c pinctrl: lantiq: Remove unused of_gpio.h inclusion 2023-06-16 15:04:34 +02:00
pinctrl-zynq.c
pinctrl-zynqmp.c
pinmux.c pinctrl: Relax user input size in pinmux_select() 2023-06-09 09:20:56 +02:00
pinmux.h