diff options
| author | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-15 12:01:53 +0000 |
|---|---|---|
| committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-15 12:01:53 +0000 |
| commit | 0f77db73469920f0b0006f696ddb36029338c378 (patch) | |
| tree | 87d9c02bf2d6ad95dd94b610d95e3c890caf5a67 | |
| parent | 338e4d76aad9c65971b165a745e4c00dfc742635 (diff) | |
| download | rockbox-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.c | 8 | ||||
| -rw-r--r-- | firmware/target/arm/as3525/sd-as3525v2.c | 8 |
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; |