summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/as3525/ata_sd_as3525.c8
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,
wakeup_wait(&transfer_completion_signal, TIMEOUT_BLOCK);
+
+ /* Higher speed class cards need a write delay here for some reason */
+ if((drive == SD_SLOT_AS3525) && write)
+ {
+ int delay = 3500;
+ while(delay--) asm volatile ("nop\n");
+ }
+
if(!transfer_error[drive])
{
if(!write)