From: ChiHun Won Date: Mon, 29 Apr 2019 06:53:14 +0000 (+0900) Subject: [NEUS7920-164] fbdev: dpu20: udpated dqe for supporting hibernation X-Git-Tag: MMI-QSAS30.62-33-3~953 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6dcd4067e6d3cfa5fa42ae1d3930aba585c77788;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git [NEUS7920-164] fbdev: dpu20: udpated dqe for supporting hibernation rebased Change-Id: Ied0a57d1fcfbe8508c0f1565dc13bdf421caf8ff Signed-off-by: ChiHun Won --- diff --git a/drivers/video/fbdev/exynos/dpu20/decon_dsi.c b/drivers/video/fbdev/exynos/dpu20/decon_dsi.c index b3239bdb0eef..30216c2a6080 100644 --- a/drivers/video/fbdev/exynos/dpu20/decon_dsi.c +++ b/drivers/video/fbdev/exynos/dpu20/decon_dsi.c @@ -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); diff --git a/drivers/video/fbdev/exynos/dpu20/win_update.c b/drivers/video/fbdev/exynos/dpu20/win_update.c index 4e86ed493d8c..172a7c6f249e 100644 --- a/drivers/video/fbdev/exynos/dpu20/win_update.c +++ b/drivers/video/fbdev/exynos/dpu20/win_update.c @@ -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,