diff --git a/msm/sde/sde_crtc.c b/msm/sde/sde_crtc.c index 85fa7d32fe..91b68fa5f4 100644 --- a/msm/sde/sde_crtc.c +++ b/msm/sde/sde_crtc.c @@ -1793,7 +1793,8 @@ int sde_crtc_get_secure_transition_ops(struct drm_crtc *crtc, */ drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) { - post_commit |= sde_encoder_check_curr_mode(encoder, + if (sde_encoder_is_dsi_display(encoder)) + post_commit |= sde_encoder_check_curr_mode(encoder, MSM_DISPLAY_VIDEO_MODE); } @@ -4275,7 +4276,7 @@ static int _sde_crtc_check_secure_state_smmu_translation(struct drm_crtc *crtc, int is_video_mode = false; drm_for_each_encoder_mask(encoder, crtc->dev, state->encoder_mask) { - if (sde_encoder_is_primary_display(encoder)) + if (sde_encoder_is_dsi_display(encoder)) is_video_mode |= sde_encoder_check_curr_mode(encoder, MSM_DISPLAY_VIDEO_MODE); } diff --git a/msm/sde/sde_encoder.c b/msm/sde/sde_encoder.c index 0748bfd43b..ae5f30753d 100644 --- a/msm/sde/sde_encoder.c +++ b/msm/sde/sde_encoder.c @@ -456,6 +456,14 @@ bool sde_encoder_is_primary_display(struct drm_encoder *drm_enc) SDE_CONNECTOR_PRIMARY); } +bool sde_encoder_is_dsi_display(struct drm_encoder *drm_enc) +{ + struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc); + + return sde_enc && + (sde_enc->disp_info.intf_type == DRM_MODE_CONNECTOR_DSI); +} + int sde_encoder_in_cont_splash(struct drm_encoder *drm_enc) { struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc); diff --git a/msm/sde/sde_encoder.h b/msm/sde/sde_encoder.h index b6f525083e..477741022c 100644 --- a/msm/sde/sde_encoder.h +++ b/msm/sde/sde_encoder.h @@ -319,6 +319,14 @@ bool sde_encoder_in_clone_mode(struct drm_encoder *enc); */ bool sde_encoder_is_primary_display(struct drm_encoder *enc); +/** + * sde_encoder_is_dsi_display - checks if underlying display is DSI + * display or not. + * @drm_enc: Pointer to drm encoder structure + * @Return: true if it is primary display. false if secondary display + */ +bool sde_encoder_is_dsi_display(struct drm_encoder *enc); + /** * sde_encoder_control_idle_pc - control enable/disable of idle power collapse * @drm_enc: Pointer to drm encoder structure