linux-imx/sound/soc/sof/intel
Peter Ujfalusi 3b2f36068c ASoC: SOF: Intel: hda-dsp: Make sure that no irq handler is pending before suspend
[ Upstream commit 576a0b71b5 ]

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>
2024-08-29 17:33:28 +02:00
..
apl.c
atom.c
atom.h
bdw.c
byt.c
cnl.c
ext_manifest.h
hda-bus.c
hda-codec.c ASoC: SOF: Intel: hda-codec: Delay the codec device registration 2024-01-20 11:51:47 +01:00
hda-common-ops.c
hda-ctrl.c
hda-dai-ops.c
hda-dai.c ASoC: SOF: Intel: hda: fix null deref on system suspend entry 2024-07-18 13:21:15 +02:00
hda-dsp.c ASoC: SOF: Intel: hda-dsp: Make sure that no irq handler is pending before suspend 2024-08-29 17:33:28 +02:00
hda-ipc.c
hda-ipc.h
hda-loader-skl.c
hda-loader.c
hda-mlink.c
hda-pcm.c ASoC: SOF: Intel: hda-pcm: Limit the maximum number of periods by MAX_BDL_ENTRIES 2024-07-25 09:50:55 +02:00
hda-probes.c
hda-stream.c ASoC: SOF: Intel: Refactor code for HDA stream creation 2023-08-15 13:54:56 +01:00
hda-trace.c
hda.c ASoC: SOF: Intel: Initialize chip in hda_sdw_check_wakeen_irq() 2023-08-10 00:27:23 +01:00
hda.h ASoC: SOF: Intel: pci-mtl: fix ARL-S definitions 2024-06-12 11:11:59 +02:00
icl.c
Kconfig
lnl.c ASoC: SOF: Intel: lnl: Correct rom_status_reg 2024-06-12 11:11:59 +02:00
lnl.h ASoC: SOF: Intel: lnl: Correct rom_status_reg 2024-06-12 11:11:59 +02:00
Makefile
mtl.c ASoC: SOF: Intel: mtl: Implement firmware boot state check 2024-06-12 11:12:00 +02:00
mtl.h ASoC: SOF: Intel: mtl: Correct rom_status_reg 2024-06-12 11:11:59 +02:00
pci-apl.c
pci-cnl.c
pci-icl.c
pci-lnl.c ASoC: SOF: Intel: add default firmware library path for LNL 2024-05-17 12:01:59 +02:00
pci-mtl.c ASoC: SOF: Intel: pci-mtl: fix ARL-S definitions 2024-06-12 11:11:59 +02:00
pci-skl.c
pci-tgl.c
pci-tng.c
shim.h
skl.c
tgl.c