rockbox/firmware
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
..
asm pcm_mixer: remove some unused preprocessor symbols 2026-05-11 07:19:50 -04:00
common metadata: Normalize all metadata to Unicode NFC form 2026-05-03 07:07:07 -04:00
drivers usb: refactor control request handling 2026-05-25 12:42:36 +01:00
export usb: refactor control request handling 2026-05-25 12:42:36 +01:00
include libc: fix firmware assert.h 2026-05-14 11:54:52 -04:00
kernel 3ds: Various fixes, mostly for compiler warnings 2026-03-13 10:24:36 -04:00
libc fix broken bootloader builds, regression from 5951f6e5e9 2026-05-15 10:25:25 -04:00
reggen echoplayer: implement ADC to read battery voltage 2026-03-18 12:51:51 +00:00
target usb: refactor control request handling 2026-05-25 12:42:36 +01:00
usbstack usb: refactor control request handling 2026-05-25 12:42:36 +01: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 backlight-sw-fading: FS#13717 fix brightness overshoot 2025-12-19 08:20:07 +01:00
backlight.c gui: fix "lock screens" making UI viewport disappear 2026-05-02 16:53:02 +02: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 firmware: add copyright headers to core_alloc.c/h 2026-03-09 10:26:18 +00:00
debug.c
eeprom_settings.c
elf_loader.c elf_loader: add elf_loadmem() to load file from memory 2026-01-25 19:51:07 -05:00
enc_base.c
events.c events.c clean-up 2022-12-30 07:23:29 -05:00
firmware.make make: remove asm.make and use asm/SOURCES directly 2026-01-08 16:41:57 +00:00
font.c merge font_getstringnsize and font_measurestring 2026-05-18 01:36:50 -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
lc-rock.c firmware: introduce CONFIG_BINFMT 2026-01-05 13:14:30 -05:00
linuxboot.c buflib_shrink use NULL to signal start isn't changing 2023-01-13 09:50:29 -05:00
logf.c
lru.c
panic.c arm: add initial ARM Cortex-M support 2025-04-18 13:19:42 -04:00
pcm.c usb: add usb iAP driver 2026-05-03 12:40:54 -04:00
pcm_mixer.c pcm_mixer: fix missing NULL check for play_cbs 2026-04-23 15:13:17 +02:00
pcm_sampr.c
pcm_sw_volume.c pcm: introduce pcm_sink 2026-03-02 10:09:11 +09: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
screendump.c
scroll_engine.c pass event data to usb_acknowledge 2026-01-26 19:47:09 -05:00
sdmmc.c SD: Move sd_parse_csd() into common sdmmc code 2025-08-22 14:48:28 -04:00
sound.c Fix red in 36f34089d6 2026-03-28 12:41:43 -04:00
SOURCES libc: add sscanf to core 2026-05-23 08:03:09 -04:00
storage.c bootloaders: Don't build usb_core without HAVE_BOOTLOADER_USB_MODE 2026-02-07 08:46:10 -05:00
system.c
timer.c
tuner.c
usb.c usb: disable status event debouncing 2026-05-25 07:01:49 -04:00

See docs/README