summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-05-15 12:01:53 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-05-15 12:01:53 +0000
commit0f77db73469920f0b0006f696ddb36029338c378 (patch)
tree87d9c02bf2d6ad95dd94b610d95e3c890caf5a67
parent338e4d76aad9c65971b165a745e4c00dfc742635 (diff)
downloadrockbox-0f77db73469920f0b0006f696ddb36029338c378.zip
rockbox-0f77db73469920f0b0006f696ddb36029338c378.tar.gz
rockbox-0f77db73469920f0b0006f696ddb36029338c378.tar.bz2
rockbox-0f77db73469920f0b0006f696ddb36029338c378.tar.xz
as3525: fix capacity sanity check
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
-rw-r--r--firmware/target/arm/as3525/sd-as3525.c8
-rw-r--r--firmware/target/arm/as3525/sd-as3525v2.c8
2 files changed, 8 insertions, 8 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525.c b/firmware/target/arm/as3525/sd-as3525.c
index 0cdc56f..dea4a57 100644
--- a/firmware/target/arm/as3525/sd-as3525.c
+++ b/firmware/target/arm/as3525/sd-as3525.c
@@ -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();
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c
index 8df9472..94ba019 100644
--- a/firmware/target/arm/as3525/sd-as3525v2.c
+++ b/firmware/target/arm/as3525/sd-as3525v2.c
@@ -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;