diff options
author | Jack Halpin <jack.halpin@gmail.com> | 2010-05-06 18:53:41 +0000 |
---|---|---|
committer | Jack Halpin <jack.halpin@gmail.com> | 2010-05-06 18:53:41 +0000 |
commit | db8d07589f42b98d4a27e038042d9694b8e9a303 (patch) | |
tree | 60ff79004073b225c64212a3d88d2f0052ec10ee /firmware/target/arm/as3525/sd-as3525v2.c | |
parent | ba0f8310bcec7dc631a6ce07c0c2c0c9059610f1 (diff) | |
download | rockbox-db8d07589f42b98d4a27e038042d9694b8e9a303.tar.gz rockbox-db8d07589f42b98d4a27e038042d9694b8e9a303.zip |
ad-as3525v2: Ask for a reponse from SD_APP_CMD to help with timing issues when switching to 4 bit widebus.
Some SD cards were having problems switching to 4 Bit widebus and this solution appears to remedy that.
Thanks to Luca_S!
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25846 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/sd-as3525v2.c')
-rw-r--r-- | firmware/target/arm/as3525/sd-as3525v2.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c index aae5e706ae..356deb88f1 100644 --- a/firmware/target/arm/as3525/sd-as3525v2.c +++ b/firmware/target/arm/as3525/sd-as3525v2.c | |||
@@ -542,15 +542,15 @@ static int sd_init_card(const int drive) | |||
542 | /* Switch to to 4 bit widebus mode */ | 542 | /* Switch to to 4 bit widebus mode */ |
543 | if(sd_wait_for_state(drive, SD_TRAN) < 0) | 543 | if(sd_wait_for_state(drive, SD_TRAN) < 0) |
544 | return -13; | 544 | return -13; |
545 | /* CMD55 */ | 545 | /* CMD55 */ /* Response is requested due to timing issue */ |
546 | if(!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_NO_RESP, NULL)) | 546 | if(!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, &response)) |
547 | return -14; | 547 | return -14; |
548 | /* ACMD6 */ | 548 | /* ACMD6 */ |
549 | if(!send_cmd(drive, SD_SET_BUS_WIDTH, 2, MCI_NO_RESP, NULL)) | 549 | if(!send_cmd(drive, SD_SET_BUS_WIDTH, 2, MCI_NO_RESP, NULL)) |
550 | return -15; | 550 | return -15; |
551 | mci_delay(); | 551 | mci_delay(); |
552 | /* CMD55 */ | 552 | /* CMD55 */ /* Response is requested due to timing issue */ |
553 | if(!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_NO_RESP, NULL)) | 553 | if(!send_cmd(drive, SD_APP_CMD, card_info[drive].rca, MCI_RESP, &response)) |
554 | return -16; | 554 | return -16; |
555 | /* ACMD42 */ | 555 | /* ACMD42 */ |
556 | if(!send_cmd(drive, SD_SET_CLR_CARD_DETECT, 0, MCI_NO_RESP, NULL)) | 556 | if(!send_cmd(drive, SD_SET_CLR_CARD_DETECT, 0, MCI_NO_RESP, NULL)) |