summaryrefslogtreecommitdiff
path: root/src/device
diff options
context:
space:
mode:
authorNathan Conrad <[email protected]>2020-04-16 09:57:56 -0400
committerNathan Conrad <[email protected]>2020-04-16 09:59:40 -0400
commit2994d100cd6198a4c90dce667f52fde07fe4a073 (patch)
tree354884f06433785c69a023425afbb9a44817fb04 /src/device
parentb0270f499b7f0cc2f5589a274105cd4cac87f1a7 (diff)
Remove transfer queue filtering. May need to be revisited later.
Diffstat (limited to 'src/device')
-rw-r--r--src/device/usbd.c47
1 files changed, 2 insertions, 45 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 75c0a3720..55a9ccebc 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;
}