Loading drivers/gpu/drm/msm/sde/sde_crtc.c +3 −6 Original line number Diff line number Diff line Loading @@ -1989,20 +1989,17 @@ int sde_crtc_get_secure_transition_ops(struct drm_crtc *crtc, || (smmu_state->state == DETACH_SEC_REQ)))) { smmu_state->state = catalog->sui_ns_allowed ? ATTACH_SEC_REQ : ATTACH_ALL_REQ; smmu_state->secure_level = secure_level; smmu_state->transition_type = post_commit ? POST_COMMIT : PRE_COMMIT; ops |= SDE_KMS_OPS_SECURE_STATE_CHANGE; if (old_valid_fb) ops |= (SDE_KMS_OPS_WAIT_FOR_TX_DONE | SDE_KMS_OPS_CLEANUP_PLANE_FB); ops |= SDE_KMS_OPS_WAIT_FOR_TX_DONE; if (catalog->sui_misr_supported) smmu_state->sui_misr_state = SUI_MISR_DISABLE_REQ; } else if ((smmu_state->state == DETACHED_SEC) || (smmu_state->state == DETACH_SEC_REQ)) { smmu_state->state = ATTACH_SEC_REQ; smmu_state->secure_level = secure_level; smmu_state->transition_type = post_commit ? POST_COMMIT : PRE_COMMIT; ops |= SDE_KMS_OPS_SECURE_STATE_CHANGE; Loading @@ -2019,9 +2016,9 @@ int sde_crtc_get_secure_transition_ops(struct drm_crtc *crtc, /* log only during actual transition times */ if (ops) { SDE_DEBUG("crtc%d: state %d, secure_level %d, type %d ops %x\n", SDE_DEBUG("crtc%d: state%d sec%d sec_lvl%d type%d ops%x\n", DRMID(crtc), smmu_state->state, smmu_state->secure_level, secure_level, smmu_state->secure_level, smmu_state->transition_type, ops); SDE_EVT32(DRMID(crtc), secure_level, translation_mode, smmu_state->state, smmu_state->transition_type, Loading drivers/gpu/drm/msm/sde/sde_kms.c +9 −4 Original line number Diff line number Diff line Loading @@ -658,8 +658,10 @@ static int _sde_kms_secure_ctrl(struct sde_kms *sde_kms, struct drm_crtc *crtc, case ATTACH_ALL_REQ: ret = _sde_kms_attach_all_cb(sde_kms, VMID_CP_PIXEL); if (!ret) if (!ret) { smmu_state->state = ATTACHED; smmu_state->secure_level = SDE_DRM_SEC_NON_SEC; } break; case DETACH_SEC_REQ: Loading @@ -673,8 +675,10 @@ static int _sde_kms_secure_ctrl(struct sde_kms *sde_kms, struct drm_crtc *crtc, case ATTACH_SEC_REQ: ret = _sde_kms_attach_sec_cb(sde_kms, VMID_CP_PIXEL); if (!ret) if (!ret) { smmu_state->state = ATTACHED; smmu_state->secure_level = SDE_DRM_SEC_NON_SEC; } break; default: Loading @@ -698,8 +702,9 @@ static int _sde_kms_secure_ctrl(struct sde_kms *sde_kms, struct drm_crtc *crtc, smmu_state->transition_type = NONE; smmu_state->transition_error = ret ? true : false; SDE_DEBUG("crtc %d: old_state %d, new_state %d, ret %d\n", DRMID(crtc), old_smmu_state, smmu_state->state, ret); SDE_DEBUG("crtc %d: old_state %d, new_state %d, sec_lvl %d, ret %d\n", DRMID(crtc), old_smmu_state, smmu_state->state, smmu_state->secure_level, ret); SDE_EVT32(DRMID(crtc), smmu_state->state, smmu_state->transition_type, smmu_state->transition_error, smmu_state->secure_level, smmu_state->sui_misr_state, ret, SDE_EVTLOG_FUNC_EXIT); Loading drivers/gpu/drm/msm/sde/sde_kms.h +6 −3 Original line number Diff line number Diff line Loading @@ -351,11 +351,14 @@ static inline bool sde_kms_is_secure_session_inprogress(struct sde_kms *sde_kms) return false; mutex_lock(&sde_kms->secure_transition_lock); if (((sde_kms->smmu_state.secure_level == SDE_DRM_SEC_ONLY) && if (((sde_kms->catalog->sui_ns_allowed) && (sde_kms->smmu_state.secure_level == SDE_DRM_SEC_ONLY) && ((sde_kms->smmu_state.state == DETACHED_SEC) || (sde_kms->smmu_state.state == DETACH_SEC_REQ))) (sde_kms->smmu_state.state == DETACH_SEC_REQ) || (sde_kms->smmu_state.state == ATTACH_SEC_REQ))) || (((sde_kms->smmu_state.state == DETACHED) || (sde_kms->smmu_state.state == DETACH_ALL_REQ)))) (sde_kms->smmu_state.state == DETACH_ALL_REQ) || (sde_kms->smmu_state.state == ATTACH_ALL_REQ)))) ret = true; mutex_unlock(&sde_kms->secure_transition_lock); Loading Loading
drivers/gpu/drm/msm/sde/sde_crtc.c +3 −6 Original line number Diff line number Diff line Loading @@ -1989,20 +1989,17 @@ int sde_crtc_get_secure_transition_ops(struct drm_crtc *crtc, || (smmu_state->state == DETACH_SEC_REQ)))) { smmu_state->state = catalog->sui_ns_allowed ? ATTACH_SEC_REQ : ATTACH_ALL_REQ; smmu_state->secure_level = secure_level; smmu_state->transition_type = post_commit ? POST_COMMIT : PRE_COMMIT; ops |= SDE_KMS_OPS_SECURE_STATE_CHANGE; if (old_valid_fb) ops |= (SDE_KMS_OPS_WAIT_FOR_TX_DONE | SDE_KMS_OPS_CLEANUP_PLANE_FB); ops |= SDE_KMS_OPS_WAIT_FOR_TX_DONE; if (catalog->sui_misr_supported) smmu_state->sui_misr_state = SUI_MISR_DISABLE_REQ; } else if ((smmu_state->state == DETACHED_SEC) || (smmu_state->state == DETACH_SEC_REQ)) { smmu_state->state = ATTACH_SEC_REQ; smmu_state->secure_level = secure_level; smmu_state->transition_type = post_commit ? POST_COMMIT : PRE_COMMIT; ops |= SDE_KMS_OPS_SECURE_STATE_CHANGE; Loading @@ -2019,9 +2016,9 @@ int sde_crtc_get_secure_transition_ops(struct drm_crtc *crtc, /* log only during actual transition times */ if (ops) { SDE_DEBUG("crtc%d: state %d, secure_level %d, type %d ops %x\n", SDE_DEBUG("crtc%d: state%d sec%d sec_lvl%d type%d ops%x\n", DRMID(crtc), smmu_state->state, smmu_state->secure_level, secure_level, smmu_state->secure_level, smmu_state->transition_type, ops); SDE_EVT32(DRMID(crtc), secure_level, translation_mode, smmu_state->state, smmu_state->transition_type, Loading
drivers/gpu/drm/msm/sde/sde_kms.c +9 −4 Original line number Diff line number Diff line Loading @@ -658,8 +658,10 @@ static int _sde_kms_secure_ctrl(struct sde_kms *sde_kms, struct drm_crtc *crtc, case ATTACH_ALL_REQ: ret = _sde_kms_attach_all_cb(sde_kms, VMID_CP_PIXEL); if (!ret) if (!ret) { smmu_state->state = ATTACHED; smmu_state->secure_level = SDE_DRM_SEC_NON_SEC; } break; case DETACH_SEC_REQ: Loading @@ -673,8 +675,10 @@ static int _sde_kms_secure_ctrl(struct sde_kms *sde_kms, struct drm_crtc *crtc, case ATTACH_SEC_REQ: ret = _sde_kms_attach_sec_cb(sde_kms, VMID_CP_PIXEL); if (!ret) if (!ret) { smmu_state->state = ATTACHED; smmu_state->secure_level = SDE_DRM_SEC_NON_SEC; } break; default: Loading @@ -698,8 +702,9 @@ static int _sde_kms_secure_ctrl(struct sde_kms *sde_kms, struct drm_crtc *crtc, smmu_state->transition_type = NONE; smmu_state->transition_error = ret ? true : false; SDE_DEBUG("crtc %d: old_state %d, new_state %d, ret %d\n", DRMID(crtc), old_smmu_state, smmu_state->state, ret); SDE_DEBUG("crtc %d: old_state %d, new_state %d, sec_lvl %d, ret %d\n", DRMID(crtc), old_smmu_state, smmu_state->state, smmu_state->secure_level, ret); SDE_EVT32(DRMID(crtc), smmu_state->state, smmu_state->transition_type, smmu_state->transition_error, smmu_state->secure_level, smmu_state->sui_misr_state, ret, SDE_EVTLOG_FUNC_EXIT); Loading
drivers/gpu/drm/msm/sde/sde_kms.h +6 −3 Original line number Diff line number Diff line Loading @@ -351,11 +351,14 @@ static inline bool sde_kms_is_secure_session_inprogress(struct sde_kms *sde_kms) return false; mutex_lock(&sde_kms->secure_transition_lock); if (((sde_kms->smmu_state.secure_level == SDE_DRM_SEC_ONLY) && if (((sde_kms->catalog->sui_ns_allowed) && (sde_kms->smmu_state.secure_level == SDE_DRM_SEC_ONLY) && ((sde_kms->smmu_state.state == DETACHED_SEC) || (sde_kms->smmu_state.state == DETACH_SEC_REQ))) (sde_kms->smmu_state.state == DETACH_SEC_REQ) || (sde_kms->smmu_state.state == ATTACH_SEC_REQ))) || (((sde_kms->smmu_state.state == DETACHED) || (sde_kms->smmu_state.state == DETACH_ALL_REQ)))) (sde_kms->smmu_state.state == DETACH_ALL_REQ) || (sde_kms->smmu_state.state == ATTACH_ALL_REQ)))) ret = true; mutex_unlock(&sde_kms->secure_transition_lock); Loading