rockbox/firmware/drivers
mojyack 2291aa24f2 usb: refactor control request handling
this commit is a combination of the following changes, which
significantly refactors usb core and class drivers.

1. unify usb buffers of each class driver to reduce iram usage
currently, many class drivers allocate their own buffer to receive
control out data, which is a waste of iram.
share one common buffer for that usage to address the issue.

2. simplify control request handling by implicitly receiving write
   request data packets
change 1 above fixed the data destination. therefore, having the core
receive the data allows us to reduce the class driver's work and
simplifies the api.

3. enhance usb core's control request handling and unify the legacy
   driver api
in order to implement change 2, both the legacy and new driver apis
should be supported. so that, using the designware driver as a
reference, the new driver api functionality is move into usb core.
this simplifies the usb device drivers by requiring them to implement
only the functionalities equivalent to the legacy api.

tested with ipodvideo(arc) and erosqnative(designware)

Change-Id: I3627daa90278751f599e2108ec150ec3f8f6c524
2026-05-25 12:42:36 +01:00
..
audio drivers: add TLV320AIC3104 codec driver 2026-02-26 15:00:13 +00:00
libertas Sansa Connect: Initial libertas WiFi driver port 2021-07-04 07:41:44 +00:00
rtc Remove Meizu M3/M6SL/M6SP and Samsung YP-S3 ports 2026-02-03 16:32:56 +00:00
tuner Remove NVRAM infavor of a separate cfg file 2025-01-21 00:04:32 -05:00
adc-as3514.c AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
ata-common.c storage: report physical sector multiplier via storage_get_info() 2025-11-17 08:57:43 -05:00
ata.c ata: Unify more of the ATA drivers into the common code 2025-11-17 08:29:56 -05:00
axp-2101.c erosqnative: hw4 units prefer egauge battery percentage 2025-01-19 17:30:21 -05:00
axp-pmu.c erosqnative hw1/hw2: Check for DAC in bootloader 2024-12-06 11:39:24 -05:00
button.c touchscreen: Increase report rate to 25fps 2025-12-04 07:10:17 -05:00
button_queue.c New port: Anbernic RG Nano 2025-07-29 21:01:53 -04:00
cw2015.c New port: Shanling Q1 native 2021-07-13 22:01:33 +01:00
eeprom_24cxx.c Various files: make function implementations consistent with their declaration in the header file or static if 2009-01-31 23:51:11 +00:00
ft6x06.c Shanling Q1: enable multi-touch reporting 2021-11-24 18:49:03 -05:00
generic_i2c.c Sansa Connect: Use deviceid in USB Serial Number 2021-07-10 08:56:32 +02:00
i2c-async.c Add asynchronous I2C bus API 2021-03-23 15:42:54 +00:00
isp1362.c Updated our source code header to explicitly mention that we are GPL v2 or 2008-06-28 18:10:04 +00:00
isp1583.c usb: refactor control request handling 2026-05-25 12:42:36 +01:00
lcd-1bit-vert.c Asan fix warning for 1-bit vert #2 2025-03-11 01:21:05 -04:00
lcd-2bit-horz.c lcd: Fix bug in grayscale clear_display() implementation 2022-10-12 07:58:57 -04:00
lcd-2bit-vert.c lcd: Fix bug in grayscale clear_display() implementation 2022-10-12 07:58:57 -04:00
lcd-2bit-vi.c lcd: Fix bug in grayscale clear_display() implementation 2022-10-12 07:58:57 -04:00
lcd-16bit-common.c Optimize 16 bit lcd_fillrect() 2024-12-21 18:19:38 -05:00
lcd-16bit-vert.c Sansa e200v2: bootloader: fit size 2024-04-01 11:02:04 -04:00
lcd-16bit.c arm: enable unified assembly syntax in more files 2025-04-18 10:26:02 -04:00
lcd-24bit.c Sansa e200v2: bootloader: fit size 2024-04-01 11:02:04 -04:00
lcd-bitmap-common.c unicode: Support characters beyond the first unicode plane 2025-09-12 09:24:30 -04:00
lcd-color-common.c Sansa e200v2: bootloader: fit size 2024-04-01 11:02:04 -04:00
lcd-memframe.c Revert "Remove YUV blitting functions and LCD modes" 2022-10-13 11:08:06 -04:00
lcd-remote-1bit-v.c lcd drivers: Convert lcd_[remote_]framebuffer to a pointer 2012-02-28 11:44:59 +11:00
lcd-remote-2bit-vi.c lcd drivers: Convert lcd_[remote_]framebuffer to a pointer 2012-02-28 11:44:59 +11:00
lcd-scroll.c [Bugfix] Scroll engine, backwards scrolling causes display corruption 2025-03-09 09:16:07 -04:00
led.c YH92x: Use the led near the lcd as the ATA led, instead of shine all the time. 2014-06-18 18:06:17 +00:00
m5636.c Updated our source code header to explicitly mention that we are GPL v2 or 2008-06-28 18:10:04 +00:00
m66591.c usb: refactor control request handling 2026-05-25 12:42:36 +01:00
nand_id.c Add cleaned-up xDuoo X3 support 2018-07-28 10:56:31 -04:00
pca9555.c Introduce HiFi E.T MA9 port. 2013-05-06 14:09:24 +04:00
pcf50605.c Ensure consistency between header file and implementation for iPod drivers, by #including the appropriate header file and #ifdef'fing out unused code 2008-07-16 11:02:14 +00:00
pcf50606.c tcc77x targets: various minor cleanups 2010-08-28 10:17:19 +00:00
pcf50635.c Commit FS#12352 by Stanislav Chizhik. Add support for the PCF50635. Enables detection of USB power sources. 2011-11-15 20:37:47 +00:00
qt1106.c Make the meizu m3 load from flash, so interrupts work. More work is needed to get the m6sl "working" again 2008-10-18 22:28:59 +00:00
ramdisk.c firmware: get rid of unused "xxx_sleep()" storage driver function 2026-01-13 16:59:39 -05:00
rds.c rds: make newly added function static 2022-03-16 11:54:26 -04:00
sd.c firmware: get rid of unused "xxx_sleep()" storage driver function 2026-01-13 16:59:39 -05:00
sdmmc_host.c sdmmc_host: mark tCardInfo initialized at end of card init 2026-03-02 17:11:33 -05:00
serial.c serial: Add serial_tx_raw() function for sending raw bytes to the serial port 2025-01-20 08:17:48 -05:00
sw_i2c.c Updated our source code header to explicitly mention that we are GPL v2 or 2008-06-28 18:10:04 +00:00
synaptics-mep.c misc: Fix some compile warnings when logf is enabled 2024-11-12 08:11:18 -05:00
touchpad.c touch devices: Disable touch on softlock. 2013-09-05 20:02:07 +02:00
touchscreen.c Introducing Targets iBasso DX50 & iBasso DX90 2014-09-18 18:19:01 +02:00
tsc200x.c Touchscreen support for newer Cowon D2+ hardware revisions (using TSC200x touchscreen controller). 2009-10-15 20:13:29 +00:00
tsc2100.c TSC2100: Sample multiple times and provide an average to clean up touch detection. 2011-02-06 19:26:31 +00:00
usb-designware.c usb: refactor control request handling 2026-05-25 12:42:36 +01:00