rockbox/firmware/target/arm/pp
mojyack e13befb925 pp5020: ata: do not yield in ata_wait_intrq()
Confirmed on iFlash-modded ipodvideo, USB mass storage connections
frequently fail with bus resets during mount on macOS, and trigger
"reset high-speed USB device" errors on Linux during sequential
reads.

The root cause is: storage_read_sectors() calls yield() via
ata_wait_intrq(), which switches to the main thread running
handle_usb_events() loop. This calls send_event(GUI_EVENT_ACTIONUPDATE),
triggering LCD redraw that takes approximately 110ms. This stalls the
ATA DMA completion, causing the USB bulk transfer to time out from the
host's perspective.

This commit removes the yield to prevent the reading thread from being
preempted by the lengthy LCD redraw during DMA completion.

This also improves sequential read throughput from ~13MB/s to ~18MB/s.

Change-Id: Ia552f97aa0169c93c4f21e250d13dc3a626661d4
2026-03-10 18:17:41 -04:00
..
adc-pp5020.c pp: fix adc mistake where base 10 was used instead of base 16 2021-04-10 01:13:09 +00:00
app-pp.lds firmware: cleanup PortalPlayer NOCACHE_BASE defines 2026-03-06 14:15:29 -05:00
ascodec-pp.c Red Alert 2016-04-06 00:39:23 +00:00
ata-pp5002.c
ata-pp5020.c pp5020: ata: do not yield in ata_wait_intrq() 2026-03-10 18:17:41 -04:00
ata-sd-pp.c storage: 64-bit sector offsets 2024-08-12 14:23:44 -04:00
ata-target.h Disable UDMA 2 on iPod4G target 2021-02-27 14:38:49 +00:00
audio-pp.c portalplayer: Fix three set-but-not-used warnings. 2020-07-05 17:15:57 +00:00
boot-pp.lds Fix d2249dc errors 2013-07-19 08:37:40 -04:00
boot-pp502x-bl-usb.lds firmware: cleanup PortalPlayer NOCACHE_BASE defines 2026-03-06 14:15:29 -05:00
crt0-pp-bl.S
crt0-pp.S Enable boot from SD for Sansa e200 2020-08-19 19:17:01 -04:00
crt0-pp502x-bl-usb.S
debug-pp.c Replace SAMSUNG_YH920_PAD with YH92X 2016-01-25 09:23:09 +01:00
i2c-pp.c
i2s-pp.c
kernel-pp.c
mi4-loader.c multiboot: Refactor boot data validation, add version numbers 2024-03-31 16:57:19 +01:00
pcm-pp.c pcm: introduce pcm_sink 2026-03-02 10:09:11 +09:00
sd-pp-target.h
system-pp502x.c pp502x: Restructure UART code 2025-08-06 08:27:58 -04:00
system-pp5002.c AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
system-target.h Fix red from 04fe77a4 2021-08-14 17:56:15 -04:00
thread-pp.c pp500x: Switch to plain C sleep/wake code (instead of asm) 2025-08-04 10:02:52 -04:00
timer-pp.c
uart-pp.c IAP: First steps towards true multiport state 2025-08-20 07:56:43 -04:00
usb-fw-pp502x.c Remove Sansa View port 2026-02-03 22:04:41 +00:00
usb-fw-pp5002.c pp5002: Fix warning in the USB detection code 2025-04-30 07:22:38 -04:00
wmcodec-pp.c