summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2024-09-24 17:55:15 +0700
committerhathach <[email protected]>2024-09-24 17:55:15 +0700
commita1244381b3e68959f99bc0ba8057eea5ca35bac6 (patch)
tree1e8960c674ddea05cf62862e667eec867b28af47
parent86b4608365e66ba250cf4fb52226b0ed02488cc1 (diff)
add CFG_TUD_DWC2_DMA, make it compile time option
-rw-r--r--src/common/tusb_mcu.h2
-rw-r--r--src/portable/synopsys/dwc2/dcd_dwc2.c9
-rw-r--r--src/tusb_option.h39
3 files changed, 28 insertions, 22 deletions
diff --git a/src/common/tusb_mcu.h b/src/common/tusb_mcu.h
index 0a4462a0a..6ead1ea0b 100644
--- a/src/common/tusb_mcu.h
+++ b/src/common/tusb_mcu.h
@@ -524,7 +524,7 @@
#define TUP_DCD_EDPT_ISO_ALLOC
#endif
-#if defined(TUP_USBIP_DWC2)
+#if defined(TUP_USBIP_DWC2) // && CFG_TUD_DWC2_DMA == 0
#define TUP_MEM_CONST_ADDR
#endif
diff --git a/src/portable/synopsys/dwc2/dcd_dwc2.c b/src/portable/synopsys/dwc2/dcd_dwc2.c
index 897f81a42..2c5e82778 100644
--- a/src/portable/synopsys/dwc2/dcd_dwc2.c
+++ b/src/portable/synopsys/dwc2/dcd_dwc2.c
@@ -95,16 +95,13 @@ static bool _sof_en;
//--------------------------------------------------------------------
TU_ATTR_ALWAYS_INLINE static inline bool dma_enabled(const dwc2_regs_t* dwc2) {
+ #if !CFG_TUD_DWC2_DMA
(void) dwc2;
- // DMA doesn't support fifo transfer
-#ifdef TUD_AUDIO_PREFER_RING_BUFFER
-#if TUD_AUDIO_PREFER_RING_BUFFER
return false;
-#endif
-#endif
+ #else
// Internal DMA only
return (dwc2->ghwcfg2_bm.arch == GHWCFG2_ARCH_INTERNAL_DMA);
- // return false;
+ #endif
}
TU_ATTR_ALWAYS_INLINE static inline uint16_t dma_cal_epfifo_base(uint8_t rhport) {
diff --git a/src/tusb_option.h b/src/tusb_option.h
index fb0209023..e61b3bb9e 100644
--- a/src/tusb_option.h
+++ b/src/tusb_option.h
@@ -228,7 +228,7 @@
#define OPT_MODE_SPEED_MASK 0xff00
//--------------------------------------------------------------------+
-// Include tusb_config.h and tusb_mcu.h
+// Include tusb_config.h
//--------------------------------------------------------------------+
// Allow to use command line to change the config name/location
@@ -238,6 +238,29 @@
#include "tusb_config.h"
#endif
+//--------------------------------------------------------------------+
+// USBIP
+//--------------------------------------------------------------------+
+
+// DWC2 controller: use DMA for data transfer
+#ifndef CFG_TUD_DWC2_DMA
+ #define CFG_TUD_DWC2_DMA 1
+#endif
+
+// Enable PIO-USB software host controller
+#ifndef CFG_TUH_RPI_PIO_USB
+ #define CFG_TUH_RPI_PIO_USB 0
+#endif
+
+#ifndef CFG_TUD_RPI_PIO_USB
+ #define CFG_TUD_RPI_PIO_USB 0
+#endif
+
+// MAX3421 Host controller option
+#ifndef CFG_TUH_MAX3421
+ #define CFG_TUH_MAX3421 0
+#endif
+
#include "common/tusb_mcu.h"
//--------------------------------------------------------------------
@@ -548,20 +571,6 @@
#define CFG_TUH_API_EDPT_XFER 0
#endif
-// Enable PIO-USB software host controller
-#ifndef CFG_TUH_RPI_PIO_USB
- #define CFG_TUH_RPI_PIO_USB 0
-#endif
-
-#ifndef CFG_TUD_RPI_PIO_USB
- #define CFG_TUD_RPI_PIO_USB 0
-#endif
-
-// MAX3421 Host controller option
-#ifndef CFG_TUH_MAX3421
- #define CFG_TUH_MAX3421 0
-#endif
-
//--------------------------------------------------------------------+
// TypeC Options (Default)
//--------------------------------------------------------------------+