[media] exynos5-is: Reset CMU-ISP 51/35351/1
authorBeata Michalska <b.michalska@samsung.com>
Thu, 12 Feb 2015 11:36:24 +0000 (12:36 +0100)
committerBeata Michalska <b.michalska@samsung.com>
Thu, 12 Feb 2015 11:43:33 +0000 (12:43 +0100)
Reset CMU-ISP prior to entering low-power mode.

Change-Id: I2caf9ecbee728f07480ee8b18ff1d5558db77bad
Signed-off-by: Beata Michalska <b.michalska@samsung.com>
drivers/media/platform/exynos5-is/fimc-is-core.c

index 592479d..397fb29 100644 (file)
@@ -25,6 +25,7 @@
 #include "fimc-is.h"
 #include "fimc-is-i2c.h"
 #include "exynos5-mdev.h"
+#include "fimc-is-regs.h"
 
 #define CLK_MCU_ISP_DIV0_FREQ          (200 * 1000000)
 #define CLK_MCU_ISP_DIV1_FREQ          (100 * 1000000)
@@ -413,6 +414,12 @@ void fimc_is_clk_disable(struct fimc_is *is)
         }
 }
 
+static inline void fimc_is_reset_cmu_isp(struct fimc_is *is)
+{
+       if (is->drvdata->variant == FIMC_IS_EXYNOS3250)
+               pmu_is_write(0x0, is, EXYNOS3250_PMUREG_CMU_RESET_ISP);
+}
+
 static int fimc_is_pm_resume(struct device *dev)
 {
         struct fimc_is *is = dev_get_drvdata(dev);
@@ -431,6 +438,7 @@ static int fimc_is_pm_suspend(struct device *dev)
 {
         struct fimc_is *is = dev_get_drvdata(dev);
         fimc_is_clk_disable(is);
+       fimc_is_reset_cmu_isp(is);
         return 0;
 }
 
@@ -522,6 +530,8 @@ static int fimc_is_probe(struct platform_device *pdev)
 
         }
 
+       fimc_is_reset_cmu_isp(is);
+
        is->alloc_ctx = vb2_dma_contig_init_ctx(dev);
        if (IS_ERR(is->alloc_ctx)) {
                ret = PTR_ERR(is->alloc_ctx);