[NEUS7920-164] fbdev: dpu20: udpated dqe for supporting hibernation
authorChiHun Won <chihun.won@samsung.com>
Mon, 29 Apr 2019 06:53:14 +0000 (15:53 +0900)
committerKim Gunho <gunho.kim@samsung.com>
Fri, 28 Jun 2019 14:44:22 +0000 (23:44 +0900)
rebased

Change-Id: Ied0a57d1fcfbe8508c0f1565dc13bdf421caf8ff
Signed-off-by: ChiHun Won <chihun.won@samsung.com>
drivers/video/fbdev/exynos/dpu20/decon_dsi.c
drivers/video/fbdev/exynos/dpu20/win_update.c

index b3239bdb0eefee298af5c18581cac4f550c08798..30216c2a60803b6e261573492bb3f19419b3d70e 100644 (file)
@@ -36,6 +36,9 @@
 #ifdef CONFIG_EXYNOS_WD_DVFS
 struct task_struct *devfreq_change_task;
 #endif
+#if defined(CONFIG_EXYNOS_DECON_DQE)
+#include "dqe.h"
+#endif
 
 /* DECON irq handler for DSI interface */
 static irqreturn_t decon_irq_handler(int irq, void *dev_data)
@@ -972,7 +975,10 @@ int decon_exit_hiber(struct decon_device *decon)
 
        decon_to_init_param(decon, &p);
        decon_reg_init(decon->id, decon->dt.out_idx[0], &p);
-
+#if defined(CONFIG_EXYNOS_DECON_DQE)
+       dqe_restore_context();
+       dqe_reg_start(decon->id, decon->lcd_info);
+#endif
        /*
         * After hibernation exit, If panel is partial size, DECON and DSIM
         * are also set as same partial size.
@@ -1036,7 +1042,10 @@ int decon_enter_hiber(struct decon_device *decon)
        decon_hiber_trig_reset(decon);
 
        kthread_flush_worker(&decon->up.worker);
-
+#if defined(CONFIG_EXYNOS_DECON_DQE)
+       dqe_save_context();
+       dqe_reg_stop(decon->id);
+#endif
        decon_to_psr_info(decon, &psr);
        decon_reg_set_int(decon->id, &psr, 0);
 
index 4e86ed493d8c24790668af76acd177de386597c3..172a7c6f249e165c47d9841a9047e2a4ed89025d 100644 (file)
@@ -14,6 +14,9 @@
 #include "decon.h"
 #include "dpp.h"
 #include "dsim.h"
+#if defined(CONFIG_EXYNOS_DECON_DQE)
+#include "dqe.h"
+#endif
 
 static void win_update_adjust_region(struct decon_device *decon,
                struct decon_win_config *win_config,
@@ -521,6 +524,9 @@ static void win_update_set_partial_size(struct decon_device *decon,
        decon_reg_set_partial_update(decon->id, decon->dt.dsi_mode,
                        decon->lcd_info, in_slice,
                        lcd_info.xres, lcd_info.yres);
+#if defined(CONFIG_EXYNOS_DECON_DQE)
+       dqe_reg_start(decon->id, &lcd_info);
+#endif
        DPU_DEBUG_WIN("SET: vfp %d vbp %d vsa %d hfp %d hbp %d hsa %d w %d h %d\n",
                        lcd_info.vfp, lcd_info.vbp, lcd_info.vsa,
                        lcd_info.hfp, lcd_info.hbp, lcd_info.hsa,