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
This commit is contained in:
parent
746fd7f2db
commit
541960a110
2 changed files with 11 additions and 0 deletions
|
@ -535,6 +535,16 @@ void dsp_init(void)
|
|||
for (unsigned int j = 0; j < ARRAYLEN(dsp_init_fn); ++j)
|
||||
dsp_init_fn[j](dsp, i);
|
||||
|
||||
/*
|
||||
* FIXME: This is a no-op and should not be needed, but it
|
||||
* appears there is a race condition here that causes
|
||||
* prefetch abort panics on the Clip+. See FS#13386.
|
||||
* Replacing the loop with mdelay(1) also suppresses
|
||||
* the crash.
|
||||
*/
|
||||
for (unsigned int j = 0; j < DSP_NUM_PROC_STAGES; j++)
|
||||
dsp_proc_database[j]->configure(NULL, dsp, DSP_INIT, i);
|
||||
|
||||
dsp_configure(dsp, DSP_RESET, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ enum dsp_ids
|
|||
|
||||
enum dsp_settings
|
||||
{
|
||||
DSP_INIT,
|
||||
DSP_RESET,
|
||||
DSP_SET_FREQUENCY,
|
||||
DSP_SET_SAMPLE_DEPTH,
|
||||
|
|
Loading…
Reference in a new issue