disp: msm: sde: remove rotator llcc

Rotator llcc is no longer supported. This change removes the
unused code.

Change-Id: Ia1d95e3f4386d25e0d2e06a87802b3f5b694998d
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
Esse commit está contido em:
Nilaan Gunabalachandran
2021-03-16 13:19:00 -04:00
commit b9cfa5b37f
4 arquivos alterados com 22 adições e 95 exclusões

Ver arquivo

@@ -327,7 +327,7 @@ static int _sde_core_perf_activate_llcc(struct sde_kms *kms,
struct drm_device *drm_dev;
struct device *dev;
struct platform_device *pdev;
u32 llcc_id[SDE_SYS_CACHE_MAX] = {LLCC_ROTATOR, LLCC_DISP};
u32 llcc_id[SDE_SYS_CACHE_MAX] = {LLCC_DISP};
int rc = 0;
if (!kms || !kms->dev || !kms->dev->dev) {
@@ -421,7 +421,7 @@ void sde_core_perf_crtc_update_llcc(struct drm_crtc *crtc)
struct sde_kms *kms;
struct sde_crtc *sde_crtc;
struct sde_core_perf_params *old, *new;
int update_llcc[SDE_SYS_CACHE_MAX] = {0, 0};
int update_llcc[SDE_SYS_CACHE_MAX] = {0};
int i;
if (!crtc) {

Ver arquivo

@@ -1450,7 +1450,6 @@ static int _sde_sspp_setup_vigs(struct device_node *np,
struct sde_dt_props *props[SSPP_SUBBLK_COUNT_MAX] = {NULL, NULL};
struct sde_dt_props *props_tmp = NULL;
struct device_node *snp = NULL;
struct sde_sc_cfg *sc_cfg = sde_cfg->sc_cfg;
int vig_count = 0, vcm_count = 0;
const char *type;
@@ -1616,14 +1615,6 @@ static int _sde_sspp_setup_vigs(struct device_node *np,
MAX_DOWNSCALE_RATIO_INROT_NRT_DEFAULT;
}
if (sc_cfg[SDE_SYS_CACHE_ROT].has_sys_cache) {
set_bit(SDE_PERF_SSPP_SYS_CACHE, &sspp->perf_features);
sblk->llcc_scid =
sc_cfg[SDE_SYS_CACHE_ROT].llcc_scid;
sblk->llcc_slice_size =
sc_cfg[SDE_SYS_CACHE_ROT].llcc_slice_size;
}
if (sde_cfg->inline_disable_const_clr)
set_bit(SDE_SSPP_INLINE_CONST_CLR, &sspp->features);
@@ -3477,11 +3468,8 @@ static int sde_cache_parse_dt(struct device_node *np,
struct sde_mdss_cfg *sde_cfg)
{
struct llcc_slice_desc *slice;
struct platform_device *pdev;
struct of_phandle_args phargs;
struct sde_sc_cfg *sc_cfg = sde_cfg->sc_cfg;
struct device_node *llcc_node;
int rc = 0;
if (!sde_cfg) {
SDE_ERROR("invalid argument\n");
@@ -3499,67 +3487,19 @@ static int sde_cache_parse_dt(struct device_node *np,
slice = llcc_slice_getd(LLCC_DISP);
if (IS_ERR_OR_NULL(slice)) {
SDE_ERROR("failed to get system cache %ld\n",
PTR_ERR(slice));
} else {
sc_cfg[SDE_SYS_CACHE_DISP].has_sys_cache = true;
sc_cfg[SDE_SYS_CACHE_DISP].llcc_scid = llcc_get_slice_id(slice);
sc_cfg[SDE_SYS_CACHE_DISP].llcc_slice_size =
llcc_get_slice_size(slice);
SDE_DEBUG("img cache scid:%d slice_size:%zu kb\n",
sc_cfg[SDE_SYS_CACHE_DISP].llcc_scid,
sc_cfg[SDE_SYS_CACHE_DISP].llcc_slice_size);
llcc_slice_putd(slice);
SDE_ERROR("failed to get system cache %ld\n", PTR_ERR(slice));
return -EINVAL;
}
/* Read inline rot node */
rc = of_parse_phandle_with_args(np,
"qcom,sde-inline-rotator", "#list-cells", 0, &phargs);
if (rc) {
/*
* This is not a fatal error, system cache can be disabled
* in device tree
*/
SDE_DEBUG("sys cache will be disabled rc:%d\n", rc);
rc = 0;
goto end;
}
if (!phargs.np || !phargs.args_count) {
SDE_ERROR("wrong phandle args %d %d\n",
!phargs.np, !phargs.args_count);
rc = -EINVAL;
goto end;
}
pdev = of_find_device_by_node(phargs.np);
if (!pdev) {
SDE_ERROR("invalid sde rotator node\n");
goto end;
}
slice = llcc_slice_getd(LLCC_ROTATOR);
if (IS_ERR_OR_NULL(slice)) {
SDE_ERROR("failed to get rotator slice!\n");
rc = -EINVAL;
goto cleanup;
}
sc_cfg[SDE_SYS_CACHE_ROT].llcc_scid = llcc_get_slice_id(slice);
sc_cfg[SDE_SYS_CACHE_ROT].llcc_slice_size =
llcc_get_slice_size(slice);
sc_cfg[SDE_SYS_CACHE_DISP].has_sys_cache = true;
sc_cfg[SDE_SYS_CACHE_DISP].llcc_scid = llcc_get_slice_id(slice);
sc_cfg[SDE_SYS_CACHE_DISP].llcc_slice_size = llcc_get_slice_size(slice);
SDE_DEBUG("img cache scid:%d slice_size:%zu kb\n",
sc_cfg[SDE_SYS_CACHE_DISP].llcc_scid,
sc_cfg[SDE_SYS_CACHE_DISP].llcc_slice_size);
llcc_slice_putd(slice);
sc_cfg[SDE_SYS_CACHE_ROT].has_sys_cache = true;
SDE_DEBUG("rotator llcc scid:%d slice_size:%zukb\n",
sc_cfg[SDE_SYS_CACHE_ROT].llcc_scid,
sc_cfg[SDE_SYS_CACHE_ROT].llcc_slice_size);
cleanup:
of_node_put(phargs.np);
end:
return rc;
return 0;
}
static int _sde_vbif_populate_ot_parsing(struct sde_vbif_cfg *vbif,

Ver arquivo

@@ -165,14 +165,14 @@ enum {
/**
* sde_sys_cache_type: Types of system cache supported
* SDE_SYS_CACHE_ROT: Rotator system cache
* SDE_SYS_CACHE_DISP: Static img system cache
* SDE_SYS_CACHE_MAX: Maximum number of sys cache users
* SDE_SYS_CACHE_NONE: Sys cache not used
*/
enum sde_sys_cache_type {
SDE_SYS_CACHE_ROT,
SDE_SYS_CACHE_DISP,
SDE_SYS_CACHE_MAX,
SDE_SYS_CACHE_NONE
SDE_SYS_CACHE_NONE = SDE_SYS_CACHE_MAX
};
/**

Ver arquivo

@@ -2761,19 +2761,18 @@ void sde_plane_set_error(struct drm_plane *plane, bool error)
}
static void _sde_plane_sspp_setup_sys_cache(struct sde_plane *psde,
struct sde_plane_state *pstate, bool is_tp10)
struct sde_plane_state *pstate)
{
struct sde_sc_cfg *sc_cfg = psde->catalog->sc_cfg;
bool prev_rd_en;
if (!psde->pipe_hw->ops.setup_sys_cache ||
!(psde->perf_features & BIT(SDE_PERF_SSPP_SYS_CACHE)))
/* Only display system cache is currently supported */
if (!sc_cfg[SDE_SYS_CACHE_DISP].has_sys_cache)
return;
prev_rd_en = pstate->sc_cfg.rd_en;
SDE_DEBUG("features:0x%x rotation:0x%x\n",
psde->features, pstate->rotation);
SDE_DEBUG_PLANE(psde, "features:0x%x\n", psde->features);
pstate->sc_cfg.rd_en = false;
pstate->sc_cfg.rd_scid = 0x0;
@@ -2781,17 +2780,7 @@ static void _sde_plane_sspp_setup_sys_cache(struct sde_plane *psde,
SSPP_SYS_CACHE_SCID;
pstate->sc_cfg.type = SDE_SYS_CACHE_NONE;
if (pstate->rotation & DRM_MODE_ROTATE_90) {
if (is_tp10 && sc_cfg[SDE_SYS_CACHE_ROT].has_sys_cache) {
pstate->sc_cfg.rd_en = true;
pstate->sc_cfg.rd_scid =
sc_cfg[SDE_SYS_CACHE_ROT].llcc_scid;
pstate->sc_cfg.flags = SSPP_SYS_CACHE_EN_FLAG |
SSPP_SYS_CACHE_SCID;
pstate->sc_cfg.type = SDE_SYS_CACHE_ROT;
}
} else if (pstate->static_cache_state == CACHE_STATE_FRAME_WRITE &&
sc_cfg[SDE_SYS_CACHE_DISP].has_sys_cache) {
if (pstate->static_cache_state == CACHE_STATE_FRAME_WRITE) {
pstate->sc_cfg.rd_en = true;
pstate->sc_cfg.rd_scid =
sc_cfg[SDE_SYS_CACHE_DISP].llcc_scid;
@@ -2799,8 +2788,7 @@ static void _sde_plane_sspp_setup_sys_cache(struct sde_plane *psde,
pstate->sc_cfg.flags = SSPP_SYS_CACHE_EN_FLAG |
SSPP_SYS_CACHE_SCID | SSPP_SYS_CACHE_NO_ALLOC;
pstate->sc_cfg.type = SDE_SYS_CACHE_DISP;
} else if (pstate->static_cache_state == CACHE_STATE_FRAME_READ &&
sc_cfg[SDE_SYS_CACHE_DISP].has_sys_cache) {
} else if (pstate->static_cache_state == CACHE_STATE_FRAME_READ) {
pstate->sc_cfg.rd_en = true;
pstate->sc_cfg.rd_scid =
sc_cfg[SDE_SYS_CACHE_DISP].llcc_scid;
@@ -2837,7 +2825,7 @@ void sde_plane_static_img_control(struct drm_plane *plane,
pstate->static_cache_state = state;
if (state == CACHE_STATE_FRAME_WRITE || state == CACHE_STATE_FRAME_READ)
_sde_plane_sspp_setup_sys_cache(psde, pstate, false);
_sde_plane_sspp_setup_sys_cache(psde, pstate);
}
static void _sde_plane_map_prop_to_dirty_bits(void)
@@ -3121,8 +3109,7 @@ static void _sde_plane_update_format_and_rects(struct sde_plane *psde,
pstate->multirect_index);
}
_sde_plane_sspp_setup_sys_cache(psde, pstate,
sde_format_is_tp10_ubwc(fmt));
_sde_plane_sspp_setup_sys_cache(psde, pstate);
/* update csc */
if (SDE_FORMAT_IS_YUV(fmt))