Home
last modified time | relevance | path

Searched hist:"3 b2f36068c28f05b3bfc728dba337cdcec465262" (Results 1 – 1 of 1) sorted by relevance

/openbmc/linux/sound/soc/sof/intel/
H A Dhda-dsp.cdiff 3b2f36068c28f05b3bfc728dba337cdcec465262 Thu Oct 12 14:18:48 CDT 2023 Peter Ujfalusi <peter.ujfalusi@linux.intel.com> ASoC: SOF: Intel: hda-dsp: Make sure that no irq handler is pending before suspend

[ Upstream commit 576a0b71b5b479008dacb3047a346625040f5ac6 ]

In the existing IPC support, the reply to each IPC message is handled in
an IRQ thread. The assumption is that the IRQ thread is scheduled without
significant delays.

On an experimental (iow, buggy) kernel, the IRQ thread dealing with the
reply to the last IPC message before powering-down the DSP can be delayed
by several seconds. The IRQ thread will proceed with register accesses
after the DSP is powered-down which results in a kernel crash.

While the bug which causes the delay is not in the audio stack, we must
handle such cases with defensive programming to avoid such crashes.

Call synchronize_irq() before proceeding to power down the DSP to make
sure that no irq thread is pending execution.

Closes: https://github.com/thesofproject/linux/issues/4608
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231012191850.147140-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>