linux/drivers/pinctrl/intel
Andy Shevchenko 76ad884be0 pinctrl: intel: Save and restore pins in "direct IRQ" mode
commit 6989ea4881 upstream.

The firmware on some systems may configure GPIO pins to be
an interrupt source in so called "direct IRQ" mode. In such
cases the GPIO controller driver has no idea if those pins
are being used or not. At the same time, there is a known bug
in the firmwares that don't restore the pin settings correctly
after suspend, i.e. by an unknown reason the Rx value becomes
inverted.

Hence, let's save and restore the pins that are configured
as GPIOs in the input mode with GPIROUTIOXAPIC bit set.

Cc: stable@vger.kernel.org
Reported-and-tested-by: Dale Smith <dalepsmith@gmail.com>
Reported-and-tested-by: John Harris <jmharris@gmail.com>
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214749
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Link: https://lore.kernel.org/r/20221124222926.72326-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2022-12-08 11:28:42 +01:00
..
Kconfig pinctrl: intel: Add Intel Alder Lake-S pin controller support 2020-11-04 12:33:19 +02:00
Makefile pinctrl: intel: Add Intel Alder Lake-S pin controller support 2020-11-04 12:33:19 +02:00
pinctrl-alderlake.c pinctrl: intel: Add Intel Alder Lake-S pin controller support 2020-11-04 12:33:19 +02:00
pinctrl-baytrail.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-broxton.c pinctrl: broxton: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-cannonlake.c pinctrl: cannonlake: Modify COMMUNITY macros to be consistent 2020-09-30 11:43:56 +02:00
pinctrl-cedarfork.c pinctrl: cedarfork: Update pin names according to v1.13c 2019-04-03 14:49:47 +03:00
pinctrl-cherryview.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-denverton.c pinctrl: denverton: Update pin names according to v1.08 2019-08-08 12:57:01 +03:00
pinctrl-elkhartlake.c pinctrl: intel: Add Intel Elkhart Lake pin controller support 2020-11-04 12:33:19 +02:00
pinctrl-emmitsburg.c pinctrl: intel: Add Intel Emmitsburg pin controller support 2020-07-21 11:44:21 +03:00
pinctrl-geminilake.c pinctrl: geminilake: Provide Interrupt Status register offset 2019-08-07 16:45:41 +03:00
pinctrl-icelake.c pinctrl: icelake: Use generic flag for special GPIO base treatment 2020-04-14 16:17:13 +03:00
pinctrl-intel.c pinctrl: intel: Save and restore pins in "direct IRQ" mode 2022-12-08 11:28:42 +01:00
pinctrl-intel.h pinctrl: intel: Convert capability list to features 2021-01-08 16:04:30 +02:00
pinctrl-jasperlake.c pinctrl: jasperlake: Fix HOSTSW_OWN offset 2020-11-16 12:07:57 +02:00
pinctrl-lakefield.c pinctrl: intel: Add Intel Lakefield pin controller support 2020-11-02 22:32:13 +02:00
pinctrl-lewisburg.c pinctrl: lewisburg: Update number of pins in community 2021-04-13 14:09:48 +03:00
pinctrl-lynxpoint.c pinctrl: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:39 +01:00
pinctrl-merrifield.c pinctrl: merrifield: Set default bias in case no particular value given 2020-11-16 12:07:57 +02:00
pinctrl-sunrisepoint.c pinctrl: sunrisepoint: Modify COMMUNITY macros to be consistent 2020-09-30 11:43:56 +02:00
pinctrl-tigerlake.c pinctrl: tigerlake: Revert "Add Alder Lake-M ACPI ID" 2022-03-16 14:23:40 +01:00