diff options
| author | Zixun LI <[email protected]> | 2026-07-05 12:47:30 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-07-05 12:47:30 +0200 |
| commit | 7bc2e7d129eac0b83ef29b8f6b68defd10613ad5 (patch) | |
| tree | eb558842c024c8b73718c10cf434ba2f719e6152 | |
| parent | 41b8ad203990da258e98531c6bf77102c7cc7c68 (diff) | |
| parent | 742ca33c8a727e9aa92f8a78526b53a8dd45a304 (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.c | 7 |
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; } |
