ASoC: fsl_rpmsg: Check -EPROBE_DEFER for getting clocks
The devm_clk_get() may return -EPROBE_DEFER, then clocks
will be assigned to NULL wrongly. As the clocks are
optional so we can use devm_clk_get_optional() instead of
devm_clk_get().
Fixes: b73d9e6225
("ASoC: fsl_rpmsg: Add CPU DAI driver for audio base on rpmsg")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1629266614-6942-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
2499ee9d90
Коммит
2fbbcffea5
|
@ -165,25 +165,25 @@ static int fsl_rpmsg_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
/* Get the optional clocks */
|
||||
rpmsg->ipg = devm_clk_get(&pdev->dev, "ipg");
|
||||
rpmsg->ipg = devm_clk_get_optional(&pdev->dev, "ipg");
|
||||
if (IS_ERR(rpmsg->ipg))
|
||||
rpmsg->ipg = NULL;
|
||||
return PTR_ERR(rpmsg->ipg);
|
||||
|
||||
rpmsg->mclk = devm_clk_get(&pdev->dev, "mclk");
|
||||
rpmsg->mclk = devm_clk_get_optional(&pdev->dev, "mclk");
|
||||
if (IS_ERR(rpmsg->mclk))
|
||||
rpmsg->mclk = NULL;
|
||||
return PTR_ERR(rpmsg->mclk);
|
||||
|
||||
rpmsg->dma = devm_clk_get(&pdev->dev, "dma");
|
||||
rpmsg->dma = devm_clk_get_optional(&pdev->dev, "dma");
|
||||
if (IS_ERR(rpmsg->dma))
|
||||
rpmsg->dma = NULL;
|
||||
return PTR_ERR(rpmsg->dma);
|
||||
|
||||
rpmsg->pll8k = devm_clk_get(&pdev->dev, "pll8k");
|
||||
rpmsg->pll8k = devm_clk_get_optional(&pdev->dev, "pll8k");
|
||||
if (IS_ERR(rpmsg->pll8k))
|
||||
rpmsg->pll8k = NULL;
|
||||
return PTR_ERR(rpmsg->pll8k);
|
||||
|
||||
rpmsg->pll11k = devm_clk_get(&pdev->dev, "pll11k");
|
||||
rpmsg->pll11k = devm_clk_get_optional(&pdev->dev, "pll11k");
|
||||
if (IS_ERR(rpmsg->pll11k))
|
||||
rpmsg->pll11k = NULL;
|
||||
return PTR_ERR(rpmsg->pll11k);
|
||||
|
||||
platform_set_drvdata(pdev, rpmsg);
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
|
Загрузка…
Ссылка в новой задаче