diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-08-24 23:34:34 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-08-25 12:16:33 +0000 |
commit | 63ef81de314a29b3289ff896a29a8844c6f1607f (patch) | |
tree | 754792070c10723413038e33493eabf29a153ec4 /firmware/target/mips/ingenic_jz47xx/system-jz4760.c | |
parent | c06766bbeb13146c78c5aa1a4a3c4298de5d3f13 (diff) | |
download | rockbox-63ef81de314a29b3289ff896a29a8844c6f1607f.tar.gz rockbox-63ef81de314a29b3289ff896a29a8844c6f1607f.zip |
jz4760: Give each SD interface its own DMA channel, semaphore, and mutex
* Allows both SD interfaces to have requests in flight simultaneously
* Fixed a deadlock in the hotswap code
* Ensure TX DMA is idle before initiating a request (bug due to a typo)
Change-Id: I988fa29df5f8e41fc6bbdcc517db89842003b34d
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/system-jz4760.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/system-jz4760.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/system-jz4760.c b/firmware/target/mips/ingenic_jz47xx/system-jz4760.c index 3d4015c465..eb20985b97 100644 --- a/firmware/target/mips/ingenic_jz47xx/system-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/system-jz4760.c | |||
@@ -664,8 +664,10 @@ void dma_preinit(void) | |||
664 | REG_MDMAC_DMACKES = 0x1; | 664 | REG_MDMAC_DMACKES = 0x1; |
665 | 665 | ||
666 | REG_DMAC_DMACR(DMA_AIC_TX_CHANNEL) = DMAC_DMACR_DMAE | DMAC_DMACR_FAIC; | 666 | REG_DMAC_DMACR(DMA_AIC_TX_CHANNEL) = DMAC_DMACR_DMAE | DMAC_DMACR_FAIC; |
667 | REG_DMAC_DMACR(DMA_SD_RX_CHANNEL) = DMAC_DMACR_DMAE | DMAC_DMACR_FMSC; | 667 | REG_DMAC_DMACR(DMA_SD_RX_CHANNEL(0)) = DMAC_DMACR_DMAE | DMAC_DMACR_FMSC; |
668 | REG_DMAC_DMACR(DMA_SD_TX_CHANNEL) = DMAC_DMACR_DMAE | DMAC_DMACR_FMSC; | 668 | REG_DMAC_DMACR(DMA_SD_RX_CHANNEL(1)) = DMAC_DMACR_DMAE | DMAC_DMACR_FMSC; |
669 | REG_DMAC_DMACR(DMA_SD_TX_CHANNEL(0)) = DMAC_DMACR_DMAE | DMAC_DMACR_FMSC; | ||
670 | REG_DMAC_DMACR(DMA_SD_TX_CHANNEL(1)) = DMAC_DMACR_DMAE | DMAC_DMACR_FMSC; | ||
669 | } | 671 | } |
670 | 672 | ||
671 | /* Gets called *before* main */ | 673 | /* Gets called *before* main */ |