浏览代码

disp: msm: sde: fix trusted-ui transition checks

Avoid crtc_state active_changed flag and explicitly check new/old
crtc_state active to decide if trusted vm transition checks are
required. As the active_changed might not be set at this point
in atomic_check sequence.

Change-Id: I142befad68359ae5ee862a1306bdc75531d63e70
Signed-off-by: Veera Sundaram Sankaran <[email protected]>
Veera Sundaram Sankaran 4 年之前
父节点
当前提交
689f5eb836
共有 1 个文件被更改,包括 7 次插入11 次删除
  1. 7 11
      msm/sde/sde_kms.c

+ 7 - 11
msm/sde/sde_kms.c

@@ -2525,33 +2525,29 @@ static int sde_kms_check_vm_request(struct msm_kms *kms,
 	for_each_oldnew_crtc_in_state(state, crtc, old_cstate, new_cstate, i) {
 		struct sde_crtc_state *old_state = NULL, *new_state = NULL;
 
-		new_state = to_sde_crtc_state(new_cstate);
-
-		if (!new_cstate->active && !new_cstate->active_changed)
+		if (!new_cstate->active && !old_cstate->active)
 			continue;
 
+		new_state = to_sde_crtc_state(new_cstate);
 		new_vm_req = sde_crtc_get_property(new_state,
 				CRTC_PROP_VM_REQ_STATE);
 
-		commit_crtc_cnt++;
-
-		if (old_cstate) {
-			old_state = to_sde_crtc_state(old_cstate);
-			old_vm_req = sde_crtc_get_property(old_state,
-					CRTC_PROP_VM_REQ_STATE);
-		}
+		old_state = to_sde_crtc_state(old_cstate);
+		old_vm_req = sde_crtc_get_property(old_state,
+				CRTC_PROP_VM_REQ_STATE);
 
 		/**
 		 * No active request if the transition is from
 		 * VM_REQ_NONE to VM_REQ_NONE
 		 */
-		if (new_vm_req || (old_state && old_vm_req))
+		if (new_vm_req || old_vm_req)
 			vm_req_active = true;
 
 		idle_pc_state = sde_crtc_get_property(new_state,
 						CRTC_PROP_IDLE_PC_STATE);
 
 		active_crtc = crtc;
+		commit_crtc_cnt++;
 	}
 
 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {