summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2016-03-10 17:43:00 +0100
committerSeung-Woo Kim <sw0312.kim@samsung.com>2016-12-14 13:49:23 +0900
commitaaa509f2faee0163d3ebf9252be6a31561631ebc (patch)
tree5f19e16f83063ac9ae23e2cca0572013ddc83257
parent390748c9ac301b78fee57b95603a754f05d210a1 (diff)
fimc-is: Clear all MCUCTL register in the power up sequence
When the ISP, CAM{0,1} power domains are always on it is required to clear MCUCTL registers in the ISP power up sequence, otherwise the front camera is not working properly if previously the rear camera pipeline was used. The original code relied on the MCUCTL registers being reset to default values after the ISP power domain switch off/on cycle. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
-rw-r--r--drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c b/drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c
index 03864545b4e1..c0b86064119d 100644
--- a/drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c
+++ b/drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c
@@ -1239,6 +1239,10 @@ int fimc_is_ischain_power(struct fimc_is_device_ischain *device, int on)
if (rpm_ret < 0)
err("pm_runtime_get_sync() return error: %d", rpm_ret);
+ /* clear all MCUCTL registers */
+ for (i = 0; i < ISSR(63); i += 4)
+ writel(0, core->regs + i);
+
{
fimc_is_sec_get_sysfs_finfo(&sysfs_finfo);
if (!sysfs_finfo->is_caldata_read) {