Patch "ASoC: stm32: dfsdm: Fix PM disable depth imbalance in stm32_adfsdm_probe" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: stm32: dfsdm: Fix PM disable depth imbalance in stm32_adfsdm_probe

to the 6.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-stm32-dfsdm-fix-pm-disable-depth-imbalance-in-s.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 899f8e4b3f3f1f7ae3174ea85976b72e52540435
Author: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
Date:   Tue Sep 27 22:26:00 2022 +0800

    ASoC: stm32: dfsdm: Fix PM disable depth imbalance in stm32_adfsdm_probe
    
    [ Upstream commit b9a0da5b2edcae2a901b85c8cc42efc5bec4bd7b ]
    
    The pm_runtime_enable will increase power disable depth. Thus
    a pairing decrement is needed on the error handling path to
    keep it balanced according to context. We fix it by moving
    pm_runtime_enable to the endding of stm32_adfsdm_probe.
    
    Fixes:98e500a12f934 ("ASoC: stm32: dfsdm: add pm_runtime support for audio")
    
    Signed-off-by: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
    Reviewed-by: Olivier Moysan <olivier.moysan@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220927142601.64266-2-zhangqilong3@xxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/stm/stm32_adfsdm.c b/sound/soc/stm/stm32_adfsdm.c
index 04f2912e1418..643fc8a17018 100644
--- a/sound/soc/stm/stm32_adfsdm.c
+++ b/sound/soc/stm/stm32_adfsdm.c
@@ -335,8 +335,6 @@ static int stm32_adfsdm_probe(struct platform_device *pdev)
 
 	dev_set_drvdata(&pdev->dev, priv);
 
-	pm_runtime_enable(&pdev->dev);
-
 	ret = devm_snd_soc_register_component(&pdev->dev,
 					      &stm32_adfsdm_dai_component,
 					      &priv->dai_drv, 1);
@@ -366,9 +364,13 @@ static int stm32_adfsdm_probe(struct platform_device *pdev)
 #endif
 
 	ret = snd_soc_add_component(component, NULL, 0);
-	if (ret < 0)
+	if (ret < 0) {
 		dev_err(&pdev->dev, "%s: Failed to register PCM platform\n",
 			__func__);
+		return ret;
+	}
+
+	pm_runtime_enable(&pdev->dev);
 
 	return ret;
 }



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux