Loading drivers/usb/dwc3/core.h +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #define DWC3_ENDPOINTS_NUM 32 #define DWC3_XHCI_RESOURCES_NUM 2 #define DWC3_ISOC_MAX_RETRIES 5 #define MAX_ERROR_RECOVERY_TRIES 3 #define DWC3_SCRATCHBUF_SIZE 4096 /* each buffer is assumed to be 4KiB */ #define DWC3_EVENT_BUFFERS_SIZE 4096 Loading Loading @@ -1352,6 +1353,7 @@ struct dwc3 { * connected devices on PM resume. */ bool host_poweroff_in_pm_suspend; int retries_on_error; }; #define INCRX_BURST_MODE 0 Loading drivers/usb/dwc3/gadget.c +7 −1 Original line number Diff line number Diff line Loading @@ -2012,6 +2012,8 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) dwc->pullups_connected = true; } else { dwc3_gadget_disable_irq(dwc); dwc->err_evt_seen = false; dwc->pullups_connected = false; __dwc3_gadget_ep_disable(dwc->eps[0]); __dwc3_gadget_ep_disable(dwc->eps[1]); Loading Loading @@ -3192,6 +3194,9 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc) dwc3_writel(dwc->regs, DWC3_DEVTEN, reg); } /* Reset the retry on erratic error event count */ dwc->retries_on_error = 0; /* * RAMClkSel is reset to 0 after USB reset, so it must be reprogrammed * each time on Connect Done. Loading Loading @@ -3530,7 +3535,7 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, dwc->dbg_gadget_events.sof++; break; case DWC3_DEVICE_EVENT_ERRATIC_ERROR: dbg_event(0xFF, "ERROR", 0); dbg_event(0xFF, "ERROR", dwc->retries_on_error); dwc->dbg_gadget_events.erratic_error++; dwc->err_evt_seen = true; break; Loading Loading @@ -3588,6 +3593,7 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3_event_buffer *evt) if (dwc3_notify_event(dwc, DWC3_CONTROLLER_ERROR_EVENT, 0)) dwc->err_evt_seen = 0; dwc->retries_on_error++; break; } Loading Loading
drivers/usb/dwc3/core.h +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #define DWC3_ENDPOINTS_NUM 32 #define DWC3_XHCI_RESOURCES_NUM 2 #define DWC3_ISOC_MAX_RETRIES 5 #define MAX_ERROR_RECOVERY_TRIES 3 #define DWC3_SCRATCHBUF_SIZE 4096 /* each buffer is assumed to be 4KiB */ #define DWC3_EVENT_BUFFERS_SIZE 4096 Loading Loading @@ -1352,6 +1353,7 @@ struct dwc3 { * connected devices on PM resume. */ bool host_poweroff_in_pm_suspend; int retries_on_error; }; #define INCRX_BURST_MODE 0 Loading
drivers/usb/dwc3/gadget.c +7 −1 Original line number Diff line number Diff line Loading @@ -2012,6 +2012,8 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) dwc->pullups_connected = true; } else { dwc3_gadget_disable_irq(dwc); dwc->err_evt_seen = false; dwc->pullups_connected = false; __dwc3_gadget_ep_disable(dwc->eps[0]); __dwc3_gadget_ep_disable(dwc->eps[1]); Loading Loading @@ -3192,6 +3194,9 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc) dwc3_writel(dwc->regs, DWC3_DEVTEN, reg); } /* Reset the retry on erratic error event count */ dwc->retries_on_error = 0; /* * RAMClkSel is reset to 0 after USB reset, so it must be reprogrammed * each time on Connect Done. Loading Loading @@ -3530,7 +3535,7 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, dwc->dbg_gadget_events.sof++; break; case DWC3_DEVICE_EVENT_ERRATIC_ERROR: dbg_event(0xFF, "ERROR", 0); dbg_event(0xFF, "ERROR", dwc->retries_on_error); dwc->dbg_gadget_events.erratic_error++; dwc->err_evt_seen = true; break; Loading Loading @@ -3588,6 +3593,7 @@ static irqreturn_t dwc3_process_event_buf(struct dwc3_event_buffer *evt) if (dwc3_notify_event(dwc, DWC3_CONTROLLER_ERROR_EVENT, 0)) dwc->err_evt_seen = 0; dwc->retries_on_error++; break; } Loading