summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-08-19 12:29:28 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-08-19 12:29:28 +0000
commit7db258f3c7f96fed08d80f26590c138897d9fbe5 (patch)
tree2a2184463671bcb01eed5fb1f591a197ee687903
parentd71f7824a14884c4a3dcdf543edc5b0c9eb2d0d0 (diff)
downloadrockbox-7db258f3c7f96fed08d80f26590c138897d9fbe5.tar.gz
rockbox-7db258f3c7f96fed08d80f26590c138897d9fbe5.zip
Removed the uda1380_mute() calls, since they were called in interrupt context, which could lead to a big crash. This will reintroduce a slight pop when starting/stopping playbac, and when switching tracks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7357 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/pcm_playback.c30
1 files changed, 3 insertions, 27 deletions
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index c79902845a..a6fa4fb2d8 100644
--- a/firmware/pcm_playback.c
+++ b/firmware/pcm_playback.c
@@ -191,12 +191,6 @@ void pcm_play_data(void (*get_more)(unsigned char** start, long* size))
191 get_more((unsigned char **)&start, (long *)&size); 191 get_more((unsigned char **)&start, (long *)&size);
192 get_more(&next_start, &next_size); 192 get_more(&next_start, &next_size);
193 dma_start(start, size); 193 dma_start(start, size);
194
195#if defined(HAVE_UDA1380)
196 uda1380_mute(false);
197#elif defined(HAVE_TLV320)
198 tlv320_mute(false);
199#endif
200} 194}
201 195
202long pcm_get_bytes_waiting(void) 196long pcm_get_bytes_waiting(void)
@@ -207,12 +201,6 @@ long pcm_get_bytes_waiting(void)
207void pcm_play_stop(void) 201void pcm_play_stop(void)
208{ 202{
209 if (pcm_playing) { 203 if (pcm_playing) {
210
211#if defined(HAVE_UDA1380)
212 uda1380_mute(true);
213#elif defined(HAVE_TLV320)
214 tlv320_mute(true);
215#endif
216 dma_stop(); 204 dma_stop();
217 } 205 }
218} 206}
@@ -230,23 +218,11 @@ void pcm_play_pause(bool play)
230 IIS2CONFIG = (pcm_freq << 12) | 0x300 | 4 << 2; 218 IIS2CONFIG = (pcm_freq << 12) | 0x300 | 4 << 2;
231 EBU1CONFIG = (7 << 12) | (3 << 8) | (1 << 5) | (5 << 2); 219 EBU1CONFIG = (7 << 12) | (3 << 8) | (1 << 5) | (5 << 2);
232 DCR0 |= DMA_EEXT | DMA_START; 220 DCR0 |= DMA_EEXT | DMA_START;
233
234#if defined(HAVE_UDA1380)
235 uda1380_mute(false);
236#elif defined(HAVE_TLV320)
237 tlv320_mute(false);
238#endif
239 } 221 }
240 else if(!pcm_paused && !play) 222 else if(!pcm_paused && !play)
241 { 223 {
242 logf("pause"); 224 logf("pause");
243 225
244#if defined(HAVE_UDA1380)
245 uda1380_mute(true);
246#elif defined(HAVE_TLV320)
247 tlv320_mute(true);
248#endif
249
250 /* Disable DMA peripheral request. */ 226 /* Disable DMA peripheral request. */
251 DCR0 &= ~DMA_EEXT; 227 DCR0 &= ~DMA_EEXT;
252 IIS2CONFIG = 0x800; 228 IIS2CONFIG = 0x800;
@@ -326,11 +302,11 @@ void pcm_init(void)
326 302
327 pcm_set_frequency(44100); 303 pcm_set_frequency(44100);
328 304
329 /* Turn on headphone power with audio output muted. */ 305 /* Turn on headphone power */
330#if defined(HAVE_UDA1380) 306#if defined(HAVE_UDA1380)
331 uda1380_mute(true); 307 uda1380_mute(false);
332#elif defined(HAVE_TLV320) 308#elif defined(HAVE_TLV320)
333 tlv320_mute(true); 309 tlv320_mute(false);
334#endif 310#endif
335 sleep(HZ/4); 311 sleep(HZ/4);
336#if defined(HAVE_UDA1380) 312#if defined(HAVE_UDA1380)