summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-12-31 18:01:50 +0700
committerhathach <[email protected]>2025-12-31 22:18:05 +0700
commit111247337c3911691acd7d218362460a6c0a2572 (patch)
treed8fdce1152ddde443ee9a5c0d6e565b822f33a87 /src/common
parent9b5c7761cc6ea816cf35f330cb269030256be7ca (diff)
replace PMA buffer packet read/write by using tu_hwfifo API
Diffstat (limited to 'src/common')
-rw-r--r--src/common/tusb_fifo.c6
-rw-r--r--src/common/tusb_fifo.h4
2 files changed, 6 insertions, 4 deletions
diff --git a/src/common/tusb_fifo.c b/src/common/tusb_fifo.c
index a46bee955..8be137628 100644
--- a/src/common/tusb_fifo.c
+++ b/src/common/tusb_fifo.c
@@ -113,7 +113,7 @@ void tu_fifo_set_overwritable(tu_fifo_t *f, bool overwritable) {
// Pull & Push
// copy data to/from fifo without updating read/write pointers
//--------------------------------------------------------------------+
-#if CFG_TUD_EDPT_DEDICATED_HWFIFO
+#if CFG_TUSB_FIFO_HWFIFO_API
#if CFG_TUSB_FIFO_ACCESS_DATA_STRIDE == 4
#define stride_unaligned_write tu_unaligned_write32
#define stride_unaligned_read tu_unaligned_read32
@@ -183,7 +183,7 @@ static void ff_push_n(const tu_fifo_t *f, const void *app_buf, uint16_t n, uint1
uint16_t wrap_bytes = n - lin_bytes;
uint8_t *ff_buf = f->buffer + wr_ptr;
-#if CFG_TUD_EDPT_DEDICATED_HWFIFO
+#if CFG_TUSB_FIFO_HWFIFO_API
if (stride_mode) {
const volatile stride_item_t *hwfifo = (const volatile stride_item_t *)app_buf;
if (n <= lin_bytes) {
@@ -237,7 +237,7 @@ static void ff_pull_n(const tu_fifo_t *f, void *app_buf, uint16_t n, uint16_t rd
uint16_t wrap_bytes = n - lin_bytes; // only used if wrapped
const uint8_t *ff_buf = f->buffer + rd_ptr;
-#if CFG_TUD_EDPT_DEDICATED_HWFIFO
+#if CFG_TUSB_FIFO_HWFIFO_API
if (stride_mode) {
volatile stride_item_t *hwfifo = (volatile stride_item_t *)app_buf;
diff --git a/src/common/tusb_fifo.h b/src/common/tusb_fifo.h
index f28f54749..b17f6a1d6 100644
--- a/src/common/tusb_fifo.h
+++ b/src/common/tusb_fifo.h
@@ -41,6 +41,8 @@ extern "C" {
// mutex is only needed for RTOS. For OS None, we don't get preempted
#define CFG_FIFO_MUTEX OSAL_MUTEX_REQUIRED
+#define CFG_TUSB_FIFO_HWFIFO_API (CFG_TUD_EDPT_DEDICATED_HWFIFO)
+
#ifndef CFG_TUSB_FIFO_ACCESS_DATA_STRIDE
#define CFG_TUSB_FIFO_ACCESS_DATA_STRIDE 0
#endif
@@ -224,7 +226,6 @@ TU_ATTR_ALWAYS_INLINE static inline uint16_t tu_fifo_write_n(tu_fifo_t *f, const
// CFG_TUSB_FIFO_ACCESS_DATA_STRIDE (data width) and CFG_TUSB_FIFO_ACCESS_ADDR_STRIDE (address increment)
// Note: these usually has opposiite direction (read/write) to/from our software FIFO (tu_fifo_t)
//--------------------------------------------------------------------+
-#if CFG_TUD_EDPT_DEDICATED_HWFIFO
TU_ATTR_ALWAYS_INLINE static inline uint16_t tu_hwfifo_write_from_fifo(tu_fifo_t *f, void *hwfifo, uint16_t n) {
return tu_fifo_read_n_access_mode(f, hwfifo, n, true);
}
@@ -233,6 +234,7 @@ TU_ATTR_ALWAYS_INLINE static inline uint16_t tu_hwfifo_read_to_fifo(tu_fifo_t *f
return tu_fifo_write_n_access_mode(f, hwfifo, n, true);
}
+#if CFG_TUSB_FIFO_HWFIFO_API
// read from hwfifo to buffer
void tu_hwfifo_read(const volatile void *hwfifo, uint8_t *dest, uint16_t len);