media: exynos4-is: Fix PM disable depth imbalance in fimc_is_probe
Commit Message
If probe fails then we need to call pm_runtime_disable() to balance
out the previous pm_runtime_enable() call.
Fixes: 9a761e436843 ("[media] exynos4-is: Add Exynos4x12 FIMC-IS driver")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
drivers/media/platform/exynos4-is/fimc-is.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
On 07/03/2022 08:52, Miaoqian Lin wrote:
> If probe fails then we need to call pm_runtime_disable() to balance
> out the previous pm_runtime_enable() call.
>
> Fixes: 9a761e436843 ("[media] exynos4-is: Add Exynos4x12 FIMC-IS driver")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---
> drivers/media/platform/exynos4-is/fimc-is.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Best regards,
Krzysztof
>-----Original Message-----
>From: Miaoqian Lin [mailto:linmq006@gmail.com]
>Sent: Monday, March 7, 2022 1:22 PM
>To: Sylwester Nawrocki <s.nawrocki@samsung.com>; Mauro Carvalho
>Chehab <mchehab@kernel.org>; Krzysztof Kozlowski
><krzysztof.kozlowski@canonical.com>; Alim Akhtar
><alim.akhtar@samsung.com>; Kyungmin Park
><kyungmin.park@samsung.com>; Younghwan Joo
><yhwan.joo@samsung.com>; linux-media@vger.kernel.org; linux-arm-
>kernel@lists.infradead.org; linux-samsung-soc@vger.kernel.org; linux-
>kernel@vger.kernel.org
>Cc: linmq006@gmail.com
>Subject: [PATCH] media: exynos4-is: Fix PM disable depth imbalance in
>fimc_is_probe
>
>If probe fails then we need to call pm_runtime_disable() to balance out the
>previous pm_runtime_enable() call.
>
>Fixes: 9a761e436843 ("[media] exynos4-is: Add Exynos4x12 FIMC-IS driver")
>Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
>---
Thanks for fixing this
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
> drivers/media/platform/exynos4-is/fimc-is.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/media/platform/exynos4-is/fimc-is.c
>b/drivers/media/platform/exynos4-is/fimc-is.c
>index e55e411038f4..81b290dace3a 100644
>--- a/drivers/media/platform/exynos4-is/fimc-is.c
>+++ b/drivers/media/platform/exynos4-is/fimc-is.c
>@@ -830,7 +830,7 @@ static int fimc_is_probe(struct platform_device *pdev)
>
> ret = pm_runtime_resume_and_get(dev);
> if (ret < 0)
>- goto err_irq;
>+ goto err_pm_disable;
>
> vb2_dma_contig_set_max_seg_size(dev, DMA_BIT_MASK(32));
>
>@@ -864,6 +864,8 @@ static int fimc_is_probe(struct platform_device *pdev)
> pm_runtime_put_noidle(dev);
> if (!pm_runtime_enabled(dev))
> fimc_is_runtime_suspend(dev);
>+err_pm_disable:
>+ pm_runtime_disable(dev);
> err_irq:
> free_irq(is->irq, is);
> err_clk:
>--
>2.17.1
@@ -830,7 +830,7 @@ static int fimc_is_probe(struct platform_device *pdev)
ret = pm_runtime_resume_and_get(dev);
if (ret < 0)
- goto err_irq;
+ goto err_pm_disable;
vb2_dma_contig_set_max_seg_size(dev, DMA_BIT_MASK(32));
@@ -864,6 +864,8 @@ static int fimc_is_probe(struct platform_device *pdev)
pm_runtime_put_noidle(dev);
if (!pm_runtime_enabled(dev))
fimc_is_runtime_suspend(dev);
+err_pm_disable:
+ pm_runtime_disable(dev);
err_irq:
free_irq(is->irq, is);
err_clk: