|
@@ -186,7 +186,7 @@ enum sde_prop {
|
|
UBWC_VERSION,
|
|
UBWC_VERSION,
|
|
UBWC_STATIC,
|
|
UBWC_STATIC,
|
|
UBWC_SWIZZLE,
|
|
UBWC_SWIZZLE,
|
|
- QSEED_TYPE,
|
|
|
|
|
|
+ QSEED_SW_LIB_REV,
|
|
CSC_TYPE,
|
|
CSC_TYPE,
|
|
PANIC_PER_PIPE,
|
|
PANIC_PER_PIPE,
|
|
SRC_SPLIT,
|
|
SRC_SPLIT,
|
|
@@ -550,7 +550,8 @@ static struct sde_prop_type sde_prop[] = {
|
|
{UBWC_VERSION, "qcom,sde-ubwc-version", false, PROP_TYPE_U32},
|
|
{UBWC_VERSION, "qcom,sde-ubwc-version", false, PROP_TYPE_U32},
|
|
{UBWC_STATIC, "qcom,sde-ubwc-static", false, PROP_TYPE_U32},
|
|
{UBWC_STATIC, "qcom,sde-ubwc-static", false, PROP_TYPE_U32},
|
|
{UBWC_SWIZZLE, "qcom,sde-ubwc-swizzle", 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},
|
|
{CSC_TYPE, "qcom,sde-csc-type", false, PROP_TYPE_STRING},
|
|
{PANIC_PER_PIPE, "qcom,sde-panic-per-pipe", false, PROP_TYPE_BOOL},
|
|
{PANIC_PER_PIPE, "qcom,sde-panic-per-pipe", false, PROP_TYPE_BOOL},
|
|
{SRC_SPLIT, "qcom,sde-has-src-split", 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->format_list = sde_cfg->vig_formats;
|
|
sblk->virt_format_list = sde_cfg->virt_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,
|
|
sblk->scaler_blk.base = PROP_VALUE_ACCESS(props->values,
|
|
VIG_QSEED_OFF, 0);
|
|
VIG_QSEED_OFF, 0);
|
|
sblk->scaler_blk.len = PROP_VALUE_ACCESS(props->values,
|
|
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);
|
|
set_bit(SDE_PERF_SSPP_QOS_8LVL, &sspp->perf_features);
|
|
rgb_count++;
|
|
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);
|
|
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,
|
|
sblk->scaler_blk.base = PROP_VALUE_ACCESS(props->values,
|
|
RGB_SCALER_OFF, 0);
|
|
RGB_SCALER_OFF, 0);
|
|
sblk->scaler_blk.len = PROP_VALUE_ACCESS(props->values,
|
|
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])
|
|
if (!prop_exists[DS_LEN])
|
|
ds->len = DEFAULT_SDE_HW_BLOCK_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);
|
|
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);
|
|
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)
|
|
if (rc)
|
|
goto end;
|
|
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) {
|
|
if (rc) {
|
|
SDE_DEBUG("invalid %s node in device tree: %d\n",
|
|
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;
|
|
rc = 0;
|
|
} else if (!strcmp(type, "qseedv3")) {
|
|
} 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")) {
|
|
} 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")) {
|
|
} else if (!strcmp(type, "qseedv2")) {
|
|
- cfg->qseed_type = SDE_SSPP_SCALER_QSEED2;
|
|
|
|
|
|
+ cfg->qseed_sw_lib_rev = SDE_SSPP_SCALER_QSEED2;
|
|
} else {
|
|
} else {
|
|
SDE_DEBUG("Unknown type %s for property %s\n", type,
|
|
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);
|
|
rc = of_property_read_string(np, sde_prop[CSC_TYPE].prop_name, &type);
|