disp: msm: sde: update misr check to configure misr in secure UI

This change updates misr checks so that misr can be
configured during secure display session. In the current
code, misr_reconfigure flag is set only when accessing
through debugfs node.

Change-Id: Ic3a8316a4881551da3f0f340f6ef5ae3fbe4913f
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
This commit is contained in:
Yashwanth
2020-08-25 13:39:05 +05:30
parent 6f85b051af
commit 45d0998b96
2 changed files with 6 additions and 5 deletions

View File

@@ -5711,9 +5711,6 @@ void sde_crtc_misr_setup(struct drm_crtc *crtc, bool enable, u32 frame_count)
} }
sde_crtc = to_sde_crtc(crtc); sde_crtc = to_sde_crtc(crtc);
if (!sde_crtc->misr_reconfigure)
return;
sde_crtc->misr_enable_sui = enable; sde_crtc->misr_enable_sui = enable;
sde_crtc->misr_frame_count = frame_count; sde_crtc->misr_frame_count = frame_count;
for (i = 0; i < sde_crtc->num_mixers; ++i) { for (i = 0; i < sde_crtc->num_mixers; ++i) {
@@ -5723,7 +5720,6 @@ void sde_crtc_misr_setup(struct drm_crtc *crtc, bool enable, u32 frame_count)
m->hw_lm->ops.setup_misr(m->hw_lm, enable, frame_count); m->hw_lm->ops.setup_misr(m->hw_lm, enable, frame_count);
} }
sde_crtc->misr_reconfigure = false;
} }
void sde_crtc_get_misr_info(struct drm_crtc *crtc, void sde_crtc_get_misr_info(struct drm_crtc *crtc,

View File

@@ -3413,12 +3413,14 @@ static void _sde_encoder_kickoff_phys(struct sde_encoder_virt *sde_enc)
struct sde_kms *sde_kms = NULL; struct sde_kms *sde_kms = NULL;
struct sde_crtc_misr_info crtc_misr_info = {false, 0}; struct sde_crtc_misr_info crtc_misr_info = {false, 0};
bool is_regdma_blocking = false, is_vid_mode = false; bool is_regdma_blocking = false, is_vid_mode = false;
struct sde_crtc *sde_crtc;
if (!sde_enc) { if (!sde_enc) {
SDE_ERROR("invalid encoder\n"); SDE_ERROR("invalid encoder\n");
return; return;
} }
sde_crtc = to_sde_crtc(sde_enc->crtc);
if (sde_encoder_check_curr_mode(&sde_enc->base, MSM_DISPLAY_VIDEO_MODE)) if (sde_encoder_check_curr_mode(&sde_enc->base, MSM_DISPLAY_VIDEO_MODE))
is_vid_mode = true; is_vid_mode = true;
@@ -3486,9 +3488,12 @@ static void _sde_encoder_kickoff_phys(struct sde_encoder_virt *sde_enc)
sde_enc->misr_frame_count); sde_enc->misr_frame_count);
sde_crtc_get_misr_info(sde_enc->crtc, &crtc_misr_info); sde_crtc_get_misr_info(sde_enc->crtc, &crtc_misr_info);
if (crtc_misr_info.misr_enable) if (crtc_misr_info.misr_enable && sde_crtc &&
sde_crtc->misr_reconfigure) {
sde_crtc_misr_setup(sde_enc->crtc, true, sde_crtc_misr_setup(sde_enc->crtc, true,
crtc_misr_info.misr_frame_count); crtc_misr_info.misr_frame_count);
sde_crtc->misr_reconfigure = false;
}
_sde_encoder_trigger_start(sde_enc->cur_master); _sde_encoder_trigger_start(sde_enc->cur_master);