summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/ata-sd-jz4760.c8
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
533static int jz_sd_receive_data_dma(const int drive, struct sd_request *req) 533static 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
567static int jz_sd_transmit_data_dma(const int drive, struct sd_request *req) 567static 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;