Loading drivers/usb/dwc3/core.h +3 −2 Original line number Diff line number Diff line Loading @@ -855,8 +855,9 @@ struct dwc3_scratchpad_array { #define DWC3_GSI_EVT_BUF_ALLOC 10 #define DWC3_GSI_EVT_BUF_SETUP 11 #define DWC3_GSI_EVT_BUF_CLEANUP 12 #define DWC3_GSI_EVT_BUF_FREE 13 #define DWC3_CONTROLLER_NOTIFY_CLEAR_DB 14 #define DWC3_GSI_EVT_BUF_CLEAR 13 #define DWC3_GSI_EVT_BUF_FREE 14 #define DWC3_CONTROLLER_NOTIFY_CLEAR_DB 15 #define MAX_INTR_STATS 10 Loading drivers/usb/dwc3/dwc3-msm.c +9 −0 Original line number Diff line number Diff line Loading @@ -2002,6 +2002,15 @@ static void dwc3_msm_notify_event(struct dwc3 *dwc, unsigned int event, dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT((i+1)), 0); } break; case DWC3_GSI_EVT_BUF_CLEAR: dev_dbg(mdwc->dev, "DWC3_GSI_EVT_BUF_CLEAR\n"); for (i = 0; i < mdwc->num_gsi_event_buffers; i++) { reg = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT((i+1))); reg &= DWC3_GEVNTCOUNT_MASK; dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT((i+1)), reg); dbg_log_string("remaining EVNTCOUNT(%d)=%d", i+1, reg); } break; case DWC3_GSI_EVT_BUF_FREE: dev_dbg(mdwc->dev, "DWC3_GSI_EVT_BUF_FREE\n"); if (!mdwc->gsi_ev_buff) Loading drivers/usb/dwc3/ep0.c +3 −0 Original line number Diff line number Diff line Loading @@ -306,6 +306,9 @@ void dwc3_ep0_out_start(struct dwc3 *dwc) complete(&dwc->ep0_in_setup); if (!dwc->softconnect) return; dep = dwc->eps[0]; dwc3_ep0_prepare_one_trb(dep, dwc->ep0_trb_addr, 8, DWC3_TRBCTL_CONTROL_SETUP, false); Loading drivers/usb/dwc3/gadget.c +10 −0 Original line number Diff line number Diff line Loading @@ -2098,6 +2098,16 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) */ dwc3_stop_active_transfers(dwc); /* * Clear out any pending events (i.e. End Transfer Command * Complete) before clearing run/stop */ reg1 = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0)); reg1 &= DWC3_GEVNTCOUNT_MASK; dbg_log_string("remaining EVNTCOUNT(0)=%d", reg1); dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), reg1); dwc3_notify_event(dwc, DWC3_GSI_EVT_BUF_CLEAR, 0); reg &= ~DWC3_DCTL_RUN_STOP; if (dwc->has_hibernation && !suspend) Loading Loading
drivers/usb/dwc3/core.h +3 −2 Original line number Diff line number Diff line Loading @@ -855,8 +855,9 @@ struct dwc3_scratchpad_array { #define DWC3_GSI_EVT_BUF_ALLOC 10 #define DWC3_GSI_EVT_BUF_SETUP 11 #define DWC3_GSI_EVT_BUF_CLEANUP 12 #define DWC3_GSI_EVT_BUF_FREE 13 #define DWC3_CONTROLLER_NOTIFY_CLEAR_DB 14 #define DWC3_GSI_EVT_BUF_CLEAR 13 #define DWC3_GSI_EVT_BUF_FREE 14 #define DWC3_CONTROLLER_NOTIFY_CLEAR_DB 15 #define MAX_INTR_STATS 10 Loading
drivers/usb/dwc3/dwc3-msm.c +9 −0 Original line number Diff line number Diff line Loading @@ -2002,6 +2002,15 @@ static void dwc3_msm_notify_event(struct dwc3 *dwc, unsigned int event, dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT((i+1)), 0); } break; case DWC3_GSI_EVT_BUF_CLEAR: dev_dbg(mdwc->dev, "DWC3_GSI_EVT_BUF_CLEAR\n"); for (i = 0; i < mdwc->num_gsi_event_buffers; i++) { reg = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT((i+1))); reg &= DWC3_GEVNTCOUNT_MASK; dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT((i+1)), reg); dbg_log_string("remaining EVNTCOUNT(%d)=%d", i+1, reg); } break; case DWC3_GSI_EVT_BUF_FREE: dev_dbg(mdwc->dev, "DWC3_GSI_EVT_BUF_FREE\n"); if (!mdwc->gsi_ev_buff) Loading
drivers/usb/dwc3/ep0.c +3 −0 Original line number Diff line number Diff line Loading @@ -306,6 +306,9 @@ void dwc3_ep0_out_start(struct dwc3 *dwc) complete(&dwc->ep0_in_setup); if (!dwc->softconnect) return; dep = dwc->eps[0]; dwc3_ep0_prepare_one_trb(dep, dwc->ep0_trb_addr, 8, DWC3_TRBCTL_CONTROL_SETUP, false); Loading
drivers/usb/dwc3/gadget.c +10 −0 Original line number Diff line number Diff line Loading @@ -2098,6 +2098,16 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) */ dwc3_stop_active_transfers(dwc); /* * Clear out any pending events (i.e. End Transfer Command * Complete) before clearing run/stop */ reg1 = dwc3_readl(dwc->regs, DWC3_GEVNTCOUNT(0)); reg1 &= DWC3_GEVNTCOUNT_MASK; dbg_log_string("remaining EVNTCOUNT(0)=%d", reg1); dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), reg1); dwc3_notify_event(dwc, DWC3_GSI_EVT_BUF_CLEAR, 0); reg &= ~DWC3_DCTL_RUN_STOP; if (dwc->has_hibernation && !suspend) Loading