rockbox/firmware/usbstack
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
..
usb_audio.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_audio.h Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_audio_def.h Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_charging_only.c usb PACK_DATA: use a static inline to enable type checking 2011-12-29 21:58:34 +00:00
usb_charging_only.h USB retweaking: Take out the USB_REQUEST/RELEASE_DISK scheme and simply ask the USB core whether or not any drivers require exclusive access at the moment of connect. Doing anthing else just produces nasty effects on Windows because it expects some communication just for enabling the PHY and not allowing it to mount volumes if a thread doesn't ack causes annoying error message boxes. Make behavior of each USB type identical from the system perspective. Some miscellaneous changes (simplify, ata->storage naming, define only used USB_* enums values were possible). 2009-01-13 16:27:35 +00:00
usb_class_driver.h Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_core.c Add USB Audio 1.0 support 2025-11-15 07:30:15 -05:00
usb_hid.c usb: ensure RX buffers are a multiple of the packet size 2021-10-16 21:14:42 +01:00
usb_hid.h usb: add request data argument to all control request handlers 2021-10-16 21:14:42 +01:00
usb_hid_usage_tables.h usb_hid: add support for Battery Strength 2021-03-06 04:15:02 +00:00
usb_serial.c usb: ensure RX buffers are a multiple of the packet size 2021-10-16 21:14:42 +01:00
usb_serial.h usb: add request data argument to all control request handlers 2021-10-16 21:14:42 +01:00
usb_storage.c ata: Parameterize the SMART query, add support to primary ATA driver 2025-09-16 09:52:05 -04:00
usb_storage.h usb: add request data argument to all control request handlers 2021-10-16 21:14:42 +01:00