rockbox/firmware
Aidan MacDonald bd7b54a3c4 usb: Attempt to handle overlapped control requests in legacy drivers
It seems connecting an iPod Video to a Mac triggers the null
request check, resulting in a panic. Ignoring the error with
a bare return "fixes" it and allows the iPod to connect. This
isn't ideal though, because it could silently introduce bugs
on other targets.

The likely cause of this is the host sending control requests
too fast, or a driver problem (the Video uses the ARC driver,
which is still on the legacy interface), with multiple requests
getting queued at once. Since the USB core expects to deal with
only one request at a time, the second response trips the check.

Try to handle this situation a bit more gracefully by detecting
overlapped requests and returning a STALL to the host when it
occurs. At this point the USB stack is able to safely handle a
new request.

Link: https://forums.rockbox.org/index.php/topic,54414.0.html
Change-Id: I9a2b7e35620ff540ebdb39f81671377062a4917d
2023-01-18 14:22:26 -05:00
..
asm Revert "Remove YUV blitting functions and LCD modes" 2022-10-13 11:08:06 -04:00
common Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
drivers si4700: remove unneeded ';' directly after a 'case' 2023-01-14 21:17:58 +01:00
export buflib: Add malloc-backed buflib 2023-01-15 10:04:13 +00:00
include Add core_get_data_pinned(), use it where possible 2023-01-15 08:57:45 -05:00
kernel buflib: Refactor various debugging features 2023-01-13 10:32:57 +00:00
libc Remove strtok_r.c 2022-11-20 23:37:20 -05:00
target fix red from #641e91aa2f 2023-01-13 17:02:23 -05:00
usbstack usb: Attempt to handle overlapped control requests in legacy drivers 2023-01-18 14:22:26 -05:00
arabjoin.c
arabjoin.h arabjoin.h was emptied by accident 2005-12-06 15:15:54 +00:00
ata_idle_notify.c Fix reds. 2014-03-14 23:43:45 +01: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 clean up button.c optimize !filter_first_keypress 2023-01-02 11:04:47 -05:00
bidi.c bidi.c: Check buffer sizes. 2014-01-09 23:30:32 +01: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 buflib_shrink use NULL to signal start isn't changing 2023-01-13 09:50:29 -05:00
COPYING
core_alloc.c buflib: Add CONFIG_BUFLIB_BACKEND for selecting a buflib backend 2023-01-15 10:04:13 +00: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 FS#12378 : Remove various unused code, and comment out some unused code and data for reference or future use. 2011-12-14 21:45:25 +00:00
events.c events.c clean-up 2022-12-30 07:23:29 -05:00
firmware.make fonts: Use '08-Rockfont' as FONT_SYSFIXED on targets with 128x64 screens 2020-08-31 13:32:24 -04:00
font.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00:00
font_cache.c fonts: Do not unload completely on USB. 2014-01-15 23:37:39 +01:00
general.c replace strlcpy with strmemccpy 2022-11-14 23:56:16 -05:00
hangul.c
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 Revert r30818 2011-10-22 08:02:38 +00:00
panic.c mips: consolidate exception handling, add exception backtraces 2022-10-17 09:04:18 -04:00
pcm.c pcm: Further cleanup of unused bits of the PCM ACPI: 2020-11-12 15:59:09 +00: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 apps: Add ability to do a clean reboot 2022-04-16 14:36:39 +01:00
profile.c Remove last traces of sprintf.h 2010-05-07 02:13:47 +00:00
README
rolo.c Remove buflib allocation names, part two 2023-01-13 10:32:54 +00: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 lcd: Remove internal function get_viewport() 2022-10-09 22:07:48 +01:00
sdmmc.c Various minor cleanups 2010-08-01 10:07:05 +00:00
sound.c Revert "sound: add sound_numdecimals() to round out the sound setting query API" 2021-04-09 10:52:02 +00:00
SOURCES buflib: Add malloc-backed buflib 2023-01-15 10:04:13 +00:00
storage.c FS#13154: Don't discard return code in storage_init() 2020-08-24 14:37:23 -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 usb: add debounce interval for USB status by event 2022-09-25 06:49:11 -04:00

See docs/README