soundwire: intel_auxdevice: use pm_runtime_resume() instead of pm_request_resume()
authorBard Liao <yung-chuan.liao@linux.intel.com>
Wed, 10 Apr 2024 02:34:36 +0000 (02:34 +0000)
committerVinod Koul <vkoul@kernel.org>
Thu, 11 Apr 2024 17:22:51 +0000 (22:52 +0530)
We need to wait for each child to fully resume. pm_request_resume() is
asynchronous, what we need is to wait synchronously to avoid race
conditions.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20240410023438.487017-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/intel_auxdevice.c

index 95125cc2fc599e040be30b3e376fbd93d6cfd88c..012232cfbf7fc2e26bf8ff8b51f89e8aae977a79 100644 (file)
@@ -454,9 +454,9 @@ static int intel_resume_child_device(struct device *dev, void *data)
                return 0;
        }
 
-       ret = pm_request_resume(dev);
+       ret = pm_runtime_resume(dev);
        if (ret < 0) {
-               dev_err(dev, "%s: pm_request_resume failed: %d\n", __func__, ret);
+               dev_err(dev, "%s: pm_runtime_resume failed: %d\n", __func__, ret);
                return ret;
        }
 
@@ -499,9 +499,9 @@ static int __maybe_unused intel_pm_prepare(struct device *dev)
                 * first resume the device for this link. This will also by construction
                 * resume the PCI parent device.
                 */
-               ret = pm_request_resume(dev);
+               ret = pm_runtime_resume(dev);
                if (ret < 0) {
-                       dev_err(dev, "%s: pm_request_resume failed: %d\n", __func__, ret);
+                       dev_err(dev, "%s: pm_runtime_resume failed: %d\n", __func__, ret);
                        return 0;
                }