From c64fa9f059727e77e44d775598694e6c6f01d11e Mon Sep 17 00:00:00 2001 From: MiraculousConch Date: Wed, 29 Nov 2017 14:25:45 +0800 Subject: [PATCH] [Components][Drivers][USB][Core]fix io request --- components/drivers/usb/usbdevice/core/core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/drivers/usb/usbdevice/core/core.c b/components/drivers/usb/usbdevice/core/core.c index 3c0d8f1e26..15ab31e9f7 100644 --- a/components/drivers/usb/usbdevice/core/core.c +++ b/components/drivers/usb/usbdevice/core/core.c @@ -840,6 +840,10 @@ static rt_err_t _data_notify(udevice_t device, struct ep_msg* ep_msg) { EP_HANDLER(ep, func, ep->request.size); } + else + { + dcd_ep_read_prepare(device->dcd, EP_ADDRESS(ep), ep->request.buffer, ep->request.remain_size > EP_MAXPACKET(ep) ? EP_MAXPACKET(ep) : ep->request.remain_size); + } } return RT_EOK; @@ -973,7 +977,7 @@ static rt_size_t rt_usbd_ep_read_prepare(udevice_t device, uep_t ep, void *buffe RT_ASSERT(buffer != RT_NULL); RT_ASSERT(ep->ep_desc != RT_NULL); - return dcd_ep_read_prepare(device->dcd, EP_ADDRESS(ep), buffer, size); + return dcd_ep_read_prepare(device->dcd, EP_ADDRESS(ep), buffer, size > EP_MAXPACKET(ep) ? EP_MAXPACKET(ep) : size); } /**