Browse Source

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 năm trước cách đây
mục cha
commit
38372059b3
1 tập tin đã thay đổi với 14 bổ sung3 xóa
  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;