diff options
Diffstat (limited to 'firmware/pcm_playback.c')
-rw-r--r-- | firmware/pcm_playback.c | 15 |
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 | ||
360 | void pcm_play_set_watermark(int numbytes, void (*callback)(int bytes_left)) | 366 | void 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 | ||
709 | void pcm_crossfade_enable(bool on_off) | 710 | void pcm_crossfade_enable(bool on_off) |