usb: dwc3: Stop processing more events after erratic error
In rare cases if the controller is unable to communicate with the
PHY it will trigger an ERRATIC ERROR event, upon which it is
recommended that the controller be reset. Currently the reset
is scheduled to be performed in a workqueue, which relinquishes
the dwc3_interrupt thread to continue to process the event buffer.
Meanwhile if the reset runs concurrently, it would disable the core
clock, which would result in unclocked I/O access if the gadget
interrupt handling continues to run. Fix this by stopping the
interrupt thread and prevent further interrupts from reading DWC3
registers until the reset sequence has completed.
Change-Id: Ib9a2173867d2ce3c9dbc5f5cbff0dda554168b35
Signed-off-by:
Jack Pham <jackp@codeaurora.org>
Loading
Please register or sign in to comment