summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-09-26 17:28:03 +0100
committerAidan MacDonald <amachronic@protonmail.com>2021-10-16 21:14:42 +0100
commitd085d01f5e009766fe720236249597c7c9a3fd3c (patch)
tree11084fe1d9bbb7efcb8d0fbf3d32640686b73139
parent4fc37eb47f0dd92fadd42aec31a5c8f5d5363eaf (diff)
downloadrockbox-d085d01f5e009766fe720236249597c7c9a3fd3c.tar.gz
rockbox-d085d01f5e009766fe720236249597c7c9a3fd3c.zip
x1000: enable DMA for USB driver
This boosts USB transfer performance a bit, ~10% for reads and ~25% for writes, for large-ish file transfers. Rockbox is still around 33-50% slower than the OF. Change-Id: I236a1e5c69a290c47ed27b70cb2631111fc157ed
-rw-r--r--firmware/export/config/erosqnative.h5
-rw-r--r--firmware/export/config/fiiom3k.h5
-rw-r--r--firmware/export/config/shanlingq1.h5
3 files changed, 12 insertions, 3 deletions
diff --git a/firmware/export/config/erosqnative.h b/firmware/export/config/erosqnative.h
index e326f29b98..f68830e211 100644
--- a/firmware/export/config/erosqnative.h
+++ b/firmware/export/config/erosqnative.h
@@ -106,7 +106,6 @@
/* USB support */
#ifndef SIMULATOR
#define CONFIG_USBOTG USBOTG_DESIGNWARE
-#define USB_DW_ARCH_SLAVE
#define USB_DW_TURNAROUND 5
#define HAVE_USBSTACK
#define USB_VENDOR_ID 0xc502
@@ -117,6 +116,10 @@
#define HAVE_USB_CHARGING_IN_THREAD
#define TARGET_USB_CHARGING_DEFAULT USB_CHARGING_FORCE
#define HAVE_BOOTLOADER_USB_MODE
+/* This appears to improve transfer performance (the default is 64 KiB).
+ * Going any higher doesn't help but we're still slower than the OF. */
+#define USB_READ_BUFFER_SIZE (128 * 1024)
+#define USB_WRITE_BUFFER_SIZE (128 * 1024)
#endif
/* Rockbox capabilities */
diff --git a/firmware/export/config/fiiom3k.h b/firmware/export/config/fiiom3k.h
index 5a2fa6c025..29395bd433 100644
--- a/firmware/export/config/fiiom3k.h
+++ b/firmware/export/config/fiiom3k.h
@@ -106,7 +106,6 @@
/* USB support */
#ifndef SIMULATOR
#define CONFIG_USBOTG USBOTG_DESIGNWARE
-#define USB_DW_ARCH_SLAVE
#define USB_DW_TURNAROUND 5
#define HAVE_USBSTACK
#define USB_VENDOR_ID 0x2972
@@ -117,6 +116,10 @@
#define HAVE_USB_CHARGING_IN_THREAD
#define TARGET_USB_CHARGING_DEFAULT USB_CHARGING_FORCE
#define HAVE_BOOTLOADER_USB_MODE
+/* This appears to improve transfer performance (the default is 64 KiB).
+ * Going any higher doesn't help but we're still slower than the OF. */
+#define USB_READ_BUFFER_SIZE (128 * 1024)
+#define USB_WRITE_BUFFER_SIZE (128 * 1024)
#endif
/* Rockbox capabilities */
diff --git a/firmware/export/config/shanlingq1.h b/firmware/export/config/shanlingq1.h
index c7ad1dfa6e..1f1ee79ca7 100644
--- a/firmware/export/config/shanlingq1.h
+++ b/firmware/export/config/shanlingq1.h
@@ -96,7 +96,6 @@
/* USB support */
#ifndef SIMULATOR
#define CONFIG_USBOTG USBOTG_DESIGNWARE
-#define USB_DW_ARCH_SLAVE
#define USB_DW_TURNAROUND 5
#define HAVE_USBSTACK
#define USB_VENDOR_ID 0x0525 /* Same as the xDuuo X3, for some reason. */
@@ -107,6 +106,10 @@
#define HAVE_USB_CHARGING_IN_THREAD
#define TARGET_USB_CHARGING_DEFAULT USB_CHARGING_FORCE
#define HAVE_BOOTLOADER_USB_MODE
+/* This appears to improve transfer performance (the default is 64 KiB).
+ * Going any higher doesn't help but we're still slower than the OF. */
+#define USB_READ_BUFFER_SIZE (128 * 1024)
+#define USB_WRITE_BUFFER_SIZE (128 * 1024)
#endif
/* Rockbox capabilities */