From: Sylwester Nawrocki Date: Thu, 10 Mar 2016 16:43:00 +0000 (+0100) Subject: fimc-is: Clear all MCUCTL register in the power up sequence X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f035dbaa549c4a1b77802862dd0eea21a5c15ca;p=platform%2Fkernel%2Flinux-exynos.git 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. Change-Id: I685603ab968e5eb3871dd0ed3a25a4eb694bdc75 Signed-off-by: Sylwester Nawrocki --- 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) {