diff options
author | Amaury Pouly <pamaury@rockbox.org> | 2010-04-22 08:31:02 +0000 |
---|---|---|
committer | Amaury Pouly <pamaury@rockbox.org> | 2010-04-22 08:31:02 +0000 |
commit | acd09d33349b9fa6721d9a15dd1e4a4cb6ac9842 (patch) | |
tree | 4c699a45445e7fbea329b0ad5ff16e7528bedc65 | |
parent | 847a0fd56c4e98c58ddabb30b1d36c11c8b0536c (diff) | |
download | rockbox-acd09d33349b9fa6721d9a15dd1e4a4cb6ac9842.tar.gz rockbox-acd09d33349b9fa6721d9a15dd1e4a4cb6ac9842.zip |
ata-sd-pp: reduce size of the buffer used to switch bank, no functional change intended.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25696 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/target/arm/ata-sd-pp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/firmware/target/arm/ata-sd-pp.c b/firmware/target/arm/ata-sd-pp.c index fafc5f20d9..7929449a23 100644 --- a/firmware/target/arm/ata-sd-pp.c +++ b/firmware/target/arm/ata-sd-pp.c | |||
@@ -546,11 +546,11 @@ static inline void copy_write_sectors(const unsigned char** buf) | |||
546 | 546 | ||
547 | static int sd_select_bank(unsigned char bank) | 547 | static int sd_select_bank(unsigned char bank) |
548 | { | 548 | { |
549 | unsigned char card_data[512]; | 549 | unsigned char card_data[FIFO_LEN*2];// FIFO_LEN words=FIFO_LEN*2 bytes |
550 | const unsigned char* write_buf; | 550 | const unsigned char* write_buf; |
551 | int i, ret; | 551 | int i, ret; |
552 | 552 | ||
553 | memset(card_data, 0, 512); | 553 | memset(card_data, 0, sizeof card_data); |
554 | 554 | ||
555 | ret = sd_wait_for_state(SD_TRAN, EC_TRAN_SEL_BANK); | 555 | ret = sd_wait_for_state(SD_TRAN, EC_TRAN_SEL_BANK); |
556 | if (ret < 0) | 556 | if (ret < 0) |
@@ -569,13 +569,15 @@ static int sd_select_bank(unsigned char bank) | |||
569 | card_data[0] = bank; | 569 | card_data[0] = bank; |
570 | 570 | ||
571 | /* Write the card data */ | 571 | /* Write the card data */ |
572 | write_buf = card_data; | ||
573 | for (i = 0; i < SD_BLOCK_SIZE/2; i += FIFO_LEN) | 572 | for (i = 0; i < SD_BLOCK_SIZE/2; i += FIFO_LEN) |
574 | { | 573 | { |
574 | write_buf = card_data; | ||
575 | /* Wait for the FIFO to empty */ | 575 | /* Wait for the FIFO to empty */ |
576 | if (sd_poll_status(STAT_XMIT_FIFO_EMPTY, 10000)) | 576 | if (sd_poll_status(STAT_XMIT_FIFO_EMPTY, 10000)) |
577 | { | 577 | { |
578 | copy_write_sectors(&write_buf); /* Copy one chunk of 16 words */ | 578 | copy_write_sectors(&write_buf); /* Copy one chunk of 16 words */ |
579 | /* clear buffer: only the first chunk contains interesting data (bank), the remaining is zero filling */ | ||
580 | memset(card_data, 0, sizeof card_data); | ||
579 | continue; | 581 | continue; |
580 | } | 582 | } |
581 | 583 | ||