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

Re: Bug [ 622799 ] Solid drive light, music stops playing

From: Björn Stenberg <bjorn_at_haxx.se>
Date: Wed, 26 Feb 2003 09:50:33 +0100

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
_at__at_ -191,6 +191,9 _at__at_
         }
     }
 
+ timeout = current_tick + READ_TIMEOUT;
+
+ retry:
     ATA_SELECT = ata_device;
     if (!wait_for_rdy())
     {
_at__at_ -198,9 +201,6 _at__at_
         return -2;
     }
 
- timeout = current_tick + READ_TIMEOUT;
-
- retry:
     buf = inbuf;
     count = incount;
     while (TIME_BEFORE(current_tick, timeout)) {
_at__at_ -228,6 +228,8 _at__at_
 
             if ( ATA_ALT_STATUS & (STATUS_ERR | STATUS_DF) ) {
                 ret = -5;
+ if (perform_soft_reset())
+ break;
                 goto retry;
             }
              


-- 
Björn
Received on 2003-02-26

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy