summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-03-15 05:43:03 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-15 05:43:03 -0700
commit2a5717e16e706c32381730596abb49dc25f0c060 (patch)
tree1dfeb5522cbc4b8452ebe73222f1efb3240d5618 /drivers/video/fbdev/msm
parent2d31100a1f67d3987b1ec10d4c6c4895da229db6 (diff)
parent72f550f73dae8432da38101e575f8e73011ac2b1 (diff)
Merge "msm: mdss: Clear pp dirty flags based on program stage"
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pp.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c
index ee338ba88c4d..5b9798e2c24e 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c
@@ -453,6 +453,13 @@ static u32 igc_limited[IGC_LUT_ENTRIES] = {
#define PP_FLAGS_DIRTY_SHARP 0x200
#define PP_FLAGS_DIRTY_PA_DITHER 0x400
+#define PP_EARLY_PROGRAM_DIRTY_MASK (PP_FLAGS_DIRTY_PCC | \
+ PP_FLAGS_DIRTY_ENHIST | PP_FLAGS_DIRTY_HIST_COL)
+#define PP_DEFERRED_PROGRAM_DIRTY_MASK (PP_FLAGS_DIRTY_IGC | \
+ PP_FLAGS_DIRTY_PGC | PP_FLAGS_DIRTY_ARGC | \
+ PP_FLAGS_DIRTY_GAMUT | PP_FLAGS_DIRTY_PA | \
+ PP_FLAGS_DIRTY_DITHER | PP_FLAGS_DIRTY_PA_DITHER)
+
/* Leave space for future features */
#define PP_FLAGS_RESUME_COMMIT 0x10000000
@@ -2860,10 +2867,15 @@ int mdss_mdp_pp_setup_locked(struct mdss_mdp_ctl *ctl,
}
}
+ if (info->pp_program_mask & PP_NORMAL_PROGRAM_MASK) {
+ mdss_pp_res->pp_disp_flags[disp_num] &=
+ ~PP_EARLY_PROGRAM_DIRTY_MASK;
+ }
if (info->pp_program_mask & PP_DEFER_PROGRAM_MASK) {
/* clear dirty flag */
if (disp_num < MDSS_BLOCK_DISP_NUM) {
- mdss_pp_res->pp_disp_flags[disp_num] = 0;
+ mdss_pp_res->pp_disp_flags[disp_num] &=
+ ~PP_DEFERRED_PROGRAM_DIRTY_MASK;
if (disp_num < mdata->nad_cfgs)
mdata->ad_cfgs[disp_num].reg_sts = 0;
}