[media] exynos4-is: Fix runtime PM handling on fimc-is probe error path
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Thu, 18 Apr 2013 17:26:19 +0000 (14:26 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 25 Apr 2013 12:37:12 +0000 (09:37 -0300)
Ensure there is no unbalanced pm_runtime_put().

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/platform/exynos4-is/fimc-is.c

index 5e890776d16493ce3bc1997f55e60992d7a59f43..47c6363d04e2ce5e6ef5d631e26223daf81c41ef 100644 (file)
@@ -847,16 +847,17 @@ static int fimc_is_probe(struct platform_device *pdev)
                goto err_irq;
 
        ret = fimc_is_setup_clocks(is);
+       pm_runtime_put_sync(dev);
+
        if (ret < 0)
                goto err_irq;
 
-       pm_runtime_put_sync(dev);
        is->clk_init = true;
 
        is->alloc_ctx = vb2_dma_contig_init_ctx(dev);
        if (IS_ERR(is->alloc_ctx)) {
                ret = PTR_ERR(is->alloc_ctx);
-               goto err_pm;
+               goto err_irq;
        }
        /*
         * Register FIMC-IS V4L2 subdevs to this driver. The video nodes
@@ -885,8 +886,6 @@ err_sd:
        fimc_is_unregister_subdevs(is);
 err_irq:
        free_irq(is->irq, is);
-err_pm:
-       pm_runtime_put(dev);
 err_clk:
        fimc_is_put_clocks(is);
        return ret;