]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
soundwire: amd: serialize amd manager resume sequence during pm_prepare
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>
Fri, 30 May 2025 05:43:40 +0000 (11:13 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:36:22 +0000 (18:36 +0200)
[ Upstream commit 03837341790039d6f1cbf7a1ae7dfa2cb77ef0a4 ]

During pm_prepare callback, pm_request_resume() delays SoundWire manager D0
entry sequence. Synchronize runtime resume sequence for amd_manager
instance prior to invoking child devices resume sequence for both the amd
power modes(ClockStop Mode and Power off mode).
Change the power_mode_mask check and use pm_runtime_resume() in
amd_pm_prepare() callback.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://lore.kernel.org/r/20250530054447.1645807-3-Vijendar.Mukunda@amd.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soundwire/amd_manager.c

index 7a671a7861979c4d7febcaa0869684d5f717bcca..3b335d6eaa943ec5640c593f9c8661a68be3e28c 100644 (file)
@@ -1178,10 +1178,10 @@ static int __maybe_unused amd_pm_prepare(struct device *dev)
         * device is not in runtime suspend state, observed that device alerts are missing
         * without pm_prepare on AMD platforms in clockstop mode0.
         */
-       if (amd_manager->power_mode_mask & AMD_SDW_CLK_STOP_MODE) {
-               ret = pm_request_resume(dev);
+       if (amd_manager->power_mode_mask) {
+               ret = pm_runtime_resume(dev);
                if (ret < 0) {
-                       dev_err(bus->dev, "pm_request_resume failed: %d\n", ret);
+                       dev_err(bus->dev, "pm_runtime_resume failed: %d\n", ret);
                        return 0;
                }
        }