Move the common disable steps out of the sink_count check to make the
flow easier to follow.

No functional change intended.

Signed-off-by: Yongxing Mou <[email protected]>
Reviewed-by: Dmitry Baryshkov <[email protected]>
---
 drivers/gpu/drm/msm/dp/dp_display.c | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_display.c 
b/drivers/gpu/drm/msm/dp/dp_display.c
index 8f472633da82..63e5b191f95c 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -716,27 +716,19 @@ static int msm_dp_display_disable(struct 
msm_dp_display_private *dp)
 
        msm_dp_panel_disable_vsc_sdp(dp->panel);
 
-       /* dongle is still connected but sinks are disconnected */
-       if (dp->link->sink_count == 0) {
-               /*
-                * irq_hpd with sink_count = 0
-                * hdmi unplugged out of dongle
-                */
+       msm_dp_ctrl_off_pixel_clk(dp->ctrl);
 
-               /* set dongle to D3 (power off) mode */
+       /* dongle is still connected but sinks are disconnected */
+       if (dp->link->sink_count == 0)
                msm_dp_link_psm_config(dp->link, &dp->panel->link_info, true);
-               msm_dp_ctrl_off_pixel_clk(dp->ctrl);
-               msm_dp_ctrl_off_link(dp->ctrl, dp->panel);
+
+       msm_dp_ctrl_off_link(dp->ctrl, dp->panel);
+
+       if (dp->link->sink_count == 0)
+               /* re-init the PHY so that we can listen to Dongle disconnect */
                msm_dp_ctrl_reinit_phy(dp->ctrl);
-       } else {
-               /*
-                * unplugged interrupt
-                * dongle unplugged out of DUT
-                */
-               msm_dp_ctrl_off_pixel_clk(dp->ctrl);
-               msm_dp_ctrl_off_link(dp->ctrl, dp->panel);
+       else
                msm_dp_display_host_phy_exit(dp);
-       }
 
        msm_dp_display->power_on = false;
 

-- 
2.43.0

Reply via email to