From fa1f3fab802e91185bc9159d00ca399eab14fb02 Mon Sep 17 00:00:00 2001 From: Rajkumar Subbiah Date: Mon, 22 Nov 2021 20:14:53 -0500 Subject: [PATCH] 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 Signed-off-by: Sandeep Gangadharaiah --- msm/dp/dp_ctrl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msm/dp/dp_ctrl.c b/msm/dp/dp_ctrl.c index 0c1841b092..6149d786e0 100644 --- a/msm/dp/dp_ctrl.c +++ b/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();