diff options
author | Jens Arnold <amiconn@rockbox.org> | 2004-11-07 08:09:08 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2004-11-07 08:09:08 +0000 |
commit | 6fde243d52ed9b327b41cb75364e899555ccdf51 (patch) | |
tree | 9d7c9658205155d28599772fa15acef7146150ff /firmware/mp3_playback.c | |
parent | 1c9ab1ba692cde7ebcd98b13811b274cf9e7a00b (diff) | |
download | rockbox-6fde243d52ed9b327b41cb75364e899555ccdf51.tar.gz rockbox-6fde243d52ed9b327b41cb75364e899555ccdf51.zip |
Player: Slightly shorter MAS poll interval fixes playback of 384 kbps 48 kHz layer 2 files. Others: Correct serial bitrate allows increasing the postpone_dma_tick delay a bit without disturbing playback of same files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5387 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/mp3_playback.c')
-rw-r--r-- | firmware/mp3_playback.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/firmware/mp3_playback.c b/firmware/mp3_playback.c index 234dc6a20f..a7284aeff0 100644 --- a/firmware/mp3_playback.c +++ b/firmware/mp3_playback.c | |||
@@ -335,19 +335,12 @@ static const unsigned int prescale_table[] = | |||
335 | bool dma_on; /* The DMA is active */ | 335 | bool dma_on; /* The DMA is active */ |
336 | 336 | ||
337 | #if CONFIG_HWCODEC == MAS3507D | 337 | #if CONFIG_HWCODEC == MAS3507D |
338 | static void mas_poll_start(int interval_in_ms) | 338 | static void mas_poll_start(void) |
339 | { | 339 | { |
340 | unsigned int count; | 340 | unsigned int count; |
341 | 341 | ||
342 | count = (FREQ * interval_in_ms) / 1000 / 8; | 342 | count = 9 * FREQ / 10000 / 8; /* 0.9 ms */ |
343 | 343 | ||
344 | if(count > 0xffff) | ||
345 | { | ||
346 | panicf("Error! The MAS poll interval is too long (%d ms)\n", | ||
347 | interval_in_ms); | ||
348 | return; | ||
349 | } | ||
350 | |||
351 | /* We are using timer 1 */ | 344 | /* We are using timer 1 */ |
352 | 345 | ||
353 | TSTR &= ~0x02; /* Stop the timer */ | 346 | TSTR &= ~0x02; /* Stop the timer */ |
@@ -371,7 +364,7 @@ static void postpone_dma_tick(void) | |||
371 | { | 364 | { |
372 | unsigned int count; | 365 | unsigned int count; |
373 | 366 | ||
374 | count = FREQ / 2000 / 8; | 367 | count = 8 * FREQ / 10000 / 8; /* 0.8 ms */ |
375 | 368 | ||
376 | /* We are using timer 1 */ | 369 | /* We are using timer 1 */ |
377 | 370 | ||
@@ -1014,7 +1007,7 @@ void mp3_init(int volume, int bass, int treble, int balance, int loudness, | |||
1014 | #endif | 1007 | #endif |
1015 | 1008 | ||
1016 | #if CONFIG_HWCODEC == MAS3507D | 1009 | #if CONFIG_HWCODEC == MAS3507D |
1017 | mas_poll_start(1); | 1010 | mas_poll_start(); |
1018 | 1011 | ||
1019 | mas_writereg(MAS_REG_KPRESCALE, 0xe9400); | 1012 | mas_writereg(MAS_REG_KPRESCALE, 0xe9400); |
1020 | dac_enable(true); | 1013 | dac_enable(true); |