diff options
| author | MiraculousConch <[email protected]> | 2017-11-29 14:25:45 +0800 |
|---|---|---|
| committer | MiraculousConch <[email protected]> | 2017-11-29 14:25:45 +0800 |
| commit | c64fa9f059727e77e44d775598694e6c6f01d11e (patch) | |
| tree | 1fab5f154ab12cd82bc20dd7c9da20fd5f1a0b16 /components | |
| parent | 596d9b427b34452ec0df9323cb20cd0374f2c9e7 (diff) | |
[Components][Drivers][USB][Core]fix io request
Diffstat (limited to 'components')
| -rw-r--r-- | components/drivers/usb/usbdevice/core/core.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); } /** |
