Loading drivers/usb/dwc3/core.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -722,6 +722,7 @@ struct dwc3_scratchpad_array { * @hwparams: copy of hwparams registers * @hwparams: copy of hwparams registers * @root: debugfs root folder pointer * @root: debugfs root folder pointer * @tx_fifo_size: Available RAM size for TX fifo allocation * @tx_fifo_size: Available RAM size for TX fifo allocation * @err_evt_seen: previous event in queue was erratic error */ */ struct dwc3 { struct dwc3 { struct usb_ctrlrequest *ctrl_req; struct usb_ctrlrequest *ctrl_req; Loading Loading @@ -827,6 +828,7 @@ struct dwc3 { bool nominal_elastic_buffer; bool nominal_elastic_buffer; bool core_reset_after_phy_init; bool core_reset_after_phy_init; bool err_evt_seen; }; }; /* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */ Loading drivers/usb/dwc3/gadget.c +7 −3 Original line number Original line Diff line number Diff line Loading @@ -2868,9 +2868,11 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, dev_vdbg(dwc->dev, "Start of Periodic Frame\n"); dev_vdbg(dwc->dev, "Start of Periodic Frame\n"); break; break; case DWC3_DEVICE_EVENT_ERRATIC_ERROR: case DWC3_DEVICE_EVENT_ERRATIC_ERROR: if (!dwc->err_evt_seen) { dbg_event(0xFF, "ERROR", 0); dbg_event(0xFF, "ERROR", 0); dev_vdbg(dwc->dev, "Erratic Error\n"); dev_vdbg(dwc->dev, "Erratic Error\n"); dwc3_dump_reg_info(dwc); dwc3_dump_reg_info(dwc); } break; break; case DWC3_DEVICE_EVENT_CMD_CMPL: case DWC3_DEVICE_EVENT_CMD_CMPL: dev_vdbg(dwc->dev, "Command Complete\n"); dev_vdbg(dwc->dev, "Command Complete\n"); Loading Loading @@ -2910,6 +2912,8 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, default: default: dev_dbg(dwc->dev, "UNKNOWN IRQ %d\n", event->type); dev_dbg(dwc->dev, "UNKNOWN IRQ %d\n", event->type); } } dwc->err_evt_seen = (event->type == DWC3_DEVICE_EVENT_ERRATIC_ERROR); } } static void dwc3_process_event_entry(struct dwc3 *dwc, static void dwc3_process_event_entry(struct dwc3 *dwc, Loading Loading
drivers/usb/dwc3/core.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -722,6 +722,7 @@ struct dwc3_scratchpad_array { * @hwparams: copy of hwparams registers * @hwparams: copy of hwparams registers * @root: debugfs root folder pointer * @root: debugfs root folder pointer * @tx_fifo_size: Available RAM size for TX fifo allocation * @tx_fifo_size: Available RAM size for TX fifo allocation * @err_evt_seen: previous event in queue was erratic error */ */ struct dwc3 { struct dwc3 { struct usb_ctrlrequest *ctrl_req; struct usb_ctrlrequest *ctrl_req; Loading Loading @@ -827,6 +828,7 @@ struct dwc3 { bool nominal_elastic_buffer; bool nominal_elastic_buffer; bool core_reset_after_phy_init; bool core_reset_after_phy_init; bool err_evt_seen; }; }; /* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */ Loading
drivers/usb/dwc3/gadget.c +7 −3 Original line number Original line Diff line number Diff line Loading @@ -2868,9 +2868,11 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, dev_vdbg(dwc->dev, "Start of Periodic Frame\n"); dev_vdbg(dwc->dev, "Start of Periodic Frame\n"); break; break; case DWC3_DEVICE_EVENT_ERRATIC_ERROR: case DWC3_DEVICE_EVENT_ERRATIC_ERROR: if (!dwc->err_evt_seen) { dbg_event(0xFF, "ERROR", 0); dbg_event(0xFF, "ERROR", 0); dev_vdbg(dwc->dev, "Erratic Error\n"); dev_vdbg(dwc->dev, "Erratic Error\n"); dwc3_dump_reg_info(dwc); dwc3_dump_reg_info(dwc); } break; break; case DWC3_DEVICE_EVENT_CMD_CMPL: case DWC3_DEVICE_EVENT_CMD_CMPL: dev_vdbg(dwc->dev, "Command Complete\n"); dev_vdbg(dwc->dev, "Command Complete\n"); Loading Loading @@ -2910,6 +2912,8 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, default: default: dev_dbg(dwc->dev, "UNKNOWN IRQ %d\n", event->type); dev_dbg(dwc->dev, "UNKNOWN IRQ %d\n", event->type); } } dwc->err_evt_seen = (event->type == DWC3_DEVICE_EVENT_ERRATIC_ERROR); } } static void dwc3_process_event_entry(struct dwc3 *dwc, static void dwc3_process_event_entry(struct dwc3 *dwc, Loading