浏览代码

disp: msm: sde: update rotator sid value in continuous splash case

This change programs rotator sid value irrespective of
continuous splash since it is not configured from
bootloader. It also handles trusted vm support
to prevent accessing mdss hw register.

Change-Id: I80e286364286457545dfa236d629447241d98f95
Signed-off-by: Yashwanth <[email protected]>
Yashwanth 4 年之前
父节点
当前提交
38372059b3
共有 1 个文件被更改,包括 14 次插入3 次删除
  1. 14 3
      msm/sde/sde_kms.c

+ 14 - 3
msm/sde/sde_kms.c

@@ -3535,6 +3535,14 @@ fail:
 	return ret;
 }
 
+static void sde_kms_init_rot_sid_hw(struct sde_kms *sde_kms)
+{
+	if (!sde_kms || !sde_kms->hw_sid || sde_in_trusted_vm(sde_kms))
+		return;
+
+	sde_hw_set_rotator_sid(sde_kms->hw_sid);
+}
+
 static void sde_kms_init_shared_hw(struct sde_kms *sde_kms)
 {
 	if (!sde_kms || !sde_kms->hw_mdp || !sde_kms->catalog)
@@ -3543,9 +3551,6 @@ static void sde_kms_init_shared_hw(struct sde_kms *sde_kms)
 	if (sde_kms->hw_mdp->ops.reset_ubwc)
 		sde_kms->hw_mdp->ops.reset_ubwc(sde_kms->hw_mdp,
 						sde_kms->catalog);
-
-	if (sde_kms->sid)
-		sde_hw_set_rotator_sid(sde_kms->hw_sid);
 }
 
 static void _sde_kms_set_lutdma_vbif_remap(struct sde_kms *sde_kms)
@@ -3694,6 +3699,12 @@ static void sde_kms_handle_power_event(u32 event_type, void *usr)
 	if (event_type == SDE_POWER_EVENT_POST_ENABLE) {
 		sde_irq_update(msm_kms, true);
 		sde_kms->first_kickoff = true;
+
+		/**
+		 * Rotator sid needs to be programmed since uefi doesn't
+		 * configure it during continuous splash
+		 */
+		sde_kms_init_rot_sid_hw(sde_kms);
 		if (sde_kms->splash_data.num_splash_displays ||
 				sde_in_trusted_vm(sde_kms))
 			return;