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.tar.gz
rockbox-0f77db73469920f0b0006f696ddb36029338c378.zip
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 0cdc56f2c6..dea4a578cf 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,
669 int ret = 0; 669 int ret = 0;
670 unsigned loops = 0; 670 unsigned loops = 0;
671 671
672 /* skip SanDisk OF */
673 if (drive == INTERNAL_AS3525)
674 start += AMS_OF_SIZE;
675
676 mutex_lock(&sd_mtx); 672 mutex_lock(&sd_mtx);
677#ifndef BOOTLOADER 673#ifndef BOOTLOADER
678 sd_enable(true); 674 sd_enable(true);
@@ -692,6 +688,10 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start,
692 goto sd_transfer_error; 688 goto sd_transfer_error;
693 } 689 }
694 690
691 /* skip SanDisk OF */
692 if (drive == INTERNAL_AS3525)
693 start += AMS_OF_SIZE;
694
695 last_disk_activity = current_tick; 695 last_disk_activity = current_tick;
696 696
697 dma_retain(); 697 dma_retain();
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c
index 8df947275d..94ba019183 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,
795 const int drive = 0; 795 const int drive = 0;
796#endif 796#endif
797 797
798 /* skip SanDisk OF */
799 if (drive == INTERNAL_AS3525)
800 start += AMS_OF_SIZE;
801
802 mutex_lock(&sd_mtx); 798 mutex_lock(&sd_mtx);
803#ifndef BOOTLOADER 799#ifndef BOOTLOADER
804 sd_enable(true); 800 sd_enable(true);
@@ -821,6 +817,10 @@ static int sd_transfer_sectors(IF_MD2(int drive,) unsigned long start,
821 goto sd_transfer_error; 817 goto sd_transfer_error;
822 } 818 }
823 819
820 /* skip SanDisk OF */
821 if (drive == INTERNAL_AS3525)
822 start += AMS_OF_SIZE;
823
824 /* CMD7 w/rca: Select card to put it in TRAN state */ 824 /* CMD7 w/rca: Select card to put it in TRAN state */
825 if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_NO_RESP, NULL)) 825 if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_NO_RESP, NULL))
826 return -19; 826 return -19;