disp: msm: dp: clear notification states for dp mst

If a DP MST display is connected after a DP SST unplug, the
DISCONNECT_NOTIFIED state is not cleared and CONNECT_NOTIFIED
state is not set. These states are not relevant for DP MST and
hence skipped during the send_notification. But the
DISCONNECT_NOTIFIED state that was not cleared from the previous
SST unplug will prevent the wait for completion when DP MST is
disconnected. This will trigger the host_unready to get executed
before the dp_display_disable happens for the DP MST displays.
As the result, the dp_display_disable exits early causing all the
stream clocks and the panels objects to remain active even after
unplug.

As CONNECT_NOTIFIED and DISCONNECT_NOTIFIED state are not relevant
for DP MST, clearing them if DP MST hpd detected in dp_display.

Change-Id: Iaf0e762633eb276e96cb860fda480adb04718eb9
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
This commit is contained in:
Sankeerth Billakanti
2020-04-14 00:05:31 +05:30
committed by Tatenda Chipeperekwa
parent ba8d20f98e
commit 7424c2352d

View File

@@ -723,6 +723,7 @@ static void dp_display_send_hpd_event(struct dp_display_private *dp)
if (dp->mst.mst_active) {
DP_DEBUG("skip notification for mst mode\n");
dp_display_state_remove(DP_STATE_DISCONNECT_NOTIFIED);
return;
}