Selaa lähdekoodia

disp: msm: sde: fix split control programming

This change avoid programming of legacy bit fields which
are conflicting with TE alignment feature bit fields
of split control register of peripheral top block.

Change-Id: Ib9f519ec82ee3b3885351dff960b176c99dcf08d
Signed-off-by: Prabhanjan Kandula <[email protected]>
Prabhanjan Kandula 2 vuotta sitten
vanhempi
sitoutus
7329e09b69
1 muutettua tiedostoa jossa 11 lisäystä ja 1 poistoa
  1. 11 1
      msm/sde/sde_hw_top.c

+ 11 - 1
msm/sde/sde_hw_top.c

@@ -126,7 +126,17 @@ static void sde_hw_setup_split_pipe(struct sde_hw_mdp *mdp,
 
 	c = &mdp->hw;
 
-	if (cfg->en) {
+	if (test_bit(SDE_MDP_PERIPH_TOP_0_REMOVED, &mdp->caps->features) && cfg->en) {
+		/* avoid programming of legacy bits like SW_TRG_MUX for new targets */
+		if (cfg->mode == INTF_MODE_CMD) {
+			lower_pipe |= BIT(mdp->caps->smart_panel_align_mode);
+
+			upper_pipe = lower_pipe;
+
+			if (cfg->pp_split_slave != INTF_MAX)
+				lower_pipe = FLD_SMART_PANEL_FREE_RUN;
+		}
+	} else if (cfg->en) {
 		if (cfg->mode == INTF_MODE_CMD) {
 			lower_pipe = FLD_SPLIT_DISPLAY_CMD;
 			/* interface controlling sw trigger */