diff options
author | Jack Halpin <jack.halpin@gmail.com> | 2009-09-25 01:38:51 +0000 |
---|---|---|
committer | Jack Halpin <jack.halpin@gmail.com> | 2009-09-25 01:38:51 +0000 |
commit | 68089db6db83e78fa6637984612c81226a33b02b (patch) | |
tree | 12db95b82f09ab29fa34e9f1bb82d7400a6326f0 /firmware/target/arm | |
parent | f2cd5ec6af19f7ab438c770c3383c3a1741d8e4f (diff) | |
download | rockbox-68089db6db83e78fa6637984612c81226a33b02b.tar.gz rockbox-68089db6db83e78fa6637984612c81226a33b02b.zip |
AMS Sansa: Add delay for µSD writes to fix CRC failures with class 6 µSD cards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22825 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/as3525/ata_sd_as3525.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/ata_sd_as3525.c b/firmware/target/arm/as3525/ata_sd_as3525.c index 995bf932ca..fc5e2f880f 100644 --- a/firmware/target/arm/as3525/ata_sd_as3525.c +++ b/firmware/target/arm/as3525/ata_sd_as3525.c | |||
@@ -735,6 +735,14 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start, | |||
735 | 735 | ||
736 | 736 | ||
737 | wakeup_wait(&transfer_completion_signal, TIMEOUT_BLOCK); | 737 | wakeup_wait(&transfer_completion_signal, TIMEOUT_BLOCK); |
738 | |||
739 | /* Higher speed class cards need a write delay here for some reason */ | ||
740 | if((drive == SD_SLOT_AS3525) && write) | ||
741 | { | ||
742 | int delay = 3500; | ||
743 | while(delay--) asm volatile ("nop\n"); | ||
744 | } | ||
745 | |||
738 | if(!transfer_error[drive]) | 746 | if(!transfer_error[drive]) |
739 | { | 747 | { |
740 | if(!write) | 748 | if(!write) |