| From b30812b2a9cb41b2a47d56a09f0d9c6de179c7c5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 11 Nov 2020 12:13:26 +0800 |
| Subject: ASoC: wm8998: Fix PM disable depth imbalance on error |
| |
| From: Zhang Qilong <zhangqilong3@huawei.com> |
| |
| [ Upstream commit 193aa0a043645220d2a2f783ba06ae13d4601078 ] |
| |
| 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. |
| |
| Fixes: 31833ead95c2c ("ASoC: arizona: Move request of speaker IRQs into bus probe") |
| Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com> |
| Reviewed-by: Richard Fitzgerald <rf@opensource.cirrus.com> |
| Link: https://lore.kernel.org/r/20201111041326.1257558-4-zhangqilong3@huawei.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/soc/codecs/wm8998.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/sound/soc/codecs/wm8998.c b/sound/soc/codecs/wm8998.c |
| index 61294c787f274..17dc5780ab686 100644 |
| --- a/sound/soc/codecs/wm8998.c |
| +++ b/sound/soc/codecs/wm8998.c |
| @@ -1378,7 +1378,7 @@ static int wm8998_probe(struct platform_device *pdev) |
| |
| ret = arizona_init_spk_irqs(arizona); |
| if (ret < 0) |
| - return ret; |
| + goto err_pm_disable; |
| |
| ret = devm_snd_soc_register_component(&pdev->dev, |
| &soc_component_dev_wm8998, |
| @@ -1393,6 +1393,8 @@ static int wm8998_probe(struct platform_device *pdev) |
| |
| err_spk_irqs: |
| arizona_free_spk_irqs(arizona); |
| +err_pm_disable: |
| + pm_runtime_disable(&pdev->dev); |
| |
| return ret; |
| } |
| -- |
| 2.27.0 |
| |