mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-27 11:37:17 +00:00
fix(RA_hcd): STALL status can be also 3 not only 2
This commit is contained in:
parent
f1e006d09b
commit
1923b1845d
src
@ -791,7 +791,7 @@ bool usbh_edpt_xfer_with_callback(uint8_t dev_addr, uint8_t ep_addr, uint8_t * b
|
||||
uint8_t const dir = tu_edpt_dir(ep_addr);
|
||||
tu_edpt_state_t* ep_state = &dev->ep_status[epnum][dir];
|
||||
|
||||
TU_LOG_USBH(" Queue EP %02X with %u bytes ... ", ep_addr, total_bytes);
|
||||
TU_LOG_USBH(" Queue EP %02X with %u bytes ... \r\n", ep_addr, total_bytes);
|
||||
|
||||
// Attempt to transfer on a busy endpoint, sound like an race condition !
|
||||
TU_ASSERT(ep_state->busy == 0);
|
||||
|
@ -116,7 +116,7 @@ static unsigned find_pipe(unsigned xfer)
|
||||
for (int i = 3; i <= 5; ++i) {
|
||||
if (0 == _hcd.pipe[i].ep) return i;
|
||||
}
|
||||
for (int i = 1; i <= 1; ++i) {
|
||||
for (int i = 1; i <= 2; ++i) {
|
||||
if (0 == _hcd.pipe[i].ep) return i;
|
||||
}
|
||||
break;
|
||||
@ -413,6 +413,7 @@ static void process_pipe_nrdy(uint8_t rhport, unsigned num)
|
||||
switch (*ctr & RUSB2_PIPE_CTR_PID_Msk) {
|
||||
default: return;
|
||||
case RUSB2_PIPE_CTR_PID_STALL: result = XFER_RESULT_STALLED; break;
|
||||
case RUSB2_PIPE_CTR_PID_STALL2: result = XFER_RESULT_STALLED; break;
|
||||
case RUSB2_PIPE_CTR_PID_NAK: result = XFER_RESULT_FAILED; break;
|
||||
}
|
||||
pipe_state_t *pipe = &_hcd.pipe[num];
|
||||
@ -586,7 +587,7 @@ void hcd_device_close(uint8_t rhport, uint8_t dev_addr)
|
||||
uint8_t *ep = &_hcd.ep[dev_addr - 1][0][0];
|
||||
for (int i = 0; i < 2 * 15; ++i, ++ep) {
|
||||
unsigned num = *ep;
|
||||
if (!num || dev_addr != _hcd.pipe[num].dev) continue;
|
||||
if (!num || (dev_addr != _hcd.pipe[num].dev)) continue;
|
||||
|
||||
ctr = (uint16_t volatile*)&RUSB2->PIPE_CTR[num - 1];
|
||||
*ctr = 0;
|
||||
|
@ -1568,6 +1568,7 @@ TU_ATTR_BIT_FIELD_ORDER_END
|
||||
#define RUSB2_PIPE_CTR_PID_NAK (0U << RUSB2_PIPE_CTR_PID_Pos) /* NAK response */
|
||||
#define RUSB2_PIPE_CTR_PID_BUF (1U << RUSB2_PIPE_CTR_PID_Pos) /* BUF response (depends buffer state) */
|
||||
#define RUSB2_PIPE_CTR_PID_STALL (2U << RUSB2_PIPE_CTR_PID_Pos) /* STALL response */
|
||||
#define RUSB2_PIPE_CTR_PID_STALL2 (3U << RUSB2_PIPE_CTR_PID_Pos) /* Also STALL response */
|
||||
|
||||
#define RUSB2_DVSTCTR0_RHST_LS (1U << RUSB2_DVSTCTR0_RHST_Pos) /* Low-speed connection */
|
||||
#define RUSB2_DVSTCTR0_RHST_FS (2U << RUSB2_DVSTCTR0_RHST_Pos) /* Full-speed connection */
|
||||
|
Loading…
x
Reference in New Issue
Block a user