forked from len0rd/rockbox
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
This commit is contained in:
parent
847a0fd56c
commit
acd09d3334
1 changed files with 5 additions and 3 deletions
|
|
@ -546,11 +546,11 @@ static inline void copy_write_sectors(const unsigned char** buf)
|
||||||
|
|
||||||
static int sd_select_bank(unsigned char bank)
|
static int sd_select_bank(unsigned char bank)
|
||||||
{
|
{
|
||||||
unsigned char card_data[512];
|
unsigned char card_data[FIFO_LEN*2];// FIFO_LEN words=FIFO_LEN*2 bytes
|
||||||
const unsigned char* write_buf;
|
const unsigned char* write_buf;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
memset(card_data, 0, 512);
|
memset(card_data, 0, sizeof card_data);
|
||||||
|
|
||||||
ret = sd_wait_for_state(SD_TRAN, EC_TRAN_SEL_BANK);
|
ret = sd_wait_for_state(SD_TRAN, EC_TRAN_SEL_BANK);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|
@ -569,13 +569,15 @@ static int sd_select_bank(unsigned char bank)
|
||||||
card_data[0] = bank;
|
card_data[0] = bank;
|
||||||
|
|
||||||
/* Write the card data */
|
/* Write the card data */
|
||||||
write_buf = card_data;
|
|
||||||
for (i = 0; i < SD_BLOCK_SIZE/2; i += FIFO_LEN)
|
for (i = 0; i < SD_BLOCK_SIZE/2; i += FIFO_LEN)
|
||||||
{
|
{
|
||||||
|
write_buf = card_data;
|
||||||
/* Wait for the FIFO to empty */
|
/* Wait for the FIFO to empty */
|
||||||
if (sd_poll_status(STAT_XMIT_FIFO_EMPTY, 10000))
|
if (sd_poll_status(STAT_XMIT_FIFO_EMPTY, 10000))
|
||||||
{
|
{
|
||||||
copy_write_sectors(&write_buf); /* Copy one chunk of 16 words */
|
copy_write_sectors(&write_buf); /* Copy one chunk of 16 words */
|
||||||
|
/* clear buffer: only the first chunk contains interesting data (bank), the remaining is zero filling */
|
||||||
|
memset(card_data, 0, sizeof card_data);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue