Browse Source

Merge "disp: msm: dp: exit stream enable on cable disconnect"

qctecmdr 5 years ago
parent
commit
55ce1ad7c0
4 changed files with 10 additions and 6 deletions
  1. 1 0
      msm/dp/dp_altmode.c
  2. 5 0
      msm/dp/dp_ctrl.c
  3. 3 3
      msm/dp/dp_display.c
  4. 1 3
      msm/dp/dp_drm.c

+ 1 - 0
msm/dp/dp_altmode.c

@@ -309,6 +309,7 @@ void dp_altmode_put(struct dp_hpd *dp_hpd)
 			dp_altmode);
 
 	altmode_deregister_client(altmode->amclient);
+	altmode_deregister_notifier(altmode->dev, altmode);
 
 	kfree(altmode);
 }

+ 5 - 0
msm/dp/dp_ctrl.c

@@ -1168,6 +1168,11 @@ static int dp_ctrl_stream_on(struct dp_ctrl *dp_ctrl, struct dp_panel *panel)
 
 	ctrl = container_of(dp_ctrl, struct dp_ctrl_private, dp_ctrl);
 
+	if (!ctrl->power_on) {
+		DP_DEBUG("controller powered off\n");
+		return -EPERM;
+	}
+
 	rc = dp_ctrl_enable_stream_clocks(ctrl, panel);
 	if (rc) {
 		DP_ERR("failure on stream clock enable\n");

+ 3 - 3
msm/dp/dp_display.c

@@ -1948,8 +1948,8 @@ static int dp_display_prepare(struct dp_display *dp_display, void *panel)
 end:
 	mutex_unlock(&dp->session_lock);
 
-	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
-	return 0;
+	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, rc);
+	return rc;
 }
 
 static int dp_display_set_stream_info(struct dp_display *dp_display,
@@ -2061,7 +2061,7 @@ static int dp_display_enable(struct dp_display *dp_display, void *panel)
 	dp_display_state_add(DP_STATE_ENABLED);
 end:
 	mutex_unlock(&dp->session_lock);
-	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
+	SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, rc);
 	return rc;
 }
 

+ 1 - 3
msm/dp/dp_drm.c

@@ -116,11 +116,9 @@ static void dp_bridge_pre_enable(struct drm_bridge *drm_bridge)
 	dp->set_stream_info(dp, bridge->dp_panel, 0, 0, 0, 0, 0);
 
 	rc = dp->enable(dp, bridge->dp_panel);
-	if (rc) {
+	if (rc)
 		DP_ERR("[%d] DP display enable failed, rc=%d\n",
 		       bridge->id, rc);
-		dp->unprepare(dp, bridge->dp_panel);
-	}
 }
 
 static void dp_bridge_enable(struct drm_bridge *drm_bridge)