summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c')
-rw-r--r--firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
index 83d3646ed1..00a2b22591 100644
--- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c
@@ -69,6 +69,8 @@ static inline void set_dma(const void *addr, size_t size)
69 int burst_size; 69 int burst_size;
70 logf("%x %d %x", (unsigned int)addr, size, REG_AIC_SR); 70 logf("%x %d %x", (unsigned int)addr, size, REG_AIC_SR);
71 71
72 commit_discard_dcache_range(addr, size);
73
72 if(size % 16) 74 if(size % 16)
73 { 75 {
74 if(size % 4) 76 if(size % 4)
@@ -88,7 +90,6 @@ static inline void set_dma(const void *addr, size_t size)
88 burst_size = DMAC_DCMD_DS_16BYTE; 90 burst_size = DMAC_DCMD_DS_16BYTE;
89 } 91 }
90 92
91 __dcache_writeback_all();
92 REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) = DMAC_DCCSR_NDES; 93 REG_DMAC_DCCSR(DMA_AIC_TX_CHANNEL) = DMAC_DCCSR_NDES;
93 REG_DMAC_DSAR(DMA_AIC_TX_CHANNEL) = PHYSADDR((unsigned long)addr); 94 REG_DMAC_DSAR(DMA_AIC_TX_CHANNEL) = PHYSADDR((unsigned long)addr);
94 REG_DMAC_DTAR(DMA_AIC_TX_CHANNEL) = PHYSADDR((unsigned long)AIC_DR); 95 REG_DMAC_DTAR(DMA_AIC_TX_CHANNEL) = PHYSADDR((unsigned long)AIC_DR);