Browse Source

disp: msm: sde: remove pipe fetch halt check on real plane

SDE driver started supporting multirect mode with rect_1 only
configuration. In such case, master plane can not trigger
pipe fetch halt independently. This change removes the pipe
fetch halt check completely because it was only done for
master plane without buffer flip usecase. AXI fetch halt
provides similar functionality during idle power collapse
and suspend-resume.

Change-Id: I79d9d0eac2de95f1bb88561c7cc259e0cc4b2ca4
Signed-off-by: Dhaval Patel <[email protected]>
Dhaval Patel 5 years ago
parent
commit
5d8bfac54d
2 changed files with 1 additions and 70 deletions
  1. 0 4
      msm/sde/sde_hw_sspp.h
  2. 1 66
      msm/sde/sde_plane.c

+ 0 - 4
msm/sde/sde_hw_sspp.h

@@ -165,8 +165,6 @@ struct sde_hw_pixel_ext {
  *              4: Read 1 line/pixel drop 3  lines/pixels
  *              8: Read 1 line/pixel drop 7 lines/pixels
  *              16: Read 1 line/pixel drop 15 line/pixels
- * @index:     index of the rectangle of SSPP
- * @mode:      parallel or time multiplex multirect mode
  */
 struct sde_hw_pipe_cfg {
 	struct sde_hw_fmt_layout layout;
@@ -174,8 +172,6 @@ struct sde_hw_pipe_cfg {
 	struct sde_rect dst_rect;
 	u8 horz_decimation;
 	u8 vert_decimation;
-	enum sde_sspp_multirect_index index;
-	enum sde_sspp_multirect_mode mode;
 };
 
 /**

+ 1 - 66
msm/sde/sde_plane.c

@@ -1948,84 +1948,19 @@ static int sde_plane_prepare_fb(struct drm_plane *plane,
 	return 0;
 }
 
-/**
- * _sde_plane_fetch_halt - halts vbif transactions for a plane
- * @plane: Pointer to plane
- * Returns: 0 on success
- */
-static int _sde_plane_fetch_halt(struct drm_plane *plane)
-{
-	struct sde_plane *psde;
-	int xin_id;
-	enum sde_clk_ctrl_type clk_ctrl;
-	struct msm_drm_private *priv;
-	struct sde_kms *sde_kms;
-
-	psde = to_sde_plane(plane);
-	if (!plane || !plane->dev || !psde->pipe_hw) {
-		SDE_ERROR("invalid arguments\n");
-		return -EINVAL;
-	}
-
-	priv = plane->dev->dev_private;
-	if (!priv || !priv->kms) {
-		SDE_ERROR("invalid KMS reference\n");
-		return -EINVAL;
-	}
-
-	sde_kms = to_sde_kms(priv->kms);
-	clk_ctrl = psde->pipe_hw->cap->clk_ctrl;
-	xin_id = psde->pipe_hw->cap->xin_id;
-	SDE_DEBUG_PLANE(psde, "pipe:%d xin_id:%d clk_ctrl:%d\n",
-			psde->pipe - SSPP_VIG0, xin_id, clk_ctrl);
-	SDE_EVT32_VERBOSE(psde, psde->pipe - SSPP_VIG0, xin_id, clk_ctrl);
-
-	return sde_vbif_halt_plane_xin(sde_kms, xin_id, clk_ctrl);
-}
-
-
 static void sde_plane_cleanup_fb(struct drm_plane *plane,
 		struct drm_plane_state *old_state)
 {
 	struct sde_plane *psde = to_sde_plane(plane);
 	struct sde_plane_state *old_pstate;
-	int ret;
 
-	if (!old_state || !old_state->fb || !plane || !plane->state)
+	if (!old_state || !old_state->fb || !plane)
 		return;
 
 	old_pstate = to_sde_plane_state(old_state);
 
 	SDE_DEBUG_PLANE(psde, "FB[%u]\n", old_state->fb->base.id);
 
-	/*
-	 * plane->state gets populated for next frame after swap_state. If
-	 * plane->state->crtc pointer is not populated then it is not used in
-	 * the next frame, hence making it an unused plane.
-	 */
-	if ((plane->state->crtc == NULL) && !psde->is_virtual) {
-		SDE_DEBUG_PLANE(psde, "unused pipe:%u\n",
-			       psde->pipe - SSPP_VIG0);
-
-		/* halt this plane now */
-		ret = pm_runtime_get_sync(plane->dev->dev);
-		if (ret < 0) {
-			SDE_ERROR("power resource enable failed with %d", ret);
-			SDE_EVT32(ret, SDE_EVTLOG_ERROR);
-			return;
-		}
-
-		ret = _sde_plane_fetch_halt(plane);
-		if (ret) {
-			SDE_ERROR_PLANE(psde,
-				       "unused pipe %u halt failed\n",
-				       psde->pipe - SSPP_VIG0);
-			SDE_EVT32(DRMID(plane), psde->pipe - SSPP_VIG0,
-				       ret, SDE_EVTLOG_ERROR);
-		}
-		pm_runtime_put_sync(plane->dev->dev);
-	}
-
 	msm_framebuffer_cleanup(old_state->fb, old_pstate->aspace);
 
 }