disp: msm: dp: resend hpd notification to usermode
This change adds robustness to hpd notification by resending it if there was no action in 2 seconds, just in case, the first notification didn't make it to the usermode. Change-Id: Iaf00669ec77e8c50618ee5618735a98518ad7f1a Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
5043291e1a
commit
ecaabfefc9
@@ -983,8 +983,18 @@ static int dp_display_send_hpd_notification(struct dp_display_private *dp, bool
|
||||
(!!dp_display_state_is(DP_STATE_ENABLED) == hpd))
|
||||
goto skip_wait;
|
||||
|
||||
if (!wait_for_completion_timeout(&dp->notification_comp,
|
||||
HZ * 5)) {
|
||||
// wait 2 seconds
|
||||
if (wait_for_completion_timeout(&dp->notification_comp, HZ * 2))
|
||||
goto skip_wait;
|
||||
|
||||
//resend notification
|
||||
if (dp->mst.mst_active)
|
||||
dp->mst.cbs.hpd(&dp->dp_display, hpd);
|
||||
else
|
||||
dp_display_send_hpd_event(dp);
|
||||
|
||||
// wait another 3 seconds
|
||||
if (!wait_for_completion_timeout(&dp->notification_comp, HZ * 3)) {
|
||||
DP_WARN("%s timeout\n", hpd ? "connect" : "disconnect");
|
||||
ret = -EINVAL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user