diff options
Diffstat (limited to 'target/linux/mediatek/patches-4.14/0180-ASoC-mediatek-fix-error-handling-in-mt2701_afe_pcm_d.patch')
-rw-r--r-- | target/linux/mediatek/patches-4.14/0180-ASoC-mediatek-fix-error-handling-in-mt2701_afe_pcm_d.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/target/linux/mediatek/patches-4.14/0180-ASoC-mediatek-fix-error-handling-in-mt2701_afe_pcm_d.patch b/target/linux/mediatek/patches-4.14/0180-ASoC-mediatek-fix-error-handling-in-mt2701_afe_pcm_d.patch deleted file mode 100644 index 358f3d3ab9..0000000000 --- a/target/linux/mediatek/patches-4.14/0180-ASoC-mediatek-fix-error-handling-in-mt2701_afe_pcm_d.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 17508c32dd65649d2617c1c52b32b02bdb54b793 Mon Sep 17 00:00:00 2001 -From: Ryder Lee <ryder.lee@mediatek.com> -Date: Tue, 2 Jan 2018 19:47:18 +0800 -Subject: [PATCH 180/224] ASoC: mediatek: fix error handling in - mt2701_afe_pcm_dev_probe() - -Fix unbalanced error handling path which will get incorrect counts -if probe failed. The .remove() should be adjusted accordingly. - -Signed-off-by: Ryder Lee <ryder.lee@mediatek.com> -Tested-by: Garlic Tseng <garlic.tseng@mediatek.com> -Signed-off-by: Mark Brown <broonie@kernel.org> ---- - sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 31 ++++++++++++++---------------- - 1 file changed, 14 insertions(+), 17 deletions(-) - ---- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c -+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c -@@ -1590,12 +1590,16 @@ static int mt2701_afe_pcm_dev_probe(stru - } - - platform_set_drvdata(pdev, afe); -- pm_runtime_enable(&pdev->dev); -- if (!pm_runtime_enabled(&pdev->dev)) -- goto err_pm_disable; -- pm_runtime_get_sync(&pdev->dev); - -- ret = snd_soc_register_platform(&pdev->dev, &mtk_afe_pcm_platform); -+ pm_runtime_enable(dev); -+ if (!pm_runtime_enabled(dev)) { -+ ret = mt2701_afe_runtime_resume(dev); -+ if (ret) -+ goto err_pm_disable; -+ } -+ pm_runtime_get_sync(dev); -+ -+ ret = snd_soc_register_platform(dev, &mtk_afe_pcm_platform); - if (ret) { - dev_warn(dev, "err_platform\n"); - goto err_platform; -@@ -1610,35 +1614,28 @@ static int mt2701_afe_pcm_dev_probe(stru - goto err_dai_component; - } - -- mt2701_afe_runtime_resume(&pdev->dev); -- - return 0; - - err_dai_component: -- snd_soc_unregister_component(&pdev->dev); -- -+ snd_soc_unregister_platform(dev); - err_platform: -- snd_soc_unregister_platform(&pdev->dev); -- -+ pm_runtime_put_sync(dev); - err_pm_disable: -- pm_runtime_disable(&pdev->dev); -+ pm_runtime_disable(dev); - - return ret; - } - - static int mt2701_afe_pcm_dev_remove(struct platform_device *pdev) - { -- struct mtk_base_afe *afe = platform_get_drvdata(pdev); -- -+ pm_runtime_put_sync(&pdev->dev); - pm_runtime_disable(&pdev->dev); - if (!pm_runtime_status_suspended(&pdev->dev)) - mt2701_afe_runtime_suspend(&pdev->dev); -- pm_runtime_put_sync(&pdev->dev); - - snd_soc_unregister_component(&pdev->dev); - snd_soc_unregister_platform(&pdev->dev); -- /* disable afe clock */ -- mt2701_afe_disable_clock(afe); -+ - return 0; - } - |