summaryrefslogtreecommitdiff
path: root/firmware/pcm_playback.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/pcm_playback.c')
-rw-r--r--firmware/pcm_playback.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/firmware/pcm_playback.c b/firmware/pcm_playback.c
index 03afdace0a..6f395a58e2 100644
--- a/firmware/pcm_playback.c
+++ b/firmware/pcm_playback.c
@@ -248,7 +248,7 @@ void pcm_play_data(const unsigned char* start, int size,
248 dma_start(start, size); 248 dma_start(start, size);
249 249
250 /* Sleep a while, then unmute audio output */ 250 /* Sleep a while, then unmute audio output */
251 sleep(1); 251 sleep(HZ/8);
252 uda1380_mute(false); 252 uda1380_mute(false);
253} 253}
254 254
@@ -353,8 +353,14 @@ void pcm_init(void)
353 ICR4 = (ICR4 & 0xffff00ff) | 0x00001c00; 353 ICR4 = (ICR4 & 0xffff00ff) | 0x00001c00;
354 IMR &= ~(1<<14); /* bit 14 is DMA0 */ 354 IMR &= ~(1<<14); /* bit 14 is DMA0 */
355 355
356 pcm_play_init();
357 pcm_set_frequency(44100); 356 pcm_set_frequency(44100);
357
358 /* Turn on headphone power with audio output muted. */
359 uda1380_mute(true);
360 sleep(HZ/4);
361 uda1380_enable_output(true);
362
363 pcm_play_init();
358} 364}
359 365
360void pcm_play_set_watermark(int numbytes, void (*callback)(int bytes_left)) 366void pcm_play_set_watermark(int numbytes, void (*callback)(int bytes_left))
@@ -699,11 +705,6 @@ void pcm_play_init(void)
699 crossfade_active = false; 705 crossfade_active = false;
700 crossfade_init = false; 706 crossfade_init = false;
701 pcm_event_handler = NULL; 707 pcm_event_handler = NULL;
702
703 /* Turn on headphone power with audio output muted. */
704 uda1380_mute(true);
705 sleep(HZ/4);
706 uda1380_enable_output(true);
707} 708}
708 709
709void pcm_crossfade_enable(bool on_off) 710void pcm_crossfade_enable(bool on_off)