Originally Posted by saratoga
Theres no reason the disk should need to be spun down and then spun up again, so this is probably working around some deeper bug (which is probably why its not entirely reliable for you). My guess is that there is some kind of timing issue where one packet or step sometimes happens out of order when negotiating USB connections. Perhaps having to wait for the disk to spin up again makes it less likely that things happen in the wrong order.
I think if other people can reproduce this, it might be worth filing a bug report on the rockbox flyspray tracker so that its documented. I'll try and raise the same issue with TheSeven but from what I understand hes extremely busy with real life right now and probably won't be too excited about a few (dozen?) hours digging in the USB code.
I was really looking forward to this being fixed with just spinning the disk down, but yesterday when I was trying to fix doom I noticed it didn't help at all. No perfect connection like I had many times with this fix before.
At least I got doom running by falling back to the timing approximation they use for the simulators. Now, the failing of doom and your thought that it might be a timing issue is probably connected. I haven't looked deeper into the usertimer code of rockbox for now, but I know that it just failed for doom.
Since doom was using only the basic usertimer functions I guess it is failing at other places, too, maybe even the in the USB-driver.
Sadly I can't look deeper into this now because I have to learn for my exams, but here is what I found out:
in i_system.c there is this line (112), initializing a timer:
rb->timer_register(1, NULL, TIMER_FREQ/TICRATE, doomtime IF_COP(, CPU));
Where "doomtime" is a function which simply increments an integer. Since this integer stays at 0 I assume that something must be screwed up in the timing of the classic since these are working on other platforms.
Maybe this helps with fixing the issues with USB or something else.
Edit: Did I mention I was getting disconnected from the internet every time I plugged the iPod in yesterday? Would not work again until I replug my WLAN-USB-Stick.
Edited by mind in a box - 12/10/12 at 11:32am