diff options
| author | sakumisu <[email protected]> | 2022-11-29 22:43:28 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2022-11-29 22:43:45 +0800 |
| commit | d0ab9d7f89d1ccfa4fcecf8a9829f9771ad22f96 (patch) | |
| tree | 6a406c477734ce7f29f0dd52e0b62a8c9c9a1f3a | |
| parent | e3d47979285801aba43919d2f7b29593b83f6036 (diff) | |
halt dma when calls AHBERR
| -rw-r--r-- | port/dwc2/usb_hc_dwc2.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/port/dwc2/usb_hc_dwc2.c b/port/dwc2/usb_hc_dwc2.c index ef91f024..116649a1 100644 --- a/port/dwc2/usb_hc_dwc2.c +++ b/port/dwc2/usb_hc_dwc2.c @@ -887,6 +887,7 @@ static void dwc2_inchan_irq_handler(uint8_t ch_num) CLEAR_HC_INT(ch_num, USB_OTG_HCINT_NAK); } else if ((chan_intstatus & USB_OTG_HCINT_AHBERR) == USB_OTG_HCINT_AHBERR) { USB_UNMASK_HALT_HC_INT(ch_num); + dwc2_halt(ch_num); urb->errorcode = -EIO; CLEAR_HC_INT(ch_num, USB_OTG_HCINT_AHBERR); } else if ((chan_intstatus & USB_OTG_HCINT_STALL) == USB_OTG_HCINT_STALL) { @@ -999,6 +1000,7 @@ static void dwc2_outchan_irq_handler(uint8_t ch_num) USB_UNMASK_HALT_HC_INT(ch_num); } else if ((chan_intstatus & USB_OTG_HCINT_AHBERR) == USB_OTG_HCINT_AHBERR) { USB_UNMASK_HALT_HC_INT(ch_num); + dwc2_halt(ch_num); urb->errorcode = -EIO; CLEAR_HC_INT(ch_num, USB_OTG_HCINT_AHBERR); } else if ((chan_intstatus & USB_OTG_HCINT_STALL) == USB_OTG_HCINT_STALL) { |
