• Status Closed
  • Percent Complete
  • Task Type Bugs
  • Category Drivers
  • Assigned To No-one
  • Operating System PortalPlayer-based
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by fg - 2008-04-27
Last edited by fg - 2008-10-02

FS#8943 - USB Storage connection makes ata.c disable disk spindown

ata.c calls usb_wait_for_disconnect() after receiving a SYS_USB_CONNECTED event. This may be correct for hardware ATA/USB bridges, but it is wrong for the rockbox usb stack, because it also disables other events, some of which seem to be used to manage sleep timeouts.

I don’t know enough about ata.c to actually touch this, but probaby just make disable usb_wait_for_disconnect() if USE_ROCKBOX_USB and HAVE_USBSTACK are defined is enough (both, because USE_ROCKBOX_USB will probably disappear at some point).

Closed by  fg
2008-10-02 21:02
Reason for closing:  Accepted
Project Manager

Here is a quick *untested* patch to fix this issue.

Just applied this to a build for my Gigabeat S (along with #9312) - no madly spinning disk, everything else appears to work as expected.

I spoke too soon.

Whilst this does seem to work okay in conjunction with charging - it does intefer with the USB MSC code. Doing anything to the disk while it's hooked up over USB completely hosed the filesystem. Twice! (I'm a glutton for punishment!)

fg commented on 2008-09-01 12:23

All results between r18327 and r18370 are suspect, since it seems that MSC was really buggy there on everything but sansa (causing massive corruption even without this patch)

jac0b commented on 2008-09-01 13:38

Yeah I was having a problem with this a couple days ago with a my build made on 08-28-2008 (I forgot the rev. #). I was transferring about 24GB to my mp3 player and after a while it would freeze my system or just disconnect and when turned back on nothing was there but a bunch of files with weird file names. I did smaller transfers which seemed to work.


Available keyboard shortcuts


Task Details

Task Editing