summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2021-08-12 15:46:33 +0700
committerhathach <[email protected]>2021-08-12 15:54:04 +0700
commit17ef9f4843250e8c6b6b1fde53ed6a54a4f20470 (patch)
treec8d3c4fe68627598c39bfc528289611f2d3fd02e /src
parent4ad47d9e264a7119f5429a045a185ad0d448d998 (diff)
add ready check for edpt claim
Diffstat (limited to 'src')
-rw-r--r--src/device/usbd.c5
-rw-r--r--src/portable/raspberrypi/rp2040/dcd_rp2040.c4
2 files changed, 5 insertions, 4 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index a30eab217..bef7725b5 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -1191,6 +1191,8 @@ bool usbd_edpt_claim(uint8_t rhport, uint8_t ep_addr)
{
(void) rhport;
+ TU_VERIFY(tud_ready());
+
uint8_t const epnum = tu_edpt_number(ep_addr);
uint8_t const dir = tu_edpt_dir(ep_addr);
@@ -1244,6 +1246,9 @@ bool usbd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t * buffer, uint16_t
uint8_t const epnum = tu_edpt_number(ep_addr);
uint8_t const dir = tu_edpt_dir(ep_addr);
+ // TODO skip ready() check for now since enumeration also use this API
+ // TU_VERIFY(tud_ready());
+
TU_LOG2(" Queue EP %02X with %u bytes ...\r\n", ep_addr, total_bytes);
// Attempt to transfer on a busy endpoint, sound like an race condition !
diff --git a/src/portable/raspberrypi/rp2040/dcd_rp2040.c b/src/portable/raspberrypi/rp2040/dcd_rp2040.c
index 63d8278da..49284e92e 100644
--- a/src/portable/raspberrypi/rp2040/dcd_rp2040.c
+++ b/src/portable/raspberrypi/rp2040/dcd_rp2040.c
@@ -284,9 +284,6 @@ static void dcd_rp2040_irq(void)
#endif
}
-#if 1
- // TODO Enable SUSPEND & RESUME interrupt and test later on with/without VBUS detection
-
/* Note from pico datasheet 4.1.2.6.4 (v1.2)
* If you enable the suspend interrupt, it is likely you will see a suspend interrupt when
* the device is first connected but the bus is idle. The bus can be idle for a few ms before
@@ -308,7 +305,6 @@ static void dcd_rp2040_irq(void)
dcd_event_bus_signal(0, DCD_EVENT_RESUME, true);
usb_hw_clear->sie_status = USB_SIE_STATUS_RESUME_BITS;
}
-#endif
if (status ^ handled)
{