From 2a3fe5e4c5036a6f986b8f195f451c32b44d770c Mon Sep 17 00:00:00 2001 From: Nilaan Gunabalachandran Date: Thu, 3 Sep 2020 16:46:40 -0400 Subject: [PATCH] disp: msm: sde: skip unnecessary cache register programming Plane update will call system cache update, and by default, will clear any cache programming. This clear is only necessary after returning from a cached state. This change will reduce unnecessary programming and event logs if the sys cache was previously disabled and remains disabled. Change-Id: I7f560ff24990a8c7ad785e560873193b7bf3a491 Signed-off-by: Nilaan Gunabalachandran --- msm/sde/sde_plane.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/msm/sde/sde_plane.c b/msm/sde/sde_plane.c index 0c667d00f4..d2a0ad44a3 100644 --- a/msm/sde/sde_plane.c +++ b/msm/sde/sde_plane.c @@ -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_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))) return; + prev_rd_en = pstate->sc_cfg.rd_en; + SDE_DEBUG("features:0x%x rotation:0x%x\n", psde->features, pstate->rotation); - pstate->sc_cfg.rd_en = false; pstate->sc_cfg.rd_scid = 0x0; 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; } + if (!pstate->sc_cfg.rd_en && !prev_rd_en) + return; + SDE_EVT32(DRMID(&psde->base), pstate->sc_cfg.rd_scid, pstate->sc_cfg.rd_en, pstate->sc_cfg.rd_noallocate);