summaryrefslogtreecommitdiff
path: root/drivers/platform/x86/intel_pmc_ipc.c
diff options
context:
space:
mode:
authorBinbin Wu <binbin.wu@intel.com>2019-04-08 18:49:26 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-06-15 11:53:03 +0200
commitdb5d63c11b945949b27638cbf67845646c95c9cd (patch)
treec1a3916143f4678e64adf18dd78e8338f4864aa3 /drivers/platform/x86/intel_pmc_ipc.c
parent8274eb869427fe7051248671f77176a0026bdfd8 (diff)
pinctrl: pinctrl-intel: move gpio suspend/resume to noirq phase
[ Upstream commit 2fef32766861c6e171f436ab99c89198cf0ca6e1 ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/platform/x86/intel_pmc_ipc.c')
0 files changed, 0 insertions, 0 deletions