Merge "disp: msm: sde: skip unnecessary cache register programming"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
d478974b21
@@ -2716,15 +2716,17 @@ 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, bool is_tp10)
|
||||||
{
|
{
|
||||||
struct sde_sc_cfg *sc_cfg = psde->catalog->sc_cfg;
|
struct sde_sc_cfg *sc_cfg = psde->catalog->sc_cfg;
|
||||||
|
bool prev_rd_en;
|
||||||
|
|
||||||
if (!psde->pipe_hw->ops.setup_sys_cache ||
|
if (!psde->pipe_hw->ops.setup_sys_cache ||
|
||||||
!(psde->perf_features & BIT(SDE_PERF_SSPP_SYS_CACHE)))
|
!(psde->perf_features & BIT(SDE_PERF_SSPP_SYS_CACHE)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
prev_rd_en = pstate->sc_cfg.rd_en;
|
||||||
|
|
||||||
SDE_DEBUG("features:0x%x rotation:0x%x\n",
|
SDE_DEBUG("features:0x%x rotation:0x%x\n",
|
||||||
psde->features, pstate->rotation);
|
psde->features, pstate->rotation);
|
||||||
|
|
||||||
|
|
||||||
pstate->sc_cfg.rd_en = false;
|
pstate->sc_cfg.rd_en = false;
|
||||||
pstate->sc_cfg.rd_scid = 0x0;
|
pstate->sc_cfg.rd_scid = 0x0;
|
||||||
pstate->sc_cfg.flags = SSPP_SYS_CACHE_EN_FLAG |
|
pstate->sc_cfg.flags = SSPP_SYS_CACHE_EN_FLAG |
|
||||||
@@ -2760,6 +2762,9 @@ static void _sde_plane_sspp_setup_sys_cache(struct sde_plane *psde,
|
|||||||
pstate->sc_cfg.type = SDE_SYS_CACHE_DISP;
|
pstate->sc_cfg.type = SDE_SYS_CACHE_DISP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!pstate->sc_cfg.rd_en && !prev_rd_en)
|
||||||
|
return;
|
||||||
|
|
||||||
SDE_EVT32(DRMID(&psde->base), pstate->sc_cfg.rd_scid,
|
SDE_EVT32(DRMID(&psde->base), pstate->sc_cfg.rd_scid,
|
||||||
pstate->sc_cfg.rd_en, pstate->sc_cfg.rd_noallocate);
|
pstate->sc_cfg.rd_en, pstate->sc_cfg.rd_noallocate);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user