FS#11589 - Early USB broken (no statusbar & crash after disconnect)

Attached to Project: Rockbox
Opened by Marianne Arnold (pixelma) - Tuesday, 31 August 2010, 16:59 GMT
Last edited by Frank Gevaerts (fg) - Sunday, 07 November 2010, 14:12 GMT
Task Type Bugs
Category User Interface
Status New   Reopened
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Release 3.6
Due in Version Undecided
Due Date Undecided
Percent Complete 50%
Votes 0
Private No


This bug already stands for a while and was reported in IRC but since nothing happened so far, I'm going to report it here.

On targets with early USB ("usual" looking USB screen when plugging from off-state and probably only hardware bridge USB) the statusbar that should be there in the screen is missing and when you disconnect the player so that the "rest" of Rockbox would start, it crashes.

The address where the crash happens with the build currently flashed to my Ondio is in "lib/libskin_parser.a(skin_parser.o)" - more exactly "9035954: 8b fb bf 903594e <_skin_parse+0x152>". I pastebinned the complete disassembly of the _skin_parse function here: .

I will also try to find the exact revision that introduced the bug but that'll take a while. If I remember correctly it came with some statusbar skinning commit which is already a while ago now and crept up twice in a row (first was fixed, then it came back). Plus it is not the easiest and no quick task testing flashed builds on the Ondio....
This task depends upon

Comment by Frank Gevaerts (fg) - Saturday, 09 October 2010, 22:30 GMT
My bet is r27077. That one reloads skins to ensure that fonts are reloaded after USB disconnect (which is needed because UI fonts may be different and may be using the glyph cache which isn't allowed while USB is connected)

I've tested this on h120 (with a 10 second sleep after show_logo() to give me enough time), and commenting out the settings_apply() and settings_apply_skins() lines near the end of apps/gui/usb_screen.c makes things not freeze. That's not a proper fix of course.
Comment by Frank Gevaerts (fg) - Saturday, 09 October 2010, 22:38 GMT
This patch should fix the crash issue, in what I think is a clean way. The status bar problem is probably still there.
Comment by Frank Gevaerts (fg) - Sunday, 10 October 2010, 13:31 GMT
The crash was fixed in r28229
Comment by Frank Gevaerts (fg) - Saturday, 06 November 2010, 17:42 GMT
Note that *only* the crash was fixed. The statusbar still doesn't work properly