]> www.infradead.org Git - users/hch/misc.git/commitdiff
ASoC: codecs: wcd938x-sdw: remove redundant runtime pm calls
authorSrinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Wed, 8 Oct 2025 14:58:01 +0000 (15:58 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 15 Oct 2025 09:47:24 +0000 (10:47 +0100)
Component bind callbacks already does runtime pm calls, soundwire codec
also tries to do the exactly same thing resulting in Unbalanced
pm_runtime_enable and disable calls.

Remove the redundant calls from wcd938x-sdw driver.

Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Fixes: ebaf88c0546d ("ASoC: codecs: wcd-common: move component ops to common")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Link: https://patch.msgid.link/20251008145801.3479-1-srinivas.kandagatla@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wcd938x-sdw.c

index add907cb270629fc4b5f59fafe74373c00289615..8c8f39d04972344b94c0be374007867eb1cbbb05 100644 (file)
@@ -1207,24 +1207,14 @@ static int wcd9380_probe(struct sdw_slave *pdev,
                regcache_cache_only(wcd->regmap, true);
        }
 
-       pm_runtime_set_autosuspend_delay(dev, 3000);
-       pm_runtime_use_autosuspend(dev);
-       pm_runtime_mark_last_busy(dev);
-       pm_runtime_set_active(dev);
-       pm_runtime_enable(dev);
-
        ret = component_add(dev, &wcd_sdw_component_ops);
        if (ret)
-               goto err_disable_rpm;
-
-       return 0;
+               return ret;
 
-err_disable_rpm:
-       pm_runtime_disable(dev);
+       /* Set suspended until aggregate device is bind */
        pm_runtime_set_suspended(dev);
-       pm_runtime_dont_use_autosuspend(dev);
 
-       return ret;
+       return 0;
 }
 
 static int wcd9380_remove(struct sdw_slave *pdev)
@@ -1233,10 +1223,6 @@ static int wcd9380_remove(struct sdw_slave *pdev)
 
        component_del(dev, &wcd_sdw_component_ops);
 
-       pm_runtime_disable(dev);
-       pm_runtime_set_suspended(dev);
-       pm_runtime_dont_use_autosuspend(dev);
-
        return 0;
 }