FS#9923 - PP5022-specific USB init which may fix signal quality issues

Attached to Project: Rockbox
Opened by Boris Gjenero (dreamlayers) - Tuesday, 17 February 2009, 19:06 GMT
Last edited by Frank Gevaerts (fg) - Tuesday, 17 February 2009, 22:25 GMT
Task Type Patches
Category Drivers
Status Closed
Assigned To No-one
Operating System PortalPlayer-based
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


USB high speed mode never worked for me. When I add this initialization, it always works. A USB controller reset undoes this initialization, so I put it at the end of usb_drv_reset() in usb-drv-arc.c.

* I recommend making sure you have backup copies of files on your iPod before using Rockbox USB mass storage mode. (I have not encountered any problems; I just think it's the responsible thing to do.)
* USB charging on iPods may not work or may be limited to 100 mA. See  FS#8802 . Your battery may discharge while the disk is being used. This may empty it, cause a shutdown in the middle of disk activity and result in filesystem problems. Note that the status line displays battery status even in USB mode.
This task depends upon

Closed by  Frank Gevaerts (fg)
Tuesday, 17 February 2009, 22:25 GMT
Reason for closing:  Accepted
Additional comments about closing:  Thanks a lot! This is a huge step forward
Comment by Michael Sevakis (MikeS) - Tuesday, 17 February 2009, 20:32 GMT
Nice. I take it this may help all PP502x players?

EDIT: Remove question the author explained about already (moving too fast today).
Comment by Boris Gjenero (dreamlayers) - Tuesday, 17 February 2009, 21:57 GMT
The OF checks PP_VER1 for the '2'. I have no idea if it would help on other PP502x chips. It's easy to edit the "#if CONFIG_CPU == PP5022" line and try it. (Note that the chips in the 5G iPod and 1G Nano are labelled as PP5021C-TDF, but they identify as PP5022C and Rockbox sets CONFIG_CPU to PP5022.)

BTW. Should I check PP_VER1 at runtime instead of CONFIG_CPU at compile time?
Comment by Frank Gevaerts (fg) - Tuesday, 17 February 2009, 22:12 GMT
Compile time is fine (everything else we do for different PP chips is compile time)

This seems to work on c200, e200, and ipod video at least.
Comment by Frank Gevaerts (fg) - Tuesday, 17 February 2009, 22:18 GMT
In case people wondered, this doesn't solve anything on PP5020