msm: mdss: Fix gamma correction config for disable cases

Previously, gamma correction dirty bit is not properly set for
all the use cases, which is causing the disable ioctl for gamma
correction to fail. This change fixes the issue in disable ioctl.

Change-Id: I4901c05d305577857862f6b5316fa59ececcc842
Signed-off-by: Ping Li <pingli@codeaurora.org>
This commit is contained in:
Ping Li 2014-12-10 12:58:29 -08:00 committed by David Keitel
parent e2ba203fef
commit 6f945e5654

View file

@ -3205,17 +3205,11 @@ int mdss_mdp_argc_config(struct mdp_pgc_lut_data *config,
argc_addr = mdss_mdp_get_mixer_addr_off(dspp_num) + argc_addr = mdss_mdp_get_mixer_addr_off(dspp_num) +
MDSS_MDP_REG_LM_GC_LUT_BASE; MDSS_MDP_REG_LM_GC_LUT_BASE;
pgc_ptr = &mdss_pp_res->argc_disp_cfg[disp_num]; pgc_ptr = &mdss_pp_res->argc_disp_cfg[disp_num];
if (config->flags & MDP_PP_OPS_WRITE)
mdss_pp_res->pp_disp_flags[disp_num] |=
PP_FLAGS_DIRTY_ARGC;
break; break;
case MDSS_PP_DSPP_CFG: case MDSS_PP_DSPP_CFG:
argc_addr = mdss_mdp_get_dspp_addr_off(dspp_num) + argc_addr = mdss_mdp_get_dspp_addr_off(dspp_num) +
MDSS_MDP_REG_DSPP_GC_BASE; MDSS_MDP_REG_DSPP_GC_BASE;
pgc_ptr = &mdss_pp_res->pgc_disp_cfg[disp_num]; pgc_ptr = &mdss_pp_res->pgc_disp_cfg[disp_num];
if (config->flags & MDP_PP_OPS_WRITE)
mdss_pp_res->pp_disp_flags[disp_num] |=
PP_FLAGS_DIRTY_PGC;
break; break;
default: default:
goto argc_config_exit; goto argc_config_exit;
@ -3343,6 +3337,12 @@ clock_off:
&mdss_pp_res->gc_lut_g[disp_num][0]; &mdss_pp_res->gc_lut_g[disp_num][0];
pgc_ptr->b_data = pgc_ptr->b_data =
&mdss_pp_res->gc_lut_b[disp_num][0]; &mdss_pp_res->gc_lut_b[disp_num][0];
if (PP_LOCAT(config->block) == MDSS_PP_LM_CFG)
mdss_pp_res->pp_disp_flags[disp_num] |=
PP_FLAGS_DIRTY_ARGC;
else if (PP_LOCAT(config->block) == MDSS_PP_DSPP_CFG)
mdss_pp_res->pp_disp_flags[disp_num] |=
PP_FLAGS_DIRTY_PGC;
} }
argc_config_exit: argc_config_exit:
mutex_unlock(&mdss_pp_mutex); mutex_unlock(&mdss_pp_mutex);