summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/pcm_playback.c3
-rw-r--r--firmware/target/arm/pcm-pp.c3
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c3
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c3
4 files changed, 8 insertions, 4 deletions
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index 80f7e1f6b2..d81853e1cb 100644
--- a/firmware/pcm_playback.c
+++ b/firmware/pcm_playback.c
@@ -78,7 +78,8 @@ void pcm_play_dma_start(const void *addr, size_t size)
78void pcm_play_dma_stop(void) 78void pcm_play_dma_stop(void)
79{ 79{
80 pcm_playing = false; 80 pcm_playing = false;
81 pcm_paused = false; 81 if (!audio_status())
82 pcm_paused = false;
82} 83}
83 84
84void pcm_play_pause_pause(void) 85void pcm_play_pause_pause(void)
diff --git a/firmware/target/arm/pcm-pp.c b/firmware/target/arm/pcm-pp.c
index 35bcd343cb..29e5275745 100644
--- a/firmware/target/arm/pcm-pp.c
+++ b/firmware/target/arm/pcm-pp.c
@@ -254,7 +254,8 @@ void pcm_play_dma_start(const void *addr, size_t size)
254void pcm_play_dma_stop(void) 254void pcm_play_dma_stop(void)
255{ 255{
256 pcm_playing = false; 256 pcm_playing = false;
257 pcm_paused = false; 257 if (!audio_status())
258 pcm_paused = false;
258 259
259#ifdef CPU_PP502x 260#ifdef CPU_PP502x
260 /* Disable playback FIFO and interrupt */ 261 /* Disable playback FIFO and interrupt */
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
index 0624aa6f2f..57873faaff 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
@@ -168,7 +168,8 @@ static void pcm_play_dma_stop_fiq(void)
168 while (IISCON & (1<<7)) ; 168 while (IISCON & (1<<7)) ;
169 169
170 pcm_playing = false; 170 pcm_playing = false;
171 pcm_paused = false; 171 if (!audio_status())
172 pcm_paused = false;
172 } 173 }
173 174
174 /* Disconnect the IIS clock */ 175 /* Disconnect the IIS clock */
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index 41aa9fbc61..315479f115 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -216,7 +216,8 @@ void pcm_play_dma_start(const void *addr, size_t size)
216static void pcm_play_dma_stop_irq(void) 216static void pcm_play_dma_stop_irq(void)
217{ 217{
218 pcm_playing = false; 218 pcm_playing = false;
219 pcm_paused = false; 219 if (!audio_status())
220 pcm_paused = false;
220 221
221 DSR0 = 1; 222 DSR0 = 1;
222 DCR0 = 0; 223 DCR0 = 0;