summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasterPhi <[email protected]>2021-07-03 10:54:20 +0200
committerMasterPhi <[email protected]>2021-07-04 15:46:12 +0200
commit61fd0e2c1cd60921ea3cc6de01534a1e512aff12 (patch)
tree25009c92cdc582fc01a231eb025174f64ecee072
parent090859bf424e910002fff7dc9195d38d6c22ae1f (diff)
Delay tud_audio_set_itf_cb call with feedback EP.
-rw-r--r--src/class/audio/audio_device.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/class/audio/audio_device.c b/src/class/audio/audio_device.c
index cc07d5e19..61884f867 100644
--- a/src/class/audio/audio_device.c
+++ b/src/class/audio/audio_device.c
@@ -1619,9 +1619,17 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
TU_ASSERT( audio->n_ff_used_rx <= audio->n_rx_supp_ff );
#endif
#endif
+
+#if CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
+ // In case of asynchronous EP, call Cb after ep_fb is set
+ if (((tusb_desc_endpoint_t const *) p_desc)->bmAttributes.sync != 0x01)
+ {
+ if (tud_audio_set_itf_cb) TU_VERIFY(tud_audio_set_itf_cb(rhport, p_request));
+ }
+#else
// Invoke callback
if (tud_audio_set_itf_cb) TU_VERIFY(tud_audio_set_itf_cb(rhport, p_request));
-
+#endif
// Prepare for incoming data
#if USE_LINEAR_BUFFER_RX
TU_VERIFY(usbd_edpt_xfer(rhport, audio->ep_out, audio->lin_buf_out, audio->ep_out_sz), false);