From 288b4e896299b9aaa619e7b526217b946494e4ea Mon Sep 17 00:00:00 2001 From: Jayaprakash Date: Wed, 29 Jan 2020 11:35:19 +0530 Subject: [PATCH] disp: msm: sde: determine rotation capabilities from version Determine inline rotation capabilities and parameter values from the inline rotator revision. This reduces the number of capabilities required to be added for each new target. Change-Id: I3ae02938d51be5a5419b50303c1f244be12b8c47 Signed-off-by: Steve Cohen Signed-off-by: Jayaprakash --- msm/sde/sde_hw_catalog.c | 34 ++++++++++++++-------------------- msm/sde/sde_hw_catalog.h | 8 -------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/msm/sde/sde_hw_catalog.c b/msm/sde/sde_hw_catalog.c index 3979fee6e033..afc8822b1fd6 100644 --- a/msm/sde/sde_hw_catalog.c +++ b/msm/sde/sde_hw_catalog.c @@ -1190,16 +1190,9 @@ static void _sde_sspp_setup_vig(struct sde_mdss_cfg *sde_cfg, sblk->format_list = sde_cfg->vig_formats; sblk->virt_format_list = sde_cfg->virt_vig_formats; - if (IS_SDE_INLINE_ROT_REV_100(sde_cfg->true_inline_rot_rev) || - IS_SDE_INLINE_ROT_REV_200(sde_cfg->true_inline_rot_rev)) { + if (sde_cfg->true_inline_rot_rev > 0) { set_bit(SDE_SSPP_TRUE_INLINE_ROT, &sspp->features); sblk->in_rot_format_list = sde_cfg->inline_rot_formats; - sblk->in_rot_maxdwnscale_rt_num = - sde_cfg->true_inline_dwnscale_rt_num; - sblk->in_rot_maxdwnscale_rt_denom = - sde_cfg->true_inline_dwnscale_rt_denom; - sblk->in_rot_maxdwnscale_nrt = - sde_cfg->true_inline_dwnscale_nrt; sblk->in_rot_maxheight = sde_cfg->inline_linewidth ? sde_cfg->inline_linewidth : MAX_PRE_ROT_HEIGHT_INLINE_ROT_DEFAULT; @@ -1207,10 +1200,23 @@ static void _sde_sspp_setup_vig(struct sde_mdss_cfg *sde_cfg, if (IS_SDE_INLINE_ROT_REV_200(sde_cfg->true_inline_rot_rev)) { set_bit(SDE_SSPP_PREDOWNSCALE, &sspp->features); + sblk->in_rot_maxdwnscale_rt_num = + MAX_DOWNSCALE_RATIO_INROT_PD_RT_NUMERATOR; + sblk->in_rot_maxdwnscale_rt_denom = + MAX_DOWNSCALE_RATIO_INROT_PD_RT_DENOMINATOR; + sblk->in_rot_maxdwnscale_nrt = + MAX_DOWNSCALE_RATIO_INROT_NRT_DEFAULT; sblk->in_rot_minpredwnscale_num = MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_NUMERATOR; sblk->in_rot_minpredwnscale_denom = MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_DENOMINATOR; + } else if (IS_SDE_INLINE_ROT_REV_100(sde_cfg->true_inline_rot_rev)) { + sblk->in_rot_maxdwnscale_rt_num = + MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_NUMERATOR; + sblk->in_rot_maxdwnscale_rt_denom = + MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_DENOMINATOR; + sblk->in_rot_maxdwnscale_nrt = + MAX_DOWNSCALE_RATIO_INROT_NRT_DEFAULT; } if (sde_cfg->sc_cfg.has_sys_cache) { @@ -4247,12 +4253,6 @@ static int _sde_hardware_pre_caps(struct sde_mdss_cfg *sde_cfg, uint32_t hw_rev) set_bit(SDE_MDP_DHDR_MEMPOOL, &sde_cfg->mdp[0].features); sde_cfg->has_vig_p010 = true; sde_cfg->true_inline_rot_rev = SDE_INLINE_ROT_VERSION_1_0_0; - sde_cfg->true_inline_dwnscale_rt_num = - MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_NUMERATOR; - sde_cfg->true_inline_dwnscale_rt_denom = - MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_DENOMINATOR; - sde_cfg->true_inline_dwnscale_nrt = - MAX_DOWNSCALE_RATIO_INROT_NRT_DEFAULT; sde_cfg->uidle_cfg.uidle_rev = SDE_UIDLE_VERSION_1_0_0; } else if (IS_SAIPAN_TARGET(hw_rev)) { sde_cfg->has_cwb_support = true; @@ -4276,12 +4276,6 @@ static int _sde_hardware_pre_caps(struct sde_mdss_cfg *sde_cfg, uint32_t hw_rev) set_bit(SDE_MDP_DHDR_MEMPOOL, &sde_cfg->mdp[0].features); sde_cfg->has_vig_p010 = true; sde_cfg->true_inline_rot_rev = SDE_INLINE_ROT_VERSION_1_0_0; - sde_cfg->true_inline_dwnscale_rt_num = - MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_NUMERATOR; - sde_cfg->true_inline_dwnscale_rt_denom = - MAX_DOWNSCALE_RATIO_INROT_NOPD_RT_DENOMINATOR; - sde_cfg->true_inline_dwnscale_nrt = - MAX_DOWNSCALE_RATIO_INROT_NRT_DEFAULT; sde_cfg->update_tcsr_disp_glitch = true; } else if (IS_SDMTRINKET_TARGET(hw_rev)) { sde_cfg->has_cwb_support = true; diff --git a/msm/sde/sde_hw_catalog.h b/msm/sde/sde_hw_catalog.h index 9350b19305ee..d59133e45c4d 100644 --- a/msm/sde/sde_hw_catalog.h +++ b/msm/sde/sde_hw_catalog.h @@ -1268,11 +1268,6 @@ struct sde_limit_cfg { * @vbif_qos_nlvl number of vbif QoS priority level * @ts_prefill_rev prefill traffic shaper feature revision * @true_inline_rot_rev inline rotator feature revision - * @true_inline_dwnscale_rt_num true inline rotator downscale ratio for rt - * - numerator - * @true_inline_dwnscale_rt_denom true inline rot downscale ratio for rt - * - denominator - * @true_inline_dwnscale_nrt true inline rotator downscale ratio for nrt * @macrotile_mode UBWC parameter for macro tile channel distribution * @pipe_order_type indicate if it is required to specify pipe order * @delay_prg_fetch_start indicates if throttling the fetch start is required @@ -1332,9 +1327,6 @@ struct sde_mdss_cfg { u32 vbif_qos_nlvl; u32 ts_prefill_rev; u32 true_inline_rot_rev; - u32 true_inline_dwnscale_rt_num; - u32 true_inline_dwnscale_rt_denom; - u32 true_inline_dwnscale_nrt; u32 macrotile_mode; u32 pipe_order_type; bool delay_prg_fetch_start;