as3525: fix capacity sanity check
authorfunman <funman@a1c6a512-1295-4272-9138-f99709370657>
Sat, 15 May 2010 12:01:53 +0000 (15 12:01 +0000)
committerfunman <funman@a1c6a512-1295-4272-9138-f99709370657>
Sat, 15 May 2010 12:01:53 +0000 (15 12:01 +0000)
adjust logical starting sector to physical starting sector after the check
number of blocks is already adjusted from physical to logical
don't panic anymore when accessing the last part of storage

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26050 a1c6a512-1295-4272-9138-f99709370657

firmware/target/arm/as3525/sd-as3525.c
firmware/target/arm/as3525/sd-as3525v2.c

index 0cdc56f..dea4a57 100644 (file)
@@ -669,10 +669,6 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start,
     int ret = 0;
     unsigned loops = 0;
 
-    /* skip SanDisk OF */
-    if (drive == INTERNAL_AS3525)
-        start += AMS_OF_SIZE;
-
     mutex_lock(&sd_mtx);
 #ifndef BOOTLOADER
     sd_enable(true);
@@ -692,6 +688,10 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start,
         goto sd_transfer_error;
     }
 
+    /* skip SanDisk OF */
+    if (drive == INTERNAL_AS3525)
+        start += AMS_OF_SIZE;
+
     last_disk_activity = current_tick;
 
     dma_retain();
index 8df9472..94ba019 100644 (file)
@@ -795,10 +795,6 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start,
     const int drive = 0;
 #endif
 
-    /* skip SanDisk OF */
-    if (drive == INTERNAL_AS3525)
-        start += AMS_OF_SIZE;
-
     mutex_lock(&sd_mtx);
 #ifndef BOOTLOADER
     sd_enable(true);
@@ -821,6 +817,10 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start,
         goto sd_transfer_error;
     }
 
+    /* skip SanDisk OF */
+    if (drive == INTERNAL_AS3525)
+        start += AMS_OF_SIZE;
+
     /*  CMD7 w/rca: Select card to put it in TRAN state */
     if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_NO_RESP, NULL))
         return -19;