linux/drivers/gpio
Mario Limonciello 9d369cd505 gpiolib-acpi: Don't set GPIOs for wakeup in S3 mode
[ Upstream commit d63f11c02b ]

commit 1796f808e4 ("HID: i2c-hid: acpi: Stop setting wakeup_capable")
adjusted the policy to enable wakeup by default if the ACPI tables
indicated that a device was wake capable.

It was reported however that this broke suspend on at least two System76
systems in S3 mode and two Lenovo Gen2a systems, but only with S3.
When the machines are set to s2idle, wakeup behaves properly.

Configuring the GPIOs for wakeup with S3 doesn't work properly, so only
set it when the system supports low power idle.

Fixes: 1796f808e4 ("HID: i2c-hid: acpi: Stop setting wakeup_capable")
Fixes: b38f2d5d96 ("i2c: acpi: Use ACPI wake capability bit to set wake_irq")
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2357
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2162013
Reported-by: Nathan Smythe <ncsmythe@scruboak.org>
Tested-by: Nathan Smythe <ncsmythe@scruboak.org>
Suggested-by: Raul Rangel <rrangel@chromium.org>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-06 08:06:34 +01:00
..
gpio-74x164.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-74xx-mmio.c gpio: 74xx-mmio: Use bits instead of plain numbers for flags 2022-07-28 15:47:56 +02:00
gpio-104-dio-48e.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-104-idi-48.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-104-idio-16.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-adnp.c gpio: adnp: Make use of device properties 2022-07-19 09:57:13 +02:00
gpio-adp5520.c gpio: adp5520: cleanup probe error path + remove platform_set_drvdata() 2021-05-21 15:29:53 +02:00
gpio-aggregator.c gpio: aggregator: Fix calling into sleeping GPIO controllers 2022-02-02 11:53:46 +01:00
gpio-altera-a10sr.c gpio: altera-a10sr: Switch to use fwnode instead of of_node 2022-01-24 17:23:15 +02:00
gpio-altera.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-amd-fch.c
gpio-amd8111.c gpio: amd8111: Fix PCI device reference count leak 2022-11-30 17:18:35 +01:00
gpio-amdpt.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-arizona.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-aspeed-sgpio.c gpio updates for v5.17 2022-01-11 12:31:35 -08:00
gpio-aspeed.c gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock 2021-12-10 16:14:40 +01:00
gpio-ath79.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-bcm-kona.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-bd9571mwv.c gpio: bd9571mwv: remove platform_set_drvdata() + cleanup probe 2021-05-21 15:43:26 +02:00
gpio-bd71815.c gpio: Support ROHM BD71815 GPOs 2021-04-14 10:19:22 +01:00
gpio-bd71828.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-brcmstb.c gpio: updates for v6.0-rc1 2022-08-04 18:34:05 -07:00
gpio-bt8xx.c drivers: gpio: bt8xx: prefer dev_err()/dev_warn() over of raw printk 2020-12-08 09:41:32 +01:00
gpio-cadence.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-clps711x.c
gpio-creg-snps.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-crystalcove.c gpio: crystalcove: Join function declarations and long lines 2022-06-06 14:09:16 +03:00
gpio-cs5535.c gpio: cs5535: Simplify the return expression of cs5535_gpio_probe() 2020-12-12 01:37:46 +01:00
gpio-da9052.c gpio: da9052: remove platform_set_drvdata() + cleanup probe 2021-05-23 20:32:09 +02:00
gpio-da9055.c gpio: da9055: remove platform_set_drvdata() + cleanup probe 2021-05-21 14:45:57 +02:00
gpio-davinci.c gpio: davinci: Add support for system suspend/resume PM 2022-07-19 09:56:51 +02:00
gpio-dln2.c gpio: dln2: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-dwapb.c gpio: dwapb: Don't print error on -EPROBE_DEFER 2022-06-10 14:26:15 +02:00
gpio-eic-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-em.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-en7523.c gpio: Add support for Airoha EN7523 GPIO controller 2022-02-02 10:16:19 +01:00
gpio-ep93xx.c gpio: ep93xx: Fix port F hwirq numbers in handler 2023-02-01 08:34:47 +01:00
gpio-exar.c gpio: exar: access MPIO registers on cascaded chips 2022-09-04 22:25:10 +02:00
gpio-f7188x.c gpio-f7188x: use unique labels for banks/chips 2022-09-01 16:14:35 +02:00
gpio-ftgpio010.c gpio: ftgpio010: Make irqchip immutable 2022-09-20 16:10:53 +02:00
gpio-ge.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-gpio-mm.c gpio: gpio-mm: Implement and utilize register structures 2022-07-20 17:44:47 +02:00
gpio-grgpio.c gpio: grgpio: Fix device removing 2022-06-23 16:42:27 +02:00
gpio-gw-pld.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-hisi.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-hlwd.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-htc-egpio.c
gpio-i8255.c gpio: i8255: Introduce the Intel 8255 interface library module 2022-07-20 17:44:36 +02:00
gpio-i8255.h gpio: i8255: Introduce the Intel 8255 interface library module 2022-07-20 17:44:36 +02:00
gpio-ich.c gpio: ich: Switch to be dependent on LPC_ICH 2021-05-05 16:07:41 +02:00
gpio-idt3243x.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-imx-scu.c gpio: imx-scu: add imx-scu GPIO driver 2022-08-31 17:21:23 +02:00
gpio-iop.c
gpio-it87.c gpio: it87: remove unused code 2021-05-05 16:07:41 +02:00
gpio-ixp4xx.c gpio: ixp4xx: Make irqchip immutable 2022-09-13 16:17:45 +02:00
gpio-janz-ttl.c
gpio-kempld.c
gpio-logicvc.c gpio: logicvc: Remove redundant error printing in logicvc_gpio_probe() 2021-05-12 13:35:39 +02:00
gpio-loongson.c
gpio-loongson1.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-lp873x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-lp3943.c gpio: lp3943: unsigned to unsigned int cleanup 2022-07-19 09:57:40 +02:00
gpio-lp87565.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-lpc18xx.c
gpio-lpc32xx.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-madera.c
gpio-max730x.c gpio: max730x: Make __max730x_remove() return void 2021-10-13 19:52:26 +02:00
gpio-max732x.c gpio: max732x: Drop unused support for irq and setup code via platform data 2022-05-05 14:37:17 +02:00
gpio-max3191x.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-max7300.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
gpio-max7301.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-max77620.c gpio: max77620: Make the irqchip immutable 2022-05-05 14:56:37 +02:00
gpio-max77650.c
gpio-mb86s7x.c
gpio-mc33880.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-menz127.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-merrifield.c gpio: merrifield: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-ml-ioh.c gpio: ml-ioh: Convert to use managed functions pcim* and devm_* 2022-05-20 19:20:35 +02:00
gpio-mlxbf.c
gpio-mlxbf2.c gpio: mlxbf2: Use generic_handle_irq_safe() 2022-09-19 15:08:38 +02:00
gpio-mm-lantiq.c
gpio-mmio.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-mockup.c gpio: mockup: Fix potential resource leakage when register a chip 2022-09-20 16:07:15 +02:00
gpio-moxtet.c treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
gpio-mpc8xxx.c gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx 2022-09-07 13:17:23 +02:00
gpio-mpc5200.c
gpio-msc313.c gpio: Remove dynamic allocation from populate_parent_alloc_arg() 2022-07-10 09:30:00 +01:00
gpio-mt7621.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-mvebu.c gpio: mvebu: Fix check for pwm support on non-A8K platforms 2022-09-26 09:20:09 +02:00
gpio-mxc.c gpio: mxc: Unlock on error path in mxc_flip_edge() 2023-02-01 08:34:47 +01:00
gpio-mxs.c gpio: mxs: Fix header comment 2022-06-23 23:18:13 +02:00
gpio-octeon.c
gpio-omap.c gpio: omap: Move PM device over to irq domain 2022-02-09 13:36:53 +00:00
gpio-palmas.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-pca953x.c gpio: pca953x: avoid to use uninitialized value pinctrl 2023-01-12 12:02:20 +01:00
gpio-pca9570.c gpio: pca9570: add pca9571 support 2022-07-19 09:57:13 +02:00
gpio-pcf857x.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
gpio-pch.c gpio: pch: Change PCI device macros 2022-06-21 18:01:11 +03:00
gpio-pci-idio-16.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pcie-idio-24.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pisosr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-pl061.c gpio: pl061: Make the irqchip immutable 2022-04-19 15:22:26 +01:00
gpio-pmic-eic-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-pxa.c gpio: pxa: use devres for the clock struct 2022-08-19 14:35:11 +02:00
gpio-raspberrypi-exp.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-rc5t583.c
gpio-rcar.c gpio: rcar: Make the irqchip immutable 2022-05-24 16:35:49 +02:00
gpio-rda.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-rdc321x.c
gpio-realtek-otto.c gpio: realtek-otto: switch to 32-bit I/O 2022-08-31 17:46:30 +02:00
gpio-reg.c
gpio-regmap.c gpio: regmap: Switch to use fwnode instead of of_node 2021-12-23 17:14:19 +01:00
gpio-rockchip.c gpio/rockchip: fix refcount leak in rockchip_gpiolib_register() 2022-12-06 10:10:46 +01:00
gpio-sa1100.c
gpio-sama5d2-piobu.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-sch.c gpio: sch: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-sch311x.c
gpio-sifive.c gpio: sifive: Fix refcount leak in sifive_gpio_probe 2023-01-12 12:02:24 +01:00
gpio-sim.c gpio: sim: fix the chip_name configfs item 2022-07-12 13:41:25 +02:00
gpio-siox.c
gpio-sl28cpld.c gpio: sl28cpld: convert comma to semicolon 2021-02-15 11:43:26 +01:00
gpio-sodaville.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-spear-spics.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-sta2x11.c gpio: sta2x11: fix typo in a comment 2021-12-17 12:26:13 +01:00
gpio-stmpe.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-stp-xway.c
gpio-syscon.c gpio: syscon: Remove usage of syscon_regmap_lookup_by_compatible 2022-05-02 10:41:33 +02:00
gpio-tb10x.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-tc3589x.c gpio: tc3589x: Make irqchip immutable 2022-10-03 20:56:46 +02:00
gpio-tegra.c gpio: tegra: Convert to immutable irq chip 2022-10-20 13:47:54 +02:00
gpio-tegra186.c gpio: Remove dynamic allocation from populate_parent_alloc_arg() 2022-07-10 09:30:00 +01:00
gpio-thunderx.c gpio: thunderx: Don't directly include asm-generic/msi.h 2022-07-11 09:15:58 +01:00
gpio-timberdale.c
gpio-tn48m.c gpio: Add Delta TN48M CPLD GPIO driver 2022-02-25 09:59:35 +01:00
gpio-tpic2810.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
gpio-tps6586x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65086.c
gpio-tps65218.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-tps65910.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65912.c gpio: tps65912: remove platform_set_drvdata() + cleanup probe 2021-05-24 20:58:46 +02:00
gpio-tps68470.c gpio: tps68470: Allow building as module 2022-01-24 17:23:15 +02:00
gpio-tqmx86.c gpio: tqmx86: fix uninitialized variable girq 2022-09-21 09:31:22 +02:00
gpio-ts4800.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-ts4900.c gpio fixes for v5.18-rc1 2022-04-01 10:26:09 -07:00
gpio-ts5500.c gpio: ts5500: Fix Links to Technologic Systems web resources 2022-03-31 16:44:57 +02:00
gpio-twl4030.c gpio: twl4030: Reorder functions which allows to drop a forward declaraion 2022-09-20 09:02:08 +02:00
gpio-twl6040.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-ucb1400.c gpio: ucb1400: Use proper header 2022-08-31 13:37:32 +02:00
gpio-uniphier.c gpio updates for v5.16 2021-11-08 11:55:21 -08:00
gpio-vf610.c gpio: vf610: fix compilation error 2022-07-05 15:58:59 +02:00
gpio-viperboard.c gpio: viperboard: remove platform_set_drvdata() call in probe 2021-08-31 11:29:28 +02:00
gpio-virtio.c virtio: wrap config->reset calls 2022-01-14 18:50:52 -05:00
gpio-visconti.c gpio: Remove dynamic allocation from populate_parent_alloc_arg() 2022-07-10 09:30:00 +01:00
gpio-vx855.c gpio: vx855: convert comma to semicolon 2021-02-15 11:43:29 +01:00
gpio-wcd934x.c gpio: wcd934x: Fix shift-out-of-bounds error 2021-05-27 09:51:35 +02:00
gpio-wcove.c gpio: wcove: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-winbond.c gpio: winbond: Fix error code in winbond_gpio_get() 2022-06-23 16:29:55 +02:00
gpio-wm831x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-wm8350.c gpio: wm8350: remove platform_set_drvdata() + cleanup probe 2021-05-25 16:21:28 +02:00
gpio-wm8994.c gpio: wm8994: remove platform_set_drvdata() + cleanup probe 2021-05-25 16:21:14 +02:00
gpio-ws16c48.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-xgene-sb.c
gpio-xgene.c gpio: xgene: simplify probe, return devm_gpiochip_add_data() directly 2021-05-23 20:30:26 +02:00
gpio-xgs-iproc.c gpio: xgs-iproc: Drop if with an always false condition 2022-07-19 09:57:13 +02:00
gpio-xilinx.c gpio: updates for v6.0-rc1 2022-08-04 18:34:05 -07:00
gpio-xlp.c gpio: xlp: Fix build errors from Netlogic XLP removal 2021-12-03 16:00:40 +01:00
gpio-xra1403.c gpio: xra1403: remove unneeded spi_set_drvdata() 2020-11-30 17:36:36 +01:00
gpio-xtensa.c
gpio-zevio.c gpio: zevio: drop of_gpio.h header 2022-05-14 14:41:21 +02:00
gpio-zynq.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-zynqmp-modepin.c gpio: modepin: Add driver support for modepin GPIO controller 2021-09-23 10:09:58 +02:00
gpiolib-acpi.c gpiolib-acpi: Don't set GPIOs for wakeup in S3 mode 2023-02-06 08:06:34 +01:00
gpiolib-acpi.h gpiolib: acpi: Add wake_capable variants of acpi_dev_gpio_irq_get 2022-10-04 15:41:12 +02:00
gpiolib-cdev.c gpiolib: protect the GPIO device against being dropped while in use by user-space 2022-12-31 13:32:42 +01:00
gpiolib-cdev.h gpiolib: fix sysfs when cdev is not selected 2020-11-05 15:35:40 +01:00
gpiolib-devres.c gpiolib: devres: Get rid of unused devm_gpio_free() 2022-07-19 09:56:34 +02:00
gpiolib-legacy.c
gpiolib-of.c gpiolib: fix OOB access in quirk callbacks 2022-09-20 08:30:57 +02:00
gpiolib-of.h gpiolib: Bind gpio_device to a driver to enable fw_devlink=on by default 2021-01-27 16:04:10 +01:00
gpiolib-sysfs.c gpiolib: Embed iterator variable into for_each_gpio_desc_with_flag() 2022-04-09 22:37:48 +02:00
gpiolib-sysfs.h
gpiolib.c gpiolib: protect the GPIO device against being dropped while in use by user-space 2022-12-31 13:32:42 +01:00
gpiolib.h gpiolib: protect the GPIO device against being dropped while in use by user-space 2022-12-31 13:32:42 +01:00
Kconfig Input updates for 6.1 merge window: 2022-10-11 10:53:25 -07:00
Makefile Input updates for 6.1 merge window: 2022-10-11 10:53:25 -07:00
TODO gpio: Update TODO to mention immutable irq_chip structures 2022-04-19 15:22:26 +01:00