diff --git a/msm/sde/sde_crtc.c b/msm/sde/sde_crtc.c index b4ff551ea8..a9db51e25e 100644 --- a/msm/sde/sde_crtc.c +++ b/msm/sde/sde_crtc.c @@ -5124,11 +5124,11 @@ static void sde_crtc_setup_capabilities_blob(struct sde_kms_info *info, sde_kms_info_add_keyint(info, "max_blendstages", catalog->max_mixer_blendstages); - if (catalog->qseed_type == SDE_SSPP_SCALER_QSEED2) + if (catalog->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED2) sde_kms_info_add_keystr(info, "qseed_type", "qseed2"); - if (catalog->qseed_type == SDE_SSPP_SCALER_QSEED3) + if (catalog->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3) sde_kms_info_add_keystr(info, "qseed_type", "qseed3"); - if (catalog->qseed_type == SDE_SSPP_SCALER_QSEED3LITE) + if (catalog->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3LITE) sde_kms_info_add_keystr(info, "qseed_type", "qseed3lite"); if (catalog->ubwc_version) { diff --git a/msm/sde/sde_hw_catalog.c b/msm/sde/sde_hw_catalog.c index b6c39e54e3..ed02c1e124 100644 --- a/msm/sde/sde_hw_catalog.c +++ b/msm/sde/sde_hw_catalog.c @@ -186,7 +186,7 @@ enum sde_prop { UBWC_VERSION, UBWC_STATIC, UBWC_SWIZZLE, - QSEED_TYPE, + QSEED_SW_LIB_REV, CSC_TYPE, PANIC_PER_PIPE, SRC_SPLIT, @@ -550,7 +550,8 @@ static struct sde_prop_type sde_prop[] = { {UBWC_VERSION, "qcom,sde-ubwc-version", false, PROP_TYPE_U32}, {UBWC_STATIC, "qcom,sde-ubwc-static", false, PROP_TYPE_U32}, {UBWC_SWIZZLE, "qcom,sde-ubwc-swizzle", false, PROP_TYPE_U32}, - {QSEED_TYPE, "qcom,sde-qseed-type", false, PROP_TYPE_STRING}, + {QSEED_SW_LIB_REV, "qcom,sde-qseed-sw-lib-rev", false, + PROP_TYPE_STRING}, {CSC_TYPE, "qcom,sde-csc-type", false, PROP_TYPE_STRING}, {PANIC_PER_PIPE, "qcom,sde-panic-per-pipe", false, PROP_TYPE_BOOL}, {SRC_SPLIT, "qcom,sde-has-src-split", false, PROP_TYPE_BOOL}, @@ -1438,11 +1439,11 @@ static int _sde_sspp_setup_vigs(struct device_node *np, sblk->format_list = sde_cfg->vig_formats; sblk->virt_format_list = sde_cfg->virt_vig_formats; - if ((sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED2) || - (sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED3) || - (sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED3LITE)) { - set_bit(sde_cfg->qseed_type, &sspp->features); - sblk->scaler_blk.id = sde_cfg->qseed_type; + if ((sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED2) || + (sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3) || + (sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3LITE)) { + set_bit(sde_cfg->qseed_sw_lib_rev, &sspp->features); + sblk->scaler_blk.id = sde_cfg->qseed_sw_lib_rev; sblk->scaler_blk.base = PROP_VALUE_ACCESS(props->values, VIG_QSEED_OFF, 0); sblk->scaler_blk.len = PROP_VALUE_ACCESS(props->values, @@ -1554,10 +1555,10 @@ static int _sde_sspp_setup_rgbs(struct device_node *np, set_bit(SDE_PERF_SSPP_QOS_8LVL, &sspp->perf_features); rgb_count++; - if ((sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED2) || - (sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED3)) { + if ((sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED2) || + (sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3)) { set_bit(SDE_SSPP_SCALER_RGB, &sspp->features); - sblk->scaler_blk.id = sde_cfg->qseed_type; + sblk->scaler_blk.id = sde_cfg->qseed_sw_lib_rev; sblk->scaler_blk.base = PROP_VALUE_ACCESS(props->values, RGB_SCALER_OFF, 0); sblk->scaler_blk.len = PROP_VALUE_ACCESS(props->values, @@ -2882,9 +2883,10 @@ static int sde_ds_parse_dt(struct device_node *np, if (!prop_exists[DS_LEN]) ds->len = DEFAULT_SDE_HW_BLOCK_LEN; - if (sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED3) + if (sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3) set_bit(SDE_SSPP_SCALER_QSEED3, &ds->features); - else if (sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED3LITE) + else if (sde_cfg->qseed_sw_lib_rev == + SDE_SSPP_SCALER_QSEED3LITE) set_bit(SDE_SSPP_SCALER_QSEED3LITE, &ds->features); } @@ -3787,20 +3789,21 @@ static int sde_top_parse_dt(struct device_node *np, struct sde_mdss_cfg *cfg) if (rc) goto end; - rc = of_property_read_string(np, sde_prop[QSEED_TYPE].prop_name, &type); + rc = of_property_read_string(np, sde_prop[QSEED_SW_LIB_REV].prop_name, + &type); if (rc) { SDE_DEBUG("invalid %s node in device tree: %d\n", - sde_prop[QSEED_TYPE].prop_name, rc); + sde_prop[QSEED_SW_LIB_REV].prop_name, rc); rc = 0; } else if (!strcmp(type, "qseedv3")) { - cfg->qseed_type = SDE_SSPP_SCALER_QSEED3; + cfg->qseed_sw_lib_rev = SDE_SSPP_SCALER_QSEED3; } else if (!strcmp(type, "qseedv3lite")) { - cfg->qseed_type = SDE_SSPP_SCALER_QSEED3LITE; + cfg->qseed_sw_lib_rev = SDE_SSPP_SCALER_QSEED3LITE; } else if (!strcmp(type, "qseedv2")) { - cfg->qseed_type = SDE_SSPP_SCALER_QSEED2; + cfg->qseed_sw_lib_rev = SDE_SSPP_SCALER_QSEED2; } else { SDE_DEBUG("Unknown type %s for property %s\n", type, - sde_prop[QSEED_TYPE].prop_name); + sde_prop[QSEED_SW_LIB_REV].prop_name); } rc = of_property_read_string(np, sde_prop[CSC_TYPE].prop_name, &type); diff --git a/msm/sde/sde_hw_catalog.h b/msm/sde/sde_hw_catalog.h index b3227703db..53327382e4 100644 --- a/msm/sde/sde_hw_catalog.h +++ b/msm/sde/sde_hw_catalog.h @@ -674,7 +674,7 @@ enum sde_qos_lut_usage { * @smart_dma_priority: hw priority of rect1 of multirect pipe * @max_per_pipe_bw: maximum allowable bandwidth of this pipe in kBps * @max_per_pipe_bw_high: maximum allowable bandwidth of this pipe in kBps - * in case of no VFE + * in case of no VFE * @src_blk: * @scaler_blk: * @csc_blk: @@ -1374,7 +1374,6 @@ struct sde_perf_cfg { * @min_display_width minimum display width support. * @min_display_height minimum display height support. - * @qseed_type qseed2 or qseed3 support. * @csc_type csc or csc_10bit support. * @smart_dma_rev Supported version of SmartDMA feature. * @ctl_rev supported version of control path. @@ -1409,6 +1408,7 @@ struct sde_perf_cfg { * @dither_luma_mode_support Enables dither luma mode * @has_base_layer Supports staging layer as base layer * @demura_supported Demura pipe support flag(~0x00 - Not supported) + * @qseed_sw_lib_rev qseed sw library type supporting the qseed hw * @sc_cfg: system cache configuration * @uidle_cfg Settings for uidle feature * @sui_misr_supported indicate if secure-ui-misr is supported @@ -1446,7 +1446,6 @@ struct sde_mdss_cfg { u32 min_display_width; u32 min_display_height; - u32 qseed_type; u32 csc_type; u32 smart_dma_rev; u32 ctl_rev; @@ -1476,6 +1475,7 @@ struct sde_mdss_cfg { bool has_base_layer; bool has_demura; u32 demura_supported[SSPP_MAX][2]; + u32 qseed_sw_lib_rev; struct sde_sc_cfg sc_cfg[SDE_SYS_CACHE_MAX]; diff --git a/msm/sde/sde_hw_util.h b/msm/sde/sde_hw_util.h index 6e4ae06396..56f60faa0c 100644 --- a/msm/sde/sde_hw_util.h +++ b/msm/sde/sde_hw_util.h @@ -220,7 +220,7 @@ uint32_t sde_get_linetime(struct drm_display_mode *mode, static inline bool is_qseed3_rev_qseed3lite(struct sde_mdss_cfg *sde_cfg) { - return ((sde_cfg->qseed_type == SDE_SSPP_SCALER_QSEED3LITE) ? + return ((sde_cfg->qseed_sw_lib_rev == SDE_SSPP_SCALER_QSEED3LITE) ? true : false); } #endif /* _SDE_HW_UTIL_H */