diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c b/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c index 55ffecce09..1960fcbd35 100644 --- a/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c | |||
@@ -532,6 +532,9 @@ static int jz_sd_transmit_data(const int drive, struct sd_request *req) | |||
532 | #if SD_DMA_ENABLE | 532 | #if SD_DMA_ENABLE |
533 | static int jz_sd_receive_data_dma(const int drive, struct sd_request *req) | 533 | static int jz_sd_receive_data_dma(const int drive, struct sd_request *req) |
534 | { | 534 | { |
535 | /* flush dcache */ | ||
536 | discard_dcache_range(req->buffer, req->cnt); | ||
537 | |||
535 | /* setup dma channel */ | 538 | /* setup dma channel */ |
536 | REG_DMAC_DCCSR(DMA_SD_RX_CHANNEL(drive)) = 0; | 539 | REG_DMAC_DCCSR(DMA_SD_RX_CHANNEL(drive)) = 0; |
537 | REG_DMAC_DSAR(DMA_SD_RX_CHANNEL(drive)) = PHYSADDR(MSC_RXFIFO(MSC_CHN(drive))); /* DMA source addr */ | 540 | REG_DMAC_DSAR(DMA_SD_RX_CHANNEL(drive)) = PHYSADDR(MSC_RXFIFO(MSC_CHN(drive))); /* DMA source addr */ |
@@ -558,16 +561,13 @@ static int jz_sd_receive_data_dma(const int drive, struct sd_request *req) | |||
558 | /* clear status and disable channel */ | 561 | /* clear status and disable channel */ |
559 | REG_DMAC_DCCSR(DMA_SD_RX_CHANNEL(drive)) = 0; | 562 | REG_DMAC_DCCSR(DMA_SD_RX_CHANNEL(drive)) = 0; |
560 | 563 | ||
561 | /* flush dcache */ | ||
562 | dma_cache_wback_inv((unsigned long) req->buffer, req->cnt); | ||
563 | |||
564 | return SD_NO_ERROR; | 564 | return SD_NO_ERROR; |
565 | } | 565 | } |
566 | 566 | ||
567 | static int jz_sd_transmit_data_dma(const int drive, struct sd_request *req) | 567 | static int jz_sd_transmit_data_dma(const int drive, struct sd_request *req) |
568 | { | 568 | { |
569 | /* flush dcache */ | 569 | /* flush dcache */ |
570 | dma_cache_wback_inv((unsigned long) req->buffer, req->cnt); | 570 | commit_discard_dcache_range(req->buffer, req->cnt); |
571 | 571 | ||
572 | /* setup dma channel */ | 572 | /* setup dma channel */ |
573 | REG_DMAC_DCCSR(DMA_SD_TX_CHANNEL(drive)) = 0; | 573 | REG_DMAC_DCCSR(DMA_SD_TX_CHANNEL(drive)) = 0; |