rockbox/firmware
Dana Conrad 9ce66e088e Add USB Audio 1.0 support
Original commit credit to Amaury Pouly, Moshe Piekarski
Pushed across the finish line by Dana Conrad

To enable, see setting under General Settings --> System --> USB-DAC.
On devices with few endpoints, this may not work while HID and/or
mass storage is enabled.

Adds new dedicated mixer channel.

setting usb-dac can have values:
- never (0)
- always (1)
- while_charge_only (2)
- while_mass_storage (3)

Relevant devices are DWC2 and ARC usb controller devices. That being:
x1000 Native targets (m3k, erosqnative, q1, others...?),
sansac200, creativezenxfi2, vibe500, ipodmini2g,
ipod4g, creativezenxfi, creativezenxfi3, sansaview, ipodcolor,
creativezenxfistyle, samsungypz5, sansafuzeplus, iriverh10_5gb,
tatungtpj1022, gigabeats, faketarget, samsungyh820, gogearhdd1630, samsungyh925, ipodmini1g, ipodvideo, creativezenmozaic, sonynwze370, creativezen, gogearsa9200, gogearhdd6330, sonynwze360, sansae200, mrobe100, iriverh10, creativezenv, ipodnano1g, samsungyh920

USB Driver-wise, it should be noted that this patch requires some
slight changes:
- proper blocking on control OUT transfers, to make sure the data is
  received *before* using it, the usb_core should probably use that too
- drivers can now support interface alternate settings
- drivers can be notified of completion by a new fast handler, which
  is called directly from the driver; this is is necessary for
  isochronous transfers because going through the usb queue is way too
  slow

Designware changes:

- enable for USBOTG_DESIGNWARE
- set maxpacketsize to 1023 for ISO endpoints

Change-Id: I570871884a4e4820b4312b203b07701f06ecacc6
2025-11-15 07:30:15 -05:00
..
asm arm: add ARMv7-M version of ARMv6 mixer code 2025-04-18 10:57:45 -04:00
common disk: Minor cleanups with respect to virtual<->logical sector mapping 2025-09-22 22:12:59 -04:00
drivers Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
export Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
include 3ds: 3ds port sources. First set of two 2025-10-23 20:09:09 -04:00
kernel 3ds: 3ds port sources. First set of two 2025-10-23 20:09:09 -04:00
libc isdigit replace with a slightly faster and shorter conditional 2025-02-02 13:57:58 -05:00
target Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usbstack Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
arabjoin.c
arabjoin.h unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
ata_idle_notify.c misc: Clean up a large pile of -Wexpansion-to-defined warnings 2025-04-21 21:04:05 -04:00
backlight-sw-fading.c For backlights that have a wide control, support skipping steps. 2020-10-02 02:45:43 +00:00
backlight.c [Bugfix] call lcd_awake() unconditioanlly on shutdown for devices with HAVE_LCD_SLEEP 2025-01-05 10:59:46 -05:00
bidi.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
buflib_malloc.c buflib_malloc: fixed signed/unsigned comparison 2023-01-16 16:57:23 +00:00
buflib_mempool.c buflib: Add pinned get/put data functions 2023-01-15 11:06:27 +00:00
chunk_alloc.c [BugFix] chunk_alloc pass NULL to buflib_shrink 2023-03-09 20:15:38 -05:00
COPYING
core_alloc.c hosted: Shrink audiobuffer to (MEMORY_SIZE-1) megabytes 2025-09-12 23:15:11 -04:00
debug.c [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
eeprom_settings.c
enc_base.c
events.c events.c clean-up 2022-12-30 07:23:29 -05:00
firmware.make build: Various LTO fixes 2024-11-24 08:43:23 -05:00
font.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
font_cache.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
general.c replace strlcpy with strmemccpy 2022-11-14 23:56:16 -05:00
hangul.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
linuxboot.c buflib_shrink use NULL to signal start isn't changing 2023-01-13 09:50:29 -05:00
load_code.c Fix various reds. Some includes needed fixup. 2014-03-03 19:10:48 +01:00
logf.c logf: Fix an incorrect fix in 835d0c737a 2021-08-15 09:03:16 -04:00
lru.c
panic.c arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
pcm.c Rework auto playback frequency switch 2023-10-28 15:11:07 -04:00
pcm_mixer.c pcm_mixer: Fix an idle frame calculation bug introduced in 2e708c48c5 2020-10-24 02:00:50 +00:00
pcm_sampr.c pcm: Missed a file for the 192/176K playback. 2020-09-30 22:03:34 -04:00
pcm_sw_volume.c move PCM_NATIVE_BITDEPTH definiton into global config code 2021-08-07 11:18:19 -04:00
powermgmt.c misc: Ensure stacks are always aligned with the native pointer size. 2025-09-05 19:43:11 -04:00
profile.c
README
rolo.c nwze370: improve lcd & backlight 2025-10-21 16:54:57 -04:00
rom.lds h300: add support for ROM image generation 2020-10-26 01:37:42 +00:00
screendump.c Fix path buffer overflow in screendump 2021-08-06 15:46:53 +00:00
scroll_engine.c misc: Ensure stacks are always aligned with the native pointer size. 2025-09-05 19:43:11 -04:00
sdmmc.c SD: Move sd_parse_csd() into common sdmmc code 2025-08-22 14:48:28 -04:00
sound.c sound: fix volume change being reported to %mv tag on boot 2025-10-03 10:01:02 +01:00
SOURCES Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
storage.c ata: Rework how flushing, sleeping, and power off interacts 2024-10-31 12:51:54 -04:00
system.c Add ability to dump cpu boost log to disk, include thread names 2021-09-30 21:13:22 -04:00
timer.c Fix timer Agptek Rocker (other hosted players) 2019-10-17 21:19:00 +02:00
tuner.c [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
usb.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00

See docs/README