summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-08-21 11:10:05 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-08-21 20:18:36 +0200
commit462adf2a0fefbfdbccfafa11c999ac6beb114e8a (patch)
treec913884505143715791afbf64877ce116c501252 /firmware
parente90a5efe543914264bf697518ebf9564ff8a9964 (diff)
downloadrockbox-462adf2a0fefbfdbccfafa11c999ac6beb114e8a.tar.gz
rockbox-462adf2a0fefbfdbccfafa11c999ac6beb114e8a.zip
imx233: always keep cards in TRAN mode
Instead of going back and forth between TRAN and STBY modes, stay in TRAN mode all the time, this avoid two commands on each read/write and a potential delay to wait for the card. Change-Id: Iafd456ab9a581d870331b622eeb48dcc254eda7f
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/sdmmc-imx233.c22
1 files changed, 0 insertions, 22 deletions
diff --git a/firmware/target/arm/imx233/sdmmc-imx233.c b/firmware/target/arm/imx233/sdmmc-imx233.c
index 5ebf0c7d3b..99dd817ec6 100644
--- a/firmware/target/arm/imx233/sdmmc-imx233.c
+++ b/firmware/target/arm/imx233/sdmmc-imx233.c
@@ -497,9 +497,6 @@ static int init_mmc_drive(int drive)
497 window_start[drive] = 0; 497 window_start[drive] = 0;
498 window_end[drive] = *sec_count; 498 window_end[drive] = *sec_count;
499 } 499 }
500 /* deselect card */
501 if(!send_cmd(drive, MMC_DESELECT_CARD, 0, MCI_NO_RESP, NULL))
502 return -13;
503 500
504 /* MMC always support CMD23 */ 501 /* MMC always support CMD23 */
505 support_set_block_count[drive] = false; 502 support_set_block_count[drive] = false;
@@ -578,18 +575,6 @@ static int transfer_sectors(int drive, unsigned long start, int count, void *buf
578 ret = -201; 575 ret = -201;
579 goto Lend; 576 goto Lend;
580 } 577 }
581 /* select card.
582 * NOTE: rely on SD_SELECT_CARD=MMC_SELECT_CARD */
583 if(!send_cmd(drive, SD_SELECT_CARD, SDMMC_RCA(drive), MCI_NO_RESP, NULL))
584 {
585 ret = -20;
586 goto Lend;
587 }
588 /* wait for TRAN state */
589 /* NOTE: rely on SD_TRAN=MMC_TRAN */
590 ret = wait_for_state(drive, SD_TRAN);
591 if(ret < 0)
592 goto Ldeselect;
593 578
594 /** 579 /**
595 * NOTE: we need to make sure dma transfers are aligned. This is handled 580 * NOTE: we need to make sure dma transfers are aligned. This is handled
@@ -646,13 +631,6 @@ static int transfer_sectors(int drive, unsigned long start, int count, void *buf
646 else 631 else
647 ret = __xfer_sectors(drive, start, count, buf, read); 632 ret = __xfer_sectors(drive, start, count, buf, read);
648 } 633 }
649
650 /* deselect card */
651 Ldeselect:
652 /* CMD7 w/rca =0 : deselects card & puts it in STBY state
653 * NOTE: rely on SD_DESELECT_CARD=MMC_DESELECT_CARD */
654 if(!send_cmd(drive, SD_DESELECT_CARD, 0, MCI_NO_RESP, NULL))
655 ret = -23;
656 Lend: 634 Lend:
657 /* update led status */ 635 /* update led status */
658 led(false); 636 led(false);