linux/drivers/pinctrl/intel
Binbin Wu 2fef327668 pinctrl: pinctrl-intel: move gpio suspend/resume to noirq phase
In current driver, SET_LATE_SYSTEM_SLEEP_PM_OPS is used to install the
callbacks for suspend/resume.
GPIO pin may be used as the interrupt pin by some device. However, using
SET_LATE_SYSTEM_SLEEP_PM_OPS() to install the callbacks, the resume
callback is called after resume_device_irqs(). Unintended interrupts may
arrive due to resuming device irqs first, but the GPIO controller is not
properly restored.

Normally, for a SMP system, there are multiple cores, so even when there are
unintended interrupts, BSP gets the chance to initialize the GPIO chip soon.
But when there is only 1 core is active (other cores are offlined or
single core) during resume, it is more easily to observe the unintended
interrupts.

This patch renames the suspend/resume function by adding suffix "_noirq",
and installs the callbacks using SET_NOIRQ_SYSTEM_SLEEP_PM_OPS().

Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2019-04-09 18:26:44 +03:00
..
Kconfig pinctrl: intel: Convert to use SPDX identifier 2018-07-02 15:52:10 +02:00
Makefile pinctrl: intel: Add Ice Lake PCH pin controller support 2018-06-29 14:51:26 +02:00
pinctrl-baytrail.c pinctrl: baytrail: Fix potential NULL pointer dereference 2019-03-18 12:43:23 +03:00
pinctrl-broxton.c pinctrl: broxton: Code formatting fixes 2018-11-08 17:16:40 +02:00
pinctrl-cannonlake.c pinctrl: cannonlake: Code formatting fixes 2018-11-08 17:16:41 +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: cherryview: fix Strago DMI workaround 2019-01-21 13:05:42 +01:00
pinctrl-denverton.c pinctrl: denverton: Replace acpi.h with mod_devicetable.h 2018-11-08 17:16:40 +02:00
pinctrl-geminilake.c pinctrl: geminilake: Code formatting fixes 2018-11-08 17:16:41 +02:00
pinctrl-icelake.c pinctrl: icelake: Code formatting fixes 2018-11-08 17:16:41 +02:00
pinctrl-intel.c pinctrl: pinctrl-intel: move gpio suspend/resume to noirq phase 2019-04-09 18:26:44 +03:00
pinctrl-intel.h pinctrl: pinctrl-intel: move gpio suspend/resume to noirq phase 2019-04-09 18:26:44 +03:00
pinctrl-lewisburg.c pinctrl: lewisburg: Replace acpi.h with mod_devicetable.h 2018-11-08 17:16:40 +02:00
pinctrl-merrifield.c pinctrl: merrifield: include bits.h instead of bitops.h 2018-11-08 17:16:40 +02:00
pinctrl-sunrisepoint.c pinctrl: sunrisepoint: Get rid of unneeded ->probe() stub 2018-11-08 17:16:39 +02:00