fimc-is: Add proper implementation of fimc_is_ischain_forcedown()
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Fri, 11 Mar 2016 15:08:37 +0000 (16:08 +0100)
committerJunghoon Kim <jhoon20.kim@samsung.com>
Thu, 14 Feb 2019 05:57:17 +0000 (14:57 +0900)
Change-Id: I1f9314050dd9ca52623dd1770ccef3fa8b3755d6
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
drivers/media/platform/exynos/fimc-is/fimc-is-device-ischain.c

index d37a089..3d4cde9 100644 (file)
@@ -1159,19 +1159,19 @@ static int fimc_is_ischain_loadcalb(struct fimc_is_device_ischain *device,
 static void fimc_is_ischain_forcedown(struct fimc_is_device_ischain *this,
        bool on)
 {
-#if 0
+       struct fimc_is_core *core = platform_get_drvdata(this->pdev);
+
        if (on) {
-               printk(KERN_INFO "Set low poweroff mode\n");
-               __raw_writel(0x0, PMUREG_ISP_ARM_OPTION);
-               __raw_writel(0x1CF82000, PMUREG_ISP_LOW_POWER_OFF);
+               pr_info("Set low poweroff mode\n");
+               regmap_write(core->pmu_regmap, PMUREG_ISP_ARM_OPTION, 0x0);
+               regmap_write(core->pmu_regmap, PMUREG_ISP_LOW_POWER_OFF, 0x1CF82000);
                this->force_down = true;
        } else {
-               printk(KERN_INFO "Clear low poweroff mode\n");
-               __raw_writel(0xFFFFFFFF, PMUREG_ISP_ARM_OPTION);
-               __raw_writel(0x8, PMUREG_ISP_LOW_POWER_OFF);
+               pr_info("Clear low poweroff mode\n");
+               regmap_write(core->pmu_regmap, PMUREG_ISP_ARM_OPTION, 0xFFFFFFFF);
+               regmap_write(core->pmu_regmap, PMUREG_ISP_LOW_POWER_OFF, 0x8);
                this->force_down = false;
        }
-#endif
 }
 
 static void fimc_is_a5_power(struct device *dev, int power_flags)