kernel_samsung_a53x/drivers/base
Qingliang Li 4e0bf4a49c PM: sleep: wakeirq: fix wake irq warning in system suspend
[ Upstream commit e7a7681c859643f3f2476b2a28a494877fd89442 ]

When driver uses pm_runtime_force_suspend() as the system suspend callback
function and registers the wake irq with reverse enable ordering, the wake
irq will be re-enabled when entering system suspend, triggering an
'Unbalanced enable for IRQ xxx' warning. In this scenario, the call
sequence during system suspend is as follows:
  suspend_devices_and_enter()
    -> dpm_suspend_start()
      -> dpm_run_callback()
        -> pm_runtime_force_suspend()
          -> dev_pm_enable_wake_irq_check()
          -> dev_pm_enable_wake_irq_complete()

    -> suspend_enter()
      -> dpm_suspend_noirq()
        -> device_wakeup_arm_wake_irqs()
          -> dev_pm_arm_wake_irq()

To fix this issue, complete the setting of WAKE_IRQ_DEDICATED_ENABLED flag
in dev_pm_enable_wake_irq_complete() to avoid redundant irq enablement.

Fixes: 8527beb12087 ("PM: sleep: wakeirq: fix wake irq arming")
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Qingliang Li <qingliang.li@mediatek.com>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Cc: 5.16+ <stable@vger.kernel.org> # 5.16+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 09:22:17 +01:00
..
firmware_loader Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
power PM: sleep: wakeirq: fix wake irq warning in system suspend 2024-11-19 09:22:17 +01:00
regmap regmap: Add missing map->bus check 2024-11-19 08:45:00 +01:00
test Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
arch_topology.c arch_topology: Rename freq_scale as arch_freq_scale 2024-11-17 17:45:22 +01:00
attribute_container.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
base.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bus.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cacheinfo.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
class.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
component.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
container.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
core.c driver core: Move the "removable" attribute from USB to core 2024-11-18 12:11:13 +01:00
cpu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dd.c driver core: Release all resources during unbind before updating device links 2024-11-18 12:11:17 +01:00
devcoredump.c devcoredump: Send uevent once devcd is ready 2024-11-18 12:11:48 +01:00
devres.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devtmpfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
driver.c driver: platform: Add helper for safer setting of driver_override 2024-11-18 10:58:45 +01:00
firmware.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hypervisor.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
init.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
map.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memory.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
node.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pinctrl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform-mock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform-msi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform.c driver: platform: Add helper for safer setting of driver_override 2024-11-18 10:58:45 +01:00
property.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
soc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swnode.c software node: Let args be NULL in software_node_get_reference_args 2024-11-18 12:12:49 +01:00
syscore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
topology.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
transport_class.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00