Skip to content

Commit f40a655

Browse files
committed
update tinyusb to commit hathach/tinyusb@4a2e424
1 parent 08c6ec9 commit f40a655

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+3112
-392
lines changed

src/class/audio/audio_device.c

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666

6767
// Use ring buffer if it's available, some MCUs need extra RAM requirements
6868
#ifndef TUD_AUDIO_PREFER_RING_BUFFER
69-
#if CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT10XX
69+
#if CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT
7070
#define TUD_AUDIO_PREFER_RING_BUFFER 0
7171
#else
7272
#define TUD_AUDIO_PREFER_RING_BUFFER 1
@@ -102,7 +102,7 @@
102102
CFG_TUSB_MCU == OPT_MCU_GD32VF103 || \
103103
CFG_TUSB_MCU == OPT_MCU_LPC18XX || \
104104
CFG_TUSB_MCU == OPT_MCU_LPC43XX || \
105-
CFG_TUSB_MCU == OPT_MCU_MIMXRT10XX || \
105+
CFG_TUSB_MCU == OPT_MCU_MIMXRT || \
106106
CFG_TUSB_MCU == OPT_MCU_MSP432E4
107107
#if TUD_AUDIO_PREFER_RING_BUFFER
108108
#define USE_LINEAR_BUFFER 0
@@ -341,7 +341,7 @@ typedef struct
341341

342342
// Audio control interrupt buffer - no FIFO - 6 Bytes according to UAC 2 specification (p. 74)
343343
#if CFG_TUD_AUDIO_INT_CTR_EPSIZE_IN
344-
CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t ep_int_ctr_buf[CFG_TUD_AUDIO_INT_CTR_EP_IN_SW_BUFFER_SIZE];
344+
CFG_TUSB_MEM_ALIGN uint8_t ep_int_ctr_buf[CFG_TUD_AUDIO_INT_CTR_EP_IN_SW_BUFFER_SIZE];
345345
#endif
346346

347347
// Decoding parameters - parameters are set when alternate AS interface is set by host
@@ -447,6 +447,10 @@ static inline uint8_t tu_desc_subtype(void const* desc)
447447
}
448448
#endif
449449

450+
#if CFG_TUD_AUDIO_ENABLE_EP_OUT && CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
451+
static bool set_fb_params_freq(audiod_function_t* audio, uint32_t sample_freq, uint32_t mclk_freq);
452+
#endif
453+
450454
bool tud_audio_n_mounted(uint8_t func_id)
451455
{
452456
TU_VERIFY(func_id < CFG_TUD_AUDIO);
@@ -537,7 +541,7 @@ tu_fifo_t* tud_audio_n_get_rx_support_ff(uint8_t func_id, uint8_t ff_idx)
537541

538542
static bool audiod_rx_done_cb(uint8_t rhport, audiod_function_t* audio, uint16_t n_bytes_received)
539543
{
540-
uint8_t idxItf;
544+
uint8_t idxItf = 0;
541545
uint8_t const *dummy2;
542546
uint8_t idx_audio_fct = 0;
543547

@@ -548,7 +552,10 @@ static bool audiod_rx_done_cb(uint8_t rhport, audiod_function_t* audio, uint16_t
548552
}
549553

550554
// Call a weak callback here - a possibility for user to get informed an audio packet was received and data gets now loaded into EP FIFO (or decoded into support RX software FIFO)
551-
if (tud_audio_rx_done_pre_read_cb) TU_VERIFY(tud_audio_rx_done_pre_read_cb(rhport, n_bytes_received, idx_audio_fct, audio->ep_out, audio->alt_setting[idxItf]));
555+
if (tud_audio_rx_done_pre_read_cb)
556+
{
557+
TU_VERIFY(tud_audio_rx_done_pre_read_cb(rhport, n_bytes_received, idx_audio_fct, audio->ep_out, audio->alt_setting[idxItf]));
558+
}
552559

553560
#if CFG_TUD_AUDIO_ENABLE_DECODING && CFG_TUD_AUDIO_ENABLE_EP_OUT
554561

@@ -562,7 +569,7 @@ static bool audiod_rx_done_cb(uint8_t rhport, audiod_function_t* audio, uint16_t
562569

563570
case AUDIO_FORMAT_TYPE_I:
564571

565-
switch (audio->format_type_I_tx)
572+
switch (audio->format_type_I_rx)
566573
{
567574
case AUDIO_DATA_FORMAT_TYPE_I_PCM:
568575
TU_VERIFY(audiod_decode_type_I_pcm(rhport, audio, n_bytes_received));
@@ -602,7 +609,10 @@ static bool audiod_rx_done_cb(uint8_t rhport, audiod_function_t* audio, uint16_t
602609
#endif
603610

604611
// Call a weak callback here - a possibility for user to get informed decoding was completed
605-
if (tud_audio_rx_done_post_read_cb) TU_VERIFY(tud_audio_rx_done_post_read_cb(rhport, n_bytes_received, idx_audio_fct, audio->ep_out, audio->alt_setting[idxItf]));
612+
if (tud_audio_rx_done_post_read_cb)
613+
{
614+
TU_VERIFY(tud_audio_rx_done_post_read_cb(rhport, n_bytes_received, idx_audio_fct, audio->ep_out, audio->alt_setting[idxItf]));
615+
}
606616

607617
return true;
608618
}
@@ -1619,7 +1629,7 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
16191629

16201630
// Reconfigure size of support FIFOs - this is necessary to avoid samples to get split in case of a wrap
16211631
#if CFG_TUD_AUDIO_ENABLE_TYPE_I_ENCODING
1622-
const uint16_t active_fifo_depth = (audio->tx_supp_ff_sz_max / audio->n_bytes_per_sampe_tx) * audio->n_bytes_per_sampe_tx;
1632+
const uint16_t active_fifo_depth = (uint16_t) ((audio->tx_supp_ff_sz_max / audio->n_bytes_per_sampe_tx) * audio->n_bytes_per_sampe_tx);
16231633
for (uint8_t cnt = 0; cnt < audio->n_tx_supp_ff; cnt++)
16241634
{
16251635
tu_fifo_config(&audio->tx_supp_ff[cnt], audio->tx_supp_ff[cnt].buffer, active_fifo_depth, 1, true);

src/class/cdc/cdc_device.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ uint32_t tud_cdc_n_available(uint8_t itf)
145145
uint32_t tud_cdc_n_read(uint8_t itf, void* buffer, uint32_t bufsize)
146146
{
147147
cdcd_interface_t* p_cdc = &_cdcd_itf[itf];
148-
uint32_t num_read = tu_fifo_read_n(&p_cdc->rx_ff, buffer, bufsize);
148+
uint32_t num_read = tu_fifo_read_n(&p_cdc->rx_ff, buffer, (uint16_t) bufsize);
149149
_prep_out_transaction(p_cdc);
150150
return num_read;
151151
}
@@ -168,7 +168,7 @@ void tud_cdc_n_read_flush (uint8_t itf)
168168
uint32_t tud_cdc_n_write(uint8_t itf, void const* buffer, uint32_t bufsize)
169169
{
170170
cdcd_interface_t* p_cdc = &_cdcd_itf[itf];
171-
uint16_t ret = tu_fifo_write_n(&p_cdc->tx_ff, buffer, bufsize);
171+
uint16_t ret = tu_fifo_write_n(&p_cdc->tx_ff, buffer, (uint16_t) bufsize);
172172

173173
// flush if queue more than packet size
174174
if ( tu_fifo_count(&p_cdc->tx_ff) >= BULK_PACKET_SIZE )
@@ -435,7 +435,7 @@ bool cdcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_
435435
// Received new data
436436
if ( ep_addr == p_cdc->ep_out )
437437
{
438-
tu_fifo_write_n(&p_cdc->rx_ff, &p_cdc->epout_buf, xferred_bytes);
438+
tu_fifo_write_n(&p_cdc->rx_ff, &p_cdc->epout_buf, (uint16_t) xferred_bytes);
439439

440440
// Check for wanted char and invoke callback if needed
441441
if ( tud_cdc_rx_wanted_cb && (((signed char) p_cdc->wanted_char) != -1) )

src/class/dfu/dfu_device.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ uint16_t dfu_moded_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc,
167167
uint8_t alt_count = 0;
168168

169169
uint16_t drv_len = 0;
170+
TU_VERIFY(itf_desc->bInterfaceSubClass == TUD_DFU_APP_SUBCLASS && itf_desc->bInterfaceProtocol == DFU_PROTOCOL_DFU, 0);
171+
170172
while(itf_desc->bInterfaceSubClass == TUD_DFU_APP_SUBCLASS && itf_desc->bInterfaceProtocol == DFU_PROTOCOL_DFU)
171173
{
172174
TU_ASSERT(max_len > drv_len, 0);

src/class/hid/hid_device.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ bool tud_hid_n_ready(uint8_t instance)
8181
return tud_ready() && (ep_in != 0) && !usbd_edpt_busy(rhport, ep_in);
8282
}
8383

84-
bool tud_hid_n_report(uint8_t instance, uint8_t report_id, void const* report, uint8_t len)
84+
bool tud_hid_n_report(uint8_t instance, uint8_t report_id, void const* report, uint16_t len)
8585
{
8686
uint8_t const rhport = 0;
8787
hidd_interface_t * p_hid = &_hidd_itf[instance];
@@ -92,15 +92,15 @@ bool tud_hid_n_report(uint8_t instance, uint8_t report_id, void const* report, u
9292
// prepare data
9393
if (report_id)
9494
{
95-
len = tu_min8(len, CFG_TUD_HID_EP_BUFSIZE-1);
95+
len = tu_min16(len, CFG_TUD_HID_EP_BUFSIZE-1);
9696

9797
p_hid->epin_buf[0] = report_id;
9898
memcpy(p_hid->epin_buf+1, report, len);
9999
len++;
100100
}else
101101
{
102102
// If report id = 0, skip ID field
103-
len = tu_min8(len, CFG_TUD_HID_EP_BUFSIZE);
103+
len = tu_min16(len, CFG_TUD_HID_EP_BUFSIZE);
104104
memcpy(p_hid->epin_buf, report, len);
105105
}
106106

@@ -187,7 +187,8 @@ uint16_t hidd_open(uint8_t rhport, tusb_desc_interface_t const * desc_itf, uint1
187187
TU_VERIFY(TUSB_CLASS_HID == desc_itf->bInterfaceClass, 0);
188188

189189
// len = interface + hid + n*endpoints
190-
uint16_t const drv_len = sizeof(tusb_desc_interface_t) + sizeof(tusb_hid_descriptor_hid_t) + desc_itf->bNumEndpoints*sizeof(tusb_desc_endpoint_t);
190+
uint16_t const drv_len = (uint16_t) (sizeof(tusb_desc_interface_t) + sizeof(tusb_hid_descriptor_hid_t) +
191+
desc_itf->bNumEndpoints * sizeof(tusb_desc_endpoint_t));
191192
TU_ASSERT(max_len >= drv_len, 0);
192193

193194
// Find available interface
@@ -402,13 +403,13 @@ bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_
402403
{
403404
if (tud_hid_report_complete_cb)
404405
{
405-
tud_hid_report_complete_cb(instance, p_hid->epin_buf, (uint8_t) xferred_bytes);
406+
tud_hid_report_complete_cb(instance, p_hid->epin_buf, (/*uint16_t*/ uint8_t) xferred_bytes);
406407
}
407408
}
408409
// Received report
409410
else if (ep_addr == p_hid->ep_out)
410411
{
411-
tud_hid_set_report_cb(instance, 0, HID_REPORT_TYPE_INVALID, p_hid->epout_buf, xferred_bytes);
412+
tud_hid_set_report_cb(instance, 0, HID_REPORT_TYPE_INVALID, p_hid->epout_buf, (uint16_t) xferred_bytes);
412413
TU_ASSERT(usbd_edpt_xfer(rhport, p_hid->ep_out, p_hid->epout_buf, sizeof(p_hid->epout_buf)));
413414
}
414415

src/class/hid/hid_device.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ uint8_t tud_hid_n_interface_protocol(uint8_t instance);
6262
uint8_t tud_hid_n_get_protocol(uint8_t instance);
6363

6464
// Send report to host
65-
bool tud_hid_n_report(uint8_t instance, uint8_t report_id, void const* report, uint8_t len);
65+
bool tud_hid_n_report(uint8_t instance, uint8_t report_id, void const* report, uint16_t len);
6666

6767
// KEYBOARD: convenient helper to send keyboard report if application
6868
// use template layout report as defined by hid_keyboard_report_t
@@ -82,7 +82,7 @@ bool tud_hid_n_gamepad_report(uint8_t instance, uint8_t report_id, int8_t x, int
8282
static inline bool tud_hid_ready(void);
8383
static inline uint8_t tud_hid_interface_protocol(void);
8484
static inline uint8_t tud_hid_get_protocol(void);
85-
static inline bool tud_hid_report(uint8_t report_id, void const* report, uint8_t len);
85+
static inline bool tud_hid_report(uint8_t report_id, void const* report, uint16_t len);
8686
static inline bool tud_hid_keyboard_report(uint8_t report_id, uint8_t modifier, uint8_t keycode[6]);
8787
static inline bool tud_hid_mouse_report(uint8_t report_id, uint8_t buttons, int8_t x, int8_t y, int8_t vertical, int8_t horizontal);
8888
static inline bool tud_hid_gamepad_report(uint8_t report_id, int8_t x, int8_t y, int8_t z, int8_t rz, int8_t rx, int8_t ry, uint8_t hat, uint32_t buttons);
@@ -116,7 +116,7 @@ TU_ATTR_WEAK bool tud_hid_set_idle_cb(uint8_t instance, uint8_t idle_rate);
116116
// Invoked when sent REPORT successfully to host
117117
// Application can use this to send the next report
118118
// Note: For composite reports, report[0] is report ID
119-
TU_ATTR_WEAK void tud_hid_report_complete_cb(uint8_t instance, uint8_t const* report, uint8_t len);
119+
TU_ATTR_WEAK void tud_hid_report_complete_cb(uint8_t instance, uint8_t const* report, /*uint16_t*/ uint8_t len );
120120

121121

122122
//--------------------------------------------------------------------+
@@ -137,7 +137,7 @@ static inline uint8_t tud_hid_get_protocol(void)
137137
return tud_hid_n_get_protocol(0);
138138
}
139139

140-
static inline bool tud_hid_report(uint8_t report_id, void const* report, uint8_t len)
140+
static inline bool tud_hid_report(uint8_t report_id, void const* report, uint16_t len)
141141
{
142142
return tud_hid_n_report(0, report_id, report, len);
143143
}

src/class/hid/hid_host.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,10 @@ bool hidh_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t result, uint3
295295
{
296296
TU_LOG2(" Get Report callback (%u, %u)\r\n", dev_addr, instance);
297297
TU_LOG3_MEM(hid_itf->epin_buf, xferred_bytes, 2);
298-
tuh_hid_report_received_cb(dev_addr, instance, hid_itf->epin_buf, xferred_bytes);
298+
tuh_hid_report_received_cb(dev_addr, instance, hid_itf->epin_buf, (uint16_t) xferred_bytes);
299299
}else
300300
{
301-
if (tuh_hid_report_sent_cb) tuh_hid_report_sent_cb(dev_addr, instance, hid_itf->epout_buf, xferred_bytes);
301+
if (tuh_hid_report_sent_cb) tuh_hid_report_sent_cb(dev_addr, instance, hid_itf->epout_buf, (uint16_t) xferred_bytes);
302302
}
303303

304304
return true;
@@ -332,7 +332,8 @@ bool hidh_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *de
332332
TU_LOG2("[%u] HID opening Interface %u\r\n", dev_addr, desc_itf->bInterfaceNumber);
333333

334334
// len = interface + hid + n*endpoints
335-
uint16_t const drv_len = sizeof(tusb_desc_interface_t) + sizeof(tusb_hid_descriptor_hid_t) + desc_itf->bNumEndpoints*sizeof(tusb_desc_endpoint_t);
335+
uint16_t const drv_len = (uint16_t) (sizeof(tusb_desc_interface_t) + sizeof(tusb_hid_descriptor_hid_t) +
336+
desc_itf->bNumEndpoints * sizeof(tusb_desc_endpoint_t));
336337
TU_ASSERT(max_len >= drv_len);
337338

338339
uint8_t const *p_desc = (uint8_t const *) desc_itf;

src/class/midi/midi_device.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ uint32_t tud_midi_n_available(uint8_t itf, uint8_t cable_num)
127127
midid_stream_t const* stream = &midi->stream_read;
128128

129129
// when using with packet API stream total & index are both zero
130-
return tu_fifo_count(&midi->rx_ff) + (stream->total - stream->index);
130+
return tu_fifo_count(&midi->rx_ff) + (uint8_t) (stream->total - stream->index);
131131
}
132132

133133
uint32_t tud_midi_n_stream_read(uint8_t itf, uint8_t cable_num, void* buffer, uint32_t bufsize)
@@ -179,7 +179,7 @@ uint32_t tud_midi_n_stream_read(uint8_t itf, uint8_t cable_num, void* buffer, ui
179179
}
180180

181181
// Copy data up to bufsize
182-
uint32_t const count = tu_min32(stream->total - stream->index, bufsize);
182+
uint8_t const count = (uint8_t) tu_min32(stream->total - stream->index, bufsize);
183183

184184
// Skip the header (1st byte) in the buffer
185185
memcpy(buf8, stream->buffer + 1 + stream->index, count);
@@ -276,13 +276,13 @@ uint32_t tud_midi_n_stream_write(uint8_t itf, uint8_t cable_num, uint8_t const*
276276
else if ( (msg >= 0x8 && msg <= 0xB) || msg == 0xE )
277277
{
278278
// Channel Voice Messages
279-
stream->buffer[0] = (cable_num << 4) | msg;
279+
stream->buffer[0] = (uint8_t) ((cable_num << 4) | msg);
280280
stream->total = 4;
281281
}
282282
else if ( msg == 0xC || msg == 0xD)
283283
{
284284
// Channel Voice Messages, two-byte variants (Program Change and Channel Pressure)
285-
stream->buffer[0] = (cable_num << 4) | msg;
285+
stream->buffer[0] = (uint8_t) ((cable_num << 4) | msg);
286286
stream->total = 3;
287287
}
288288
else if ( msg == 0xf )
@@ -312,7 +312,7 @@ uint32_t tud_midi_n_stream_write(uint8_t itf, uint8_t cable_num, uint8_t const*
312312
else
313313
{
314314
// Pack individual bytes if we don't support packing them into words.
315-
stream->buffer[0] = cable_num << 4 | 0xf;
315+
stream->buffer[0] = (uint8_t) (cable_num << 4 | 0xf);
316316
stream->buffer[2] = 0;
317317
stream->buffer[3] = 0;
318318
stream->index = 2;
@@ -513,7 +513,7 @@ bool midid_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32
513513
// receive new data
514514
if ( ep_addr == p_midi->ep_out )
515515
{
516-
tu_fifo_write_n(&p_midi->rx_ff, p_midi->epout_buf, xferred_bytes);
516+
tu_fifo_write_n(&p_midi->rx_ff, p_midi->epout_buf, (uint16_t) xferred_bytes);
517517

518518
// invoke receive callback if available
519519
if (tud_midi_rx_cb) tud_midi_rx_cb(itf);

0 commit comments

Comments
 (0)