Skip to content

Commit f9d378f

Browse files
Chancel Liubroonie
authored andcommitted
ASoC: fsl_rpmsg: Fix error handler with pm_runtime_enable
There is error message when defer probe happens: fsl_rpmsg rpmsg_audio: Unbalanced pm_runtime_enable! Fix the error handler with pm_runtime_enable. Fixes: b73d9e6 ("ASoC: fsl_rpmsg: Add CPU DAI driver for audio base on rpmsg") Signed-off-by: Chancel Liu <chancel.liu@nxp.com> Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com> Link: https://lore.kernel.org/r/20231225080608.967953-1-chancel.liu@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 8f0f016 commit f9d378f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

sound/soc/fsl/fsl_rpmsg.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ static int fsl_rpmsg_probe(struct platform_device *pdev)
238238
ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component,
239239
&fsl_rpmsg_dai, 1);
240240
if (ret)
241-
return ret;
241+
goto err_pm_disable;
242242

243243
rpmsg->card_pdev = platform_device_register_data(&pdev->dev,
244244
"imx-audio-rpmsg",
@@ -248,16 +248,22 @@ static int fsl_rpmsg_probe(struct platform_device *pdev)
248248
if (IS_ERR(rpmsg->card_pdev)) {
249249
dev_err(&pdev->dev, "failed to register rpmsg card\n");
250250
ret = PTR_ERR(rpmsg->card_pdev);
251-
return ret;
251+
goto err_pm_disable;
252252
}
253253

254254
return 0;
255+
256+
err_pm_disable:
257+
pm_runtime_disable(&pdev->dev);
258+
return ret;
255259
}
256260

257261
static void fsl_rpmsg_remove(struct platform_device *pdev)
258262
{
259263
struct fsl_rpmsg *rpmsg = platform_get_drvdata(pdev);
260264

265+
pm_runtime_disable(&pdev->dev);
266+
261267
if (rpmsg->card_pdev)
262268
platform_device_unregister(rpmsg->card_pdev);
263269
}

0 commit comments

Comments
 (0)