diff --git a/firmware/mpeg.c b/firmware/mpeg.c index f9df3236f2..1a42ee9c2f 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -1353,12 +1353,12 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i #endif #ifdef HAVE_MAS3507D + mas_readmem(MAS_BANK_D1, 0xff7, &mas_version_code, 1); + mas_writereg(0x3b, 0x20); /* Don't ask why. The data sheet doesn't say */ mas_run(1); sleep(HZ); - mas_readmem(MAS_BANK_D1, 0xff7, &mas_version_code, 1); - /* Clear the upper 12 bits of the 32-bit samples */ mas_writereg(0xc5, 0); mas_writereg(0xc6, 0); @@ -1366,9 +1366,9 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i /* We need to set the PLL for a 14.1318MHz crystal */ if(mas_version_code == 0x0601) /* Version F10? */ { - val = 0x5d9e8; + val = 0x5d9d0; mas_writemem(MAS_BANK_D0, 0x32d, &val, 1); - val = 0xfffceb8d; + val = 0xfffceceb; mas_writemem(MAS_BANK_D0, 0x32e, &val, 1); val = 0x0; mas_writemem(MAS_BANK_D0, 0x32f, &val, 1); @@ -1376,14 +1376,15 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i } else { - val = 0x5d9e8; + val = 0x5d9d0; mas_writemem(MAS_BANK_D0, 0x36d, &val, 1); - val = 0xfffceb8d; + val = 0xfffceceb; mas_writemem(MAS_BANK_D0, 0x36e, &val, 1); val = 0x0; mas_writemem(MAS_BANK_D0, 0x36f, &val, 1); mas_run(0xfcb); } + #endif mp3buflen = mp3end - mp3buf;