summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeata Michalska <b.michalska@samsung.com>2015-02-12 11:36:24 (GMT)
committerBeata Michalska <b.michalska@samsung.com>2015-02-12 11:43:33 (GMT)
commit21c58beb711b825d679aea0a8d40778b9fcc7a52 (patch)
tree36e5238cafc9093cfebb94bc378248158c0139b2
parentcd97146ad0783f80abf41ed31ec881d90e6b7c27 (diff)
downloadlinux-3.10-21c58beb711b825d679aea0a8d40778b9fcc7a52.zip
linux-3.10-21c58beb711b825d679aea0a8d40778b9fcc7a52.tar.gz
linux-3.10-21c58beb711b825d679aea0a8d40778b9fcc7a52.tar.bz2
[media] exynos5-is: Reset CMU-ISPrefs/changes/51/35351/1
Reset CMU-ISP prior to entering low-power mode. Change-Id: I2caf9ecbee728f07480ee8b18ff1d5558db77bad Signed-off-by: Beata Michalska <b.michalska@samsung.com>
-rw-r--r--drivers/media/platform/exynos5-is/fimc-is-core.c10
1 files changed, 10 insertions, 0 deletions
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);