linux_dsm_epyc7002/sound/soc/sof/intel
Guennadi Liakhovetski 1183e9a634
ASoC: SOF: ipc: fix a race, leading to IPC timeouts
Currently on all supported platforms the IPC IRQ thread first signals
the sender when an IPC response is received from the DSP, then unmasks
the IPC interrupt. Those actions are performed without holding any
locks, so the thread can be interrupted between them. IPC timeouts
have been observed in such scenarios: if the sender is woken up and it
proceeds with sending the next message without unmasking the IPC
interrupt, it can miss the next response. This patch takes a spin-lock
to prevent the IRQ thread from being preempted at that point. It also
makes sure, that the next IPC transmission by the host cannot take
place before the IRQ thread has finished updating all the required IPC
registers.

Fixes: 53e0c72d98 ("ASoC: SOF: Add support for IPC IO between DSP and Host")
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-05-28 15:48:47 +01:00
..
apl.c ASoC: SOF: Intel: APL: add ipc dump function 2019-05-03 15:02:43 +09:00
bdw.c ASoC: SOF: ipc: fix a race, leading to IPC timeouts 2019-05-28 15:48:47 +01:00
byt.c ASoC: SOF: ipc: fix a race, leading to IPC timeouts 2019-05-28 15:48:47 +01:00
cnl.c ASoC: SOF: ipc: fix a race, leading to IPC timeouts 2019-05-28 15:48:47 +01:00
hda-bus.c ASoC: SOF: Intel: hda: set bus->idx as 0 2019-05-03 14:58:35 +09:00
hda-codec.c ASoC: SOF: Intel: Add support for HDAudio codecs 2019-04-28 02:51:27 +09:00
hda-ctrl.c ASoC: SOF: Intel: Add HDA controller for Intel DSP 2019-04-28 02:50:49 +09:00
hda-dai.c ASoC: SOF: intel: hda: add hw_params_upon_resume flag for hda stream 2019-05-03 15:01:45 +09:00
hda-dsp.c ASoC: SOF: intel: hda: add hw_params_upon_resume flag for hda stream 2019-05-03 15:01:45 +09:00
hda-ipc.c ASoC: SOF: ipc: fix a race, leading to IPC timeouts 2019-05-28 15:48:47 +01:00
hda-loader.c ASoC: SOF: Intel: hda: set I2S slave before enabling DSP 2019-05-03 14:58:11 +09:00
hda-pcm.c ASoC: SOF: Intel: hda-pcm: remove useless dependency on hdac_ext 2019-05-03 14:58:48 +09:00
hda-stream.c ASoC: SOF: Intel: hda-stream: handle real stream interrupts only 2019-05-03 15:01:26 +09:00
hda-trace.c ASoC: SOF: Intel: Add Intel specific HDA trace operations 2019-04-28 02:51:23 +09:00
hda.c ASoC: SOF: Intel: APL: add ipc dump function 2019-05-03 15:02:43 +09:00
hda.h ASoC: SOF: Intel: APL: add ipc dump function 2019-05-03 15:02:43 +09:00
intel-ipc.c ASoC: SOF: Intel: Add legacy IPC support 2019-04-28 02:50:40 +09:00
Kconfig ASoC: SOF: xtensa: fix undefined references 2019-05-08 15:41:40 +09:00
Makefile ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
shim.h ASoC: SOF: Intel: hda: add SSP info to the chip info struct 2019-05-03 14:57:39 +09:00