Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 769f1f81 authored by Pratham Pratap's avatar Pratham Pratap Committed by Gerrit - the friendly Code Review server
Browse files

usb: pd: Clear send_get_status flag in protocol reset



Consider a scenario where a connected PD partner has sent an
alert message to the device and driver marked send_get_status
to true and queued usbpd_sm work with a delay of 150ms. Now,
if the cable gets disconnected before the start of usbpd_sm
work then send_get_status flag will not get cleared anywhere.
On the next cable plug-in, in PE_SNK_READY driver will
unnecessarily send Get_Status again which is incorrect and
may lead to soft/hard reset causing the PD partner to disconnect.
Fix this by clearing the send_get_status flag in the protocol reset.

Change-Id: I4747b0a25a0870e83ff78e0b9ccd7e3fd91ed9e6
Signed-off-by: default avatarPratham Pratap <prathampratap@codeaurora.org>
parent 6d869ca4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -710,6 +710,7 @@ static inline void pd_reset_protocol(struct usbpd *pd)
	memset(pd->rx_msgid, -1, sizeof(pd->rx_msgid));
	memset(pd->tx_msgid, 0, sizeof(pd->tx_msgid));
	pd->send_request = false;
	pd->send_get_status = false;
	pd->send_pr_swap = false;
	pd->send_dr_swap = false;
}