diff options
Diffstat (limited to 'firmware/target/arm/as3525')
-rw-r--r-- | firmware/target/arm/as3525/sd-as3525.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525.c b/firmware/target/arm/as3525/sd-as3525.c index 19914abd43..1f935a426e 100644 --- a/firmware/target/arm/as3525/sd-as3525.c +++ b/firmware/target/arm/as3525/sd-as3525.c | |||
@@ -604,6 +604,16 @@ static int sd_select_bank(signed char bank) | |||
604 | int ret; | 604 | int ret; |
605 | unsigned loops = 0; | 605 | unsigned loops = 0; |
606 | 606 | ||
607 | memset(uncached_buffer, 0, 512); | ||
608 | if(bank == -1) | ||
609 | { /* enable bank switching */ | ||
610 | uncached_buffer[0] = 16; | ||
611 | uncached_buffer[1] = 1; | ||
612 | uncached_buffer[2] = 10; | ||
613 | } | ||
614 | else | ||
615 | uncached_buffer[0] = bank; | ||
616 | |||
607 | do { | 617 | do { |
608 | if(loops++ > PL180_MAX_TRANSFER_ERRORS) | 618 | if(loops++ > PL180_MAX_TRANSFER_ERRORS) |
609 | panicf("SD bank %d error : 0x%x", bank, | 619 | panicf("SD bank %d error : 0x%x", bank, |
@@ -623,16 +633,6 @@ static int sd_select_bank(signed char bank) | |||
623 | 633 | ||
624 | mci_delay(); | 634 | mci_delay(); |
625 | 635 | ||
626 | memset(uncached_buffer, 0, 512); | ||
627 | if(bank == -1) | ||
628 | { /* enable bank switching */ | ||
629 | uncached_buffer[0] = 16; | ||
630 | uncached_buffer[1] = 1; | ||
631 | uncached_buffer[2] = 10; | ||
632 | } | ||
633 | else | ||
634 | uncached_buffer[0] = bank; | ||
635 | |||
636 | dma_retain(); | 636 | dma_retain(); |
637 | /* we don't use the uncached buffer here, because we need the | 637 | /* we don't use the uncached buffer here, because we need the |
638 | * physical memory address for DMA transfers */ | 638 | * physical memory address for DMA transfers */ |