From 2994d100cd6198a4c90dce667f52fde07fe4a073 Mon Sep 17 00:00:00 2001 From: Nathan Conrad Date: Thu, 16 Apr 2020 09:57:56 -0400 Subject: [PATCH] Remove transfer queue filtering. May need to be revisited later. --- src/device/usbd.c | 47 ++--------------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/src/device/usbd.c b/src/device/usbd.c index 75c0a372..55a9cceb 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -1064,50 +1064,10 @@ bool usbd_edpt_stalled(uint8_t rhport, uint8_t ep_addr) } /** - * Remove queued xfer complete messages from event queue, - * for a particular ep. + * usbd_edpt_close will disable an endpoint. * - * Must be called with interrupts enabled. - */ -static void usbd_abort_transfers(uint8_t rhport, uint8_t ep_addr) -{ - dcd_event_t ev_sentinal = - { - .event_id = DCD_EVENT_COUNT, ///< This is an invalid event ID. - }; - dcd_event_t event; - uint8_t const epnum = tu_edpt_number(ep_addr); - uint8_t const ep_dir = tu_edpt_dir(ep_addr); - - dcd_int_disable(rhport); - // Queue sentinal element - TU_ASSERT(osal_queue_send(_usbd_q, &ev_sentinal, true), /**/); - - TU_ASSERT(osal_queue_receive(_usbd_q, &event), /**/); - - while(event.event_id != DCD_EVENT_COUNT) - { - if((event.rhport == rhport) && (event.event_id == DCD_EVENT_XFER_COMPLETE) - && (event.xfer_complete.ep_addr == ep_addr)) - { - _usbd_dev.ep_status[epnum][ep_dir].busy = false; - } - else - { - TU_ASSERT(osal_queue_send(_usbd_q, &event, true), /**/); - } - TU_ASSERT(osal_queue_receive(_usbd_q, &event), /**/); - } - - dcd_int_enable(rhport); -} - -/** - * usbd_edpt_close will disable an endpoint, and clear all pending transfers - * through the particular endpoint. + * In progress transfers on this EP may be delivered after this call. * - * It must be called from the usb task (e.g. from the control request - * handler while handling SET_ALTERNATE), with interrupts enabled. */ void usbd_edpt_close(uint8_t rhport, uint8_t ep_addr) { @@ -1116,9 +1076,6 @@ void usbd_edpt_close(uint8_t rhport, uint8_t ep_addr) dcd_edpt_close(rhport, ep_addr); - /* Now, in progress transfers have to be expunged */ - usbd_abort_transfers(rhport, ep_addr); - return; }