| From 029a8bcceb5fb8d7e00308027ad35e3d9c0f828b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 3 Apr 2022 11:52:39 +0000 |
| Subject: ASoC: msm8916-wcd-digital: Check failure for |
| devm_snd_soc_register_component |
| |
| From: Miaoqian Lin <linmq006@gmail.com> |
| |
| [ Upstream commit e927b05f3cc20de87f6b7d912a5bbe556931caca ] |
| |
| devm_snd_soc_register_component() may fails, we should check the error |
| and do the corresponding error handling. |
| |
| Fixes: 150db8c5afa1 ("ASoC: codecs: Add msm8916-wcd digital codec") |
| Signed-off-by: Miaoqian Lin <linmq006@gmail.com> |
| Link: https://lore.kernel.org/r/20220403115239.30140-1-linmq006@gmail.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/soc/codecs/msm8916-wcd-digital.c | 9 ++++++++- |
| 1 file changed, 8 insertions(+), 1 deletion(-) |
| |
| diff --git a/sound/soc/codecs/msm8916-wcd-digital.c b/sound/soc/codecs/msm8916-wcd-digital.c |
| index d5269ab5f91c..e4cde214b7b2 100644 |
| --- a/sound/soc/codecs/msm8916-wcd-digital.c |
| +++ b/sound/soc/codecs/msm8916-wcd-digital.c |
| @@ -1206,9 +1206,16 @@ static int msm8916_wcd_digital_probe(struct platform_device *pdev) |
| |
| dev_set_drvdata(dev, priv); |
| |
| - return devm_snd_soc_register_component(dev, &msm8916_wcd_digital, |
| + ret = devm_snd_soc_register_component(dev, &msm8916_wcd_digital, |
| msm8916_wcd_digital_dai, |
| ARRAY_SIZE(msm8916_wcd_digital_dai)); |
| + if (ret) |
| + goto err_mclk; |
| + |
| + return 0; |
| + |
| +err_mclk: |
| + clk_disable_unprepare(priv->mclk); |
| err_clk: |
| clk_disable_unprepare(priv->ahbclk); |
| return ret; |
| -- |
| 2.35.1 |
| |