summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZixun LI <[email protected]>2026-07-05 12:47:30 +0200
committerGitHub <[email protected]>2026-07-05 12:47:30 +0200
commit7bc2e7d129eac0b83ef29b8f6b68defd10613ad5 (patch)
treeeb558842c024c8b73718c10cf434ba2f719e6152
parent41b8ad203990da258e98531c6bf77102c7cc7c68 (diff)
parent742ca33c8a727e9aa92f8a78526b53a8dd45a304 (diff)
Merge pull request #3755 from Old-Ding/codex/usbtmc-notification-idle-xfer
Fix USBTMC notification endpoint claim
-rw-r--r--src/class/usbtmc/usbtmc_device.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/class/usbtmc/usbtmc_device.c b/src/class/usbtmc/usbtmc_device.c
index ae1d5fa9a..eebc34cfe 100644
--- a/src/class/usbtmc/usbtmc_device.c
+++ b/src/class/usbtmc/usbtmc_device.c
@@ -252,9 +252,12 @@ bool tud_usbtmc_transmit_notification_data(const void *data, size_t len) {
TU_ASSERT(len > 0);
TU_ASSERT(usbtmc_state.ep_int_in != 0);
#endif
- TU_VERIFY(usbd_edpt_busy(usbtmc_state.rhport, usbtmc_state.ep_int_in));
+ TU_VERIFY(usbd_edpt_claim(usbtmc_state.rhport, usbtmc_state.ep_int_in));
- TU_VERIFY(tu_memcpy_s(usbtmc_epbuf.epnotif, CFG_TUD_USBTMC_INT_EP_SIZE, data, len) == 0);
+ if (tu_memcpy_s(usbtmc_epbuf.epnotif, CFG_TUD_USBTMC_INT_EP_SIZE, data, len) != 0) {
+ usbd_edpt_release(usbtmc_state.rhport, usbtmc_state.ep_int_in);
+ return false;
+ }
TU_VERIFY(usbd_edpt_xfer(usbtmc_state.rhport, usbtmc_state.ep_int_in, usbtmc_epbuf.epnotif, (uint16_t) len, false));
return true;
}