diff --git a/drivers/usb/dwc_otg_310/dwc_otg_hcd.c b/drivers/usb/dwc_otg_310/dwc_otg_hcd.c index 01ef21b8ec62..b4db2e44342a 100644 --- a/drivers/usb/dwc_otg_310/dwc_otg_hcd.c +++ b/drivers/usb/dwc_otg_310/dwc_otg_hcd.c @@ -1240,6 +1240,7 @@ static int assign_and_init_hc(dwc_otg_hcd_t *hcd, dwc_otg_qh_t *qh) uint32_t buf_size; if (hc->ep_type != DWC_OTG_EP_TYPE_ISOC) { buf_size = hcd->core_if->core_params->max_transfer_size; + buf_size = buf_size > 65536 ? 65536 : buf_size; } else { buf_size = 4096; } diff --git a/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c b/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c index 8816160156e6..a291ff127eba 100644 --- a/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c +++ b/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c @@ -69,6 +69,7 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t *hcd, dwc_otg_qh_t *qh) buf_size = 4096; } else { buf_size = hcd->core_if->core_params->max_transfer_size; + buf_size = buf_size > 65536 ? 65536 : buf_size; } DWC_DEV_DMA_FREE(buf_size, qh->dw_align_buf, qh->dw_align_buf_dma);