2fef327668
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> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
pinctrl-baytrail.c | ||
pinctrl-broxton.c | ||
pinctrl-cannonlake.c | ||
pinctrl-cedarfork.c | ||
pinctrl-cherryview.c | ||
pinctrl-denverton.c | ||
pinctrl-geminilake.c | ||
pinctrl-icelake.c | ||
pinctrl-intel.c | ||
pinctrl-intel.h | ||
pinctrl-lewisburg.c | ||
pinctrl-merrifield.c | ||
pinctrl-sunrisepoint.c |