drm/msm/sde: program pixel extension from scalar config from sde plane

Avoid implicit programming of pixel extension and scalar blocks
of an SSPP by programming them from sde plane.

Change-Id: Iac324e7d75f29ebf4b3d8bd2edc38b62c98d5193
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
diff --git a/drivers/gpu/drm/msm/sde/sde_plane.c b/drivers/gpu/drm/msm/sde/sde_plane.c
index 8ff08dc..e144a0d 100644
--- a/drivers/gpu/drm/msm/sde/sde_plane.c
+++ b/drivers/gpu/drm/msm/sde/sde_plane.c
@@ -1104,8 +1104,6 @@
 		psde->pipe_cfg.src_rect.w = psde->pipe_cfg.dst_rect.w;
 		psde->pipe_cfg.src_rect.h = psde->pipe_cfg.dst_rect.h;
 
-		_sde_plane_setup_scaler(psde, fmt, 0);
-
 		if (psde->pipe_hw->ops.setup_format)
 			psde->pipe_hw->ops.setup_format(psde->pipe_hw,
 					fmt, SDE_SSPP_SOLID_FILL,
@@ -1113,9 +1111,13 @@
 
 		if (psde->pipe_hw->ops.setup_rects)
 			psde->pipe_hw->ops.setup_rects(psde->pipe_hw,
-					&psde->pipe_cfg, &psde->pixel_ext,
-					pstate->multirect_index,
-					psde->scaler3_cfg);
+					&psde->pipe_cfg,
+					pstate->multirect_index);
+
+		_sde_plane_setup_scaler(psde, fmt, 0);
+		if (psde->pipe_hw->ops.setup_pe)
+			psde->pipe_hw->ops.setup_pe(psde->pipe_hw,
+					&psde->pixel_ext);
 	}
 
 	return 0;
@@ -1238,14 +1240,21 @@
 			/* skip remaining processing on color fill */
 			pstate->dirty = 0x0;
 		} else if (psde->pipe_hw->ops.setup_rects) {
-			_sde_plane_setup_scaler(psde, fmt, pstate);
-
 			psde->pipe_hw->ops.setup_rects(psde->pipe_hw,
-					&psde->pipe_cfg, &psde->pixel_ext,
-					pstate->multirect_index,
-					psde->scaler3_cfg);
+					&psde->pipe_cfg,
+					pstate->multirect_index);
 		}
 
+		_sde_plane_setup_scaler(psde, fmt, pstate);
+		if (psde->pipe_hw->ops.setup_pe)
+			psde->pipe_hw->ops.setup_pe(psde->pipe_hw,
+					&psde->pixel_ext);
+
+		if (psde->pipe_hw->ops.setup_scaler)
+			psde->pipe_hw->ops.setup_scaler(psde->pipe_hw,
+					&psde->pipe_cfg, &psde->pixel_ext,
+					psde->scaler3_cfg);
+
 		/* update excl rect */
 		if (psde->pipe_hw->ops.setup_excl_rect)
 			psde->pipe_hw->ops.setup_excl_rect(psde->pipe_hw,