usbh:_ptxfe_int, use HPTXSTS, introduce usbhSyncrhonousTransfer

This commit is contained in:
Mark Harris 2017-09-14 14:41:28 +02:00
parent d2269527b7
commit f5f3c8ffdb
3 changed files with 19 additions and 8 deletions

View File

@ -301,6 +301,12 @@ extern "C" {
}
/* Synchronous API */
usbh_urbstatus_t usbhSyncrhonousTransfer(usbh_ep_t *ep,
void *data,
uint32_t len,
uint32_t *actual_len,
systime_t timeout);
usbh_urbstatus_t usbhBulkTransfer(usbh_ep_t *ep,
void *data,
uint32_t len,

View File

@ -1172,18 +1172,14 @@ static inline void _nptxfe_int(USBHDriver *host) {
}
static inline void _ptxfe_int(USBHDriver *host) {
// //TODO: implement
// (void)host;
// uinfo("PTXFE");
uint32_t rem;
stm32_otg_t *const otg = host->otg;
rem = _write_packet(&host->ep_active_lists[USBH_EPTYPE_CTRL],
otg->HNPTXSTS & HPTXSTS_PTXFSAVL_MASK);
rem = _write_packet(&host->ep_active_lists[USBH_EPTYPE_ISO],
otg->HPTXSTS & HPTXSTS_PTXFSAVL_MASK);
rem += _write_packet(&host->ep_active_lists[USBH_EPTYPE_INT],
otg->HNPTXSTS & HPTXSTS_PTXFSAVL_MASK);
otg->HPTXSTS & HPTXSTS_PTXFSAVL_MASK);
if (!rem)
otg->GINTMSK &= ~GINTMSK_PTXFEM;

View File

@ -335,10 +335,19 @@ usbh_urbstatus_t usbhBulkTransfer(usbh_ep_t *ep,
uint32_t len,
uint32_t *actual_len,
systime_t timeout) {
osalDbgAssert(ep->type == USBH_EPTYPE_BULK, "wrong ep");
return usbhSyncrhonousTransfer(ep,data,len,actual_len,timeout);
}
usbh_urbstatus_t usbhSyncrhonousTransfer(usbh_ep_t *ep,
void *data,
uint32_t len,
uint32_t *actual_len,
systime_t timeout) {
osalDbgCheck(ep != NULL);
osalDbgCheck((data != NULL) || (len == 0));
// osalDbgAssert(ep->type == USBH_EPTYPE_BULK, "wrong ep");
usbh_urb_t urb;
usbhURBObjectInit(&urb, ep, 0, 0, data, len);