Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

rbcodec/dsp: restore configure loop in dsp_init() (FS#13386)

It seems removing this causes a crash on the Clip+ when playing
any file. Appears to be a timing-related issue as replacing the
loop with an mdelay() also fixes it. Needs further investigation
to identify the real cause of the problem, see FS#13386.

Change-Id: Ia93a2887a79b376de50563d6bb3bbc79cee11a1c

+11
+10
lib/rbcodec/dsp/dsp_core.c
··· 535 535 for (unsigned int j = 0; j < ARRAYLEN(dsp_init_fn); ++j) 536 536 dsp_init_fn[j](dsp, i); 537 537 538 + /* 539 + * FIXME: This is a no-op and should not be needed, but it 540 + * appears there is a race condition here that causes 541 + * prefetch abort panics on the Clip+. See FS#13386. 542 + * Replacing the loop with mdelay(1) also suppresses 543 + * the crash. 544 + */ 545 + for (unsigned int j = 0; j < DSP_NUM_PROC_STAGES; j++) 546 + dsp_proc_database[j]->configure(NULL, dsp, DSP_INIT, i); 547 + 538 548 dsp_configure(dsp, DSP_RESET, 0); 539 549 } 540 550 }
+1
lib/rbcodec/dsp/dsp_core.h
··· 32 32 33 33 enum dsp_settings 34 34 { 35 + DSP_INIT, 35 36 DSP_RESET, 36 37 DSP_SET_FREQUENCY, 37 38 DSP_SET_SAMPLE_DEPTH,