From d085d01f5e009766fe720236249597c7c9a3fd3c Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Sun, 26 Sep 2021 17:28:03 +0100 Subject: [PATCH] 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 --- firmware/export/config/erosqnative.h | 5 ++++- firmware/export/config/fiiom3k.h | 5 ++++- firmware/export/config/shanlingq1.h | 5 ++++- 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 */