Skip to content
Commit 1ea8a2a5 authored by Mayank Rana's avatar Mayank Rana Committed by Greg Kroah-Hartman
Browse files

usb: dwc3: Fix ep0 handling when getting reset while doing control transfer



[ Upstream commit 9d778f0c ]

According to the databook ep0 should be in setup phase during reset.
If host issues reset between control transfers, ep0 will be  in an
invalid state. Fix this by issuing stall and restart on ep0 if it
is not in setup phase.

Also SW needs to complete pending control transfer and setup core for
next setup stage as per data book. Hence check ep0 state during reset
interrupt handling and make sure active transfers on ep0 out/in
endpoint are stopped by queuing ENDXFER command for that endpoint and
restart ep0 out again to receive next setup packet.

Signed-off-by: default avatarMayank Rana <quic_mrana@quicinc.com>
Link: https://lore.kernel.org/r/1651693001-29891-1-git-send-email-quic_mrana@quicinc.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Stable-dep-of: 730e12fb ("usb: dwc3: gadget: Handle EP0 request dequeuing properly")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 12c0a080
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment