From 21c58beb711b825d679aea0a8d40778b9fcc7a52 Mon Sep 17 00:00:00 2001 From: Beata Michalska Date: Thu, 12 Feb 2015 12:36:24 +0100 Subject: [PATCH] [media] exynos5-is: Reset CMU-ISP Reset CMU-ISP prior to entering low-power mode. Change-Id: I2caf9ecbee728f07480ee8b18ff1d5558db77bad Signed-off-by: Beata Michalska --- drivers/media/platform/exynos5-is/fimc-is-core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/media/platform/exynos5-is/fimc-is-core.c b/drivers/media/platform/exynos5-is/fimc-is-core.c index 592479d..397fb29 100644 --- a/drivers/media/platform/exynos5-is/fimc-is-core.c +++ b/drivers/media/platform/exynos5-is/fimc-is-core.c @@ -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); -- 2.7.4