summaryrefslogtreecommitdiff
path: root/tinyusb
diff options
context:
space:
mode:
authorhathach <[email protected]>2014-03-13 17:06:18 +0700
committerhathach <[email protected]>2014-03-13 17:06:18 +0700
commit8fbafc460cceb6943179c0b0613d619bb9511b3c (patch)
tree90bfc29c4924923c2bf1cfb19ec0372f26ab7cc0 /tinyusb
parent1940f9f0f79a98a35c0cbbdd72125f729770af61 (diff)
fix a problem with dcd 13uxx dcd_pipe_clear_stall that should clear toggle for buffer0 (instead of active buffer)
as the next transfer is always forced to be happened on buffer0
Diffstat (limited to 'tinyusb')
-rw-r--r--tinyusb/device/dcd_lpc_11uxx_13uxx.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tinyusb/device/dcd_lpc_11uxx_13uxx.c b/tinyusb/device/dcd_lpc_11uxx_13uxx.c
index 4eef8f7dd..51719af6b 100644
--- a/tinyusb/device/dcd_lpc_11uxx_13uxx.c
+++ b/tinyusb/device/dcd_lpc_11uxx_13uxx.c
@@ -423,12 +423,13 @@ bool dcd_pipe_is_stalled(endpoint_handle_t edpt_hdl)
tusb_error_t dcd_pipe_clear_stall(uint8_t coreid, uint8_t edpt_addr)
{
uint8_t ep_id = edpt_addr2phy(edpt_addr);
- uint8_t active_buffer = BIT_TEST_(LPC_USB->EPINUSE, ep_id) ? 1 : 0;
+// uint8_t active_buffer = BIT_TEST_(LPC_USB->EPINUSE, ep_id) ? 1 : 0;
dcd_data.qhd[ep_id][0].stall = dcd_data.qhd[ep_id][1].stall = 0;
- dcd_data.qhd[ep_id][active_buffer].toggle_reset = 1;
- dcd_data.qhd[ep_id][active_buffer].feedback_toggle = 0;
+ // since the next transfer always take place on buffer0 --> clear buffer0 toggle
+ dcd_data.qhd[ep_id][0].toggle_reset = 1;
+ dcd_data.qhd[ep_id][0].feedback_toggle = 0;
//------------- clear stall must carry on any previously queued transfer -------------//
if ( dcd_data.next_td[ep_id].total_bytes != 0 )