diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx')
4 files changed, 6 insertions, 0 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/codec-jz4740.c b/firmware/target/mips/ingenic_jz47xx/codec-jz4740.c index 702f3bb50e..a41f047026 100644 --- a/firmware/target/mips/ingenic_jz47xx/codec-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/codec-jz4740.c | |||
@@ -267,6 +267,7 @@ void audiohw_postinit(void) | |||
267 | 267 | ||
268 | void audiohw_init(void) | 268 | void audiohw_init(void) |
269 | { | 269 | { |
270 | __aic_play_lastsample(); /* on FIFO underflow */ | ||
270 | i2s_codec_init(); | 271 | i2s_codec_init(); |
271 | } | 272 | } |
272 | 273 | ||
diff --git a/firmware/target/mips/ingenic_jz47xx/codec-jz4760.c b/firmware/target/mips/ingenic_jz47xx/codec-jz4760.c index bc4286fd6a..60bfecb08c 100644 --- a/firmware/target/mips/ingenic_jz47xx/codec-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/codec-jz4760.c | |||
@@ -115,6 +115,7 @@ void audiohw_init(void) | |||
115 | __cpm_start_aic(); | 115 | __cpm_start_aic(); |
116 | 116 | ||
117 | /* Init AIC */ | 117 | /* Init AIC */ |
118 | __aic_play_lastsample(); /* on FIFO underflow. Versus 0.. */ | ||
118 | __i2s_enable_sclk(); | 119 | __i2s_enable_sclk(); |
119 | __i2s_external_codec(); | 120 | __i2s_external_codec(); |
120 | __i2s_select_msbjustified(); | 121 | __i2s_select_msbjustified(); |
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c index 00a2b22591..ef2597ae69 100644 --- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4740.c | |||
@@ -137,6 +137,8 @@ void DMA_CALLBACK(DMA_AIC_TX_CHANNEL)(void) | |||
137 | 137 | ||
138 | void pcm_play_dma_start(const void *addr, size_t size) | 138 | void pcm_play_dma_start(const void *addr, size_t size) |
139 | { | 139 | { |
140 | pcm_play_dma_stop(); | ||
141 | |||
140 | dma_enable(); | 142 | dma_enable(); |
141 | 143 | ||
142 | set_dma(addr, size); | 144 | set_dma(addr, size); |
diff --git a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c index 59b086e4f8..098c28ecf5 100644 --- a/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/pcm-jz4760.c | |||
@@ -128,6 +128,8 @@ void DMA_CALLBACK(DMA_AIC_TX_CHANNEL)(void) | |||
128 | 128 | ||
129 | void pcm_play_dma_start(const void *addr, size_t size) | 129 | void pcm_play_dma_start(const void *addr, size_t size) |
130 | { | 130 | { |
131 | pcm_play_dma_stop(); | ||
132 | |||
131 | __dmac_channel_enable_clk(DMA_AIC_TX_CHANNEL); | 133 | __dmac_channel_enable_clk(DMA_AIC_TX_CHANNEL); |
132 | 134 | ||
133 | set_dma(addr, size); | 135 | set_dma(addr, size); |