Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Bug [ 622799 ] Solid drive light, music stops playing
From: Björn Stenberg (bjorn_at_haxx.se)
Date: 2003-02-26


Mike Holden wrote:
> Basically, I think we are too pessimistic if we get an error reading the
> next chunk of an mp3 file.

I think this is merely symtomatic. Being too pessimistic in the mpeg code only means we skip to next file sooner than we have to.

Only the ata driver turns on (and off) the led, and thus that is where we hang if the led stays on forever. It is however indeed interesting that you can affect the problem by modifying the mpeg code.

It's also good that you can repeat the problem fairly easily. I can never get this condition, despite rigorous abuse of my archos.

I would like you to test this patch for the ata driver (without your mpeg modification). It adds a soft reset on disk error:

Index: ata.c
===================================================================
RCS file: /cvsroot/rockbox/firmware/drivers/ata.c,v
retrieving revision 1.72
diff -u -b -r1.72 ata.c
--- ata.c 14 Feb 2003 09:44:34 -0000 1.72
+++ ata.c 26 Feb 2003 08:43:46 -0000
@@ -191,6 +191,9 @@
         }
     }
 
+ timeout = current_tick + READ_TIMEOUT;
+
+ retry:
     ATA_SELECT = ata_device;
     if (!wait_for_rdy())
     {
@@ -198,9 +201,6 @@
         return -2;
     }
 
- timeout = current_tick + READ_TIMEOUT;
-
- retry:
     buf = inbuf;
     count = incount;
     while (TIME_BEFORE(current_tick, timeout)) {
@@ -228,6 +228,8 @@
 
             if ( ATA_ALT_STATUS & (STATUS_ERR | STATUS_DF) ) {
                 ret = -5;
+ if (perform_soft_reset())
+ break;
                 goto retry;
             }
              

-- 
Björn



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa