Эх сурвалжийг харах

disp: msm: dp: avoid dp sw reset on disconnect path

In an effort to reset the DP controller states on a disconnect, the
driver is issuing a SW reset to the controller. But SW reset on
the controller doesn't necessarily restore the controller to its
full reset state. It only resets part of the logic. So if for some
reason the MST streams were not disabled properly, ie. the slot
allocations were not reset properly in the controller, then a SW
reset would result in the DP controller raising state interrupts.
Since this SW reset is issued in the tail end of the disconnect
processing, the driver turns off all the clocks and also
removes the irq handler. This results in an interrupt storm at
the MDSS top level.

This change removes the SW reset on the disconnect path and
relies on the SW reset that already exists in the connect path
to restore controller state.

Change-Id: Ie7115e17d3c50c46c83c6f0e333da5cb534b8227
Signed-off-by: Rajkumar Subbiah <[email protected]>
Signed-off-by: Sandeep Gangadharaiah <[email protected]>
Rajkumar Subbiah 3 жил өмнө
parent
commit
fa1f3fab80
1 өөрчлөгдсөн 1 нэмэгдсэн , 1 устгасан
  1. 1 1
      msm/dp/dp_ctrl.c

+ 1 - 1
msm/dp/dp_ctrl.c

@@ -1435,7 +1435,7 @@ static void dp_ctrl_off(struct dp_ctrl *dp_ctrl)
 
 	ctrl->catalog->fec_config(ctrl->catalog, false);
 	dp_ctrl_configure_source_link_params(ctrl, false);
-	ctrl->catalog->reset(ctrl->catalog);
+	dp_ctrl_state_ctrl(ctrl, 0);
 
 	/* Make sure DP is disabled before clk disable */
 	wmb();