summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReinhard Panhuber <[email protected]>2021-04-30 15:08:14 +0200
committerReinhard Panhuber <[email protected]>2021-04-30 15:08:14 +0200
commit14e2c004cd9db7d386beb2b91804f8e4dfea55f1 (patch)
tree85e92d435bfb2fc7a15d694de3c6c3e3f3e4d79e
parentde933c45bc627f930e1951ee606aa76784af47cf (diff)
Remove variable n in tu_fifo_get_read_info()
-rw-r--r--src/class/audio/audio_device.c10
-rw-r--r--src/common/tusb_fifo.c10
-rw-r--r--src/common/tusb_fifo.h2
3 files changed, 13 insertions, 9 deletions
diff --git a/src/class/audio/audio_device.c b/src/class/audio/audio_device.c
index f19f8f6fe..fc5402834 100644
--- a/src/class/audio/audio_device.c
+++ b/src/class/audio/audio_device.c
@@ -985,13 +985,19 @@ static uint16_t audiod_encode_type_I_pcm(uint8_t rhport, audiod_function_t* audi
{
dst = &audio->lin_buf_in[cnt_ff*audio->n_channels_per_ff_tx*audio->n_bytes_per_sampe_tx];
- tu_fifo_get_read_info(&audio->tx_supp_ff[cnt_ff], &info, nBytesPerFFToSend);
+ tu_fifo_get_read_info(&audio->tx_supp_ff[cnt_ff], &info);
- if (info.ptr_lin != 0)
+ // Limit up to desired length
+ info.len_lin = tu_min16(nBytesPerFFToSend, info.len_lin);
+
+ if (info.len_lin != 0)
{
src_end = info.ptr_lin + info.len_lin;
dst = audiod_interleaved_copy_bytes_fast_encode(nBytesToCopy, info.ptr_lin, src_end, dst, n_ff_used);
+ // Limit up to desired length
+ info.len_wrap = tu_min16(nBytesPerFFToSend - info.len_lin, info.len_wrap);
+
// Handle wrapped part of FIFO
if (info.len_wrap != 0)
{
diff --git a/src/common/tusb_fifo.c b/src/common/tusb_fifo.c
index 92e6bd02c..306b68653 100644
--- a/src/common/tusb_fifo.c
+++ b/src/common/tusb_fifo.c
@@ -896,7 +896,7 @@ void tu_fifo_advance_read_pointer(tu_fifo_t *f, uint16_t n)
Pointer to struct which holds the desired infos
*/
/******************************************************************************/
-void tu_fifo_get_read_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info, uint16_t n)
+void tu_fifo_get_read_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info)
{
// Operate on temporary values in case they change in between
uint16_t w = f->wr_idx, r = f->rd_idx;
@@ -923,8 +923,6 @@ void tu_fifo_get_read_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info, uint16_t n
return;
}
- if (cnt < n) n = cnt;
-
// Get relative pointers
w = get_relative_pointer(f, w);
r = get_relative_pointer(f, r);
@@ -935,14 +933,14 @@ void tu_fifo_get_read_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info, uint16_t n
// Check if there is a wrap around necessary
if (w > r) {
// Non wrapping case
- info->len_lin = tu_min16(n, w - r); // Limit to required length
+ info->len_lin = cnt;
info->len_wrap = 0;
info->ptr_wrap = NULL;
}
else
{
- info->len_lin = tu_min16(n, f->depth - r); // Also the case if FIFO was full
- info->len_wrap = n-info->len_lin;
+ info->len_lin = f->depth - r; // Also the case if FIFO was full
+ info->len_wrap = cnt - info->len_lin;
info->ptr_wrap = f->buffer;
}
diff --git a/src/common/tusb_fifo.h b/src/common/tusb_fifo.h
index 36f0d9302..c6bcdaec5 100644
--- a/src/common/tusb_fifo.h
+++ b/src/common/tusb_fifo.h
@@ -144,7 +144,7 @@ void tu_fifo_advance_read_pointer (tu_fifo_t *f, uint16_t n);
// tu_fifo_advance_read_pointer()/tu_fifo_advance_write_pointer and conduct a second read/write operation
// TODO - update comments
-void tu_fifo_get_read_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info, uint16_t n);
+void tu_fifo_get_read_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info);
void tu_fifo_get_write_info(tu_fifo_t *f, tu_fifo_buffer_info_t *info, uint16_t n);
static inline uint16_t tu_fifo_depth(tu_fifo_t* f)