linux/sound/soc
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
..
adi ASoC: axi-i2s: let both capture and playback be optional 2019-03-11 17:17:38 +00:00
amd ASoC: amd: acp3x: Make acp3x_dai_i2s_ops static 2019-05-02 10:46:03 +09:00
atmel ASoC: atmel: tse850: Make some functions static 2019-05-02 10:46:05 +09:00
au1x
bcm
cirrus
codecs ASoC: rt5677-spi: Handle over reading when flipping bytes 2019-05-20 15:16:56 +01:00
dwc ASoC: dwc: Drop superfluous PCM preallocation error checks 2019-02-06 18:28:59 +01:00
fsl ASoC: fsl_asrc: Fix the issue about unsupported rate 2019-05-16 13:36:17 +01:00
generic ASoC: simple-card: Restore original configuration of DAI format 2019-05-24 13:10:33 +01:00
hisilicon
img
intel ASoC: Intel: sof-rt5682: fix AMP quirk support 2019-05-21 19:57:29 +01:00
jz4740 ASoC: jz4740: Depend on MIPS instead of MACH_JZ4740 2019-03-20 17:05:40 +00:00
kirkwood
mediatek ASoC: Mediatek: MT8183: add I2S2 control path from UL2 and UL3 2019-05-02 10:46:18 +09:00
meson ASoC: meson: axg-tdmout: add g12a support 2019-04-05 09:27:00 +07:00
mxs
nuc900
pxa ASoC: eliminate left-over from Raumfeld machine driver removal 2019-01-07 16:58:19 +00:00
qcom ASoC: qcom: add i2c dependency for SND_SOC_SDM845 2019-03-11 16:31:49 +00:00
rockchip ASoC: rockchip: Fix an uninitialized variable compile warning 2019-05-07 11:24:19 +09:00
samsung ASoC: samsung: tobermory: Convert to SPDX License Identifier 2019-04-19 16:59:55 +01:00
sh ASoC: rsnd: fixup 6ch settings to 8ch 2019-04-25 19:41:09 +01:00
sirf
sof ASoC: SOF: ipc: fix a race, leading to IPC timeouts 2019-05-28 15:48:47 +01:00
spear
sprd ASoC: sprd: Add reserved DMA memory support 2019-05-06 22:48:03 +09:00
sti
stm ASoC: stm32: i2s: update pcm hardware constraints 2019-05-08 17:13:38 +09:00
sunxi ASoC: sunxi: sun50i-codec-analog: Rename hpvcc regulator supply to cpvdd 2019-02-19 15:36:02 +00:00
tegra
ti ASoC: ti: fix davinci_mcasp_probe dependencies 2019-03-11 16:34:05 +00:00
txx9 ASoC: txx9: Drop superfluous PCM preallocation error checks 2019-02-06 18:29:33 +01:00
uniphier ASoC: uniphier: Drop superfluous PCM preallocation error checks 2019-02-06 18:29:39 +01:00
ux500
xilinx ASoC: xlnx: fix up for snd_pcm_lib_preallocate_pages_for_all() API change 2019-02-08 14:23:54 +01:00
xtensa ASoC: xtensa: Drop superfluous PCM preallocation error checks 2019-02-06 18:29:44 +01:00
zte
Kconfig ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
Makefile ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
soc-ac97.c
soc-acpi.c
soc-compress.c ASoC: compress: Add helper functions for component trigger/set_params 2019-02-06 15:51:04 +00:00
soc-core.c ASoC: soc-core: fixup references at soc_cleanup_card_resources() 2019-05-28 15:45:53 +01:00
soc-dapm.c ASoC: soc-core: fixup references at soc_cleanup_card_resources() 2019-05-28 15:45:53 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: More changes for v5.1 2019-02-28 13:30:55 +01:00
soc-io.c
soc-jack.c
soc-ops.c
soc-pcm.c ASoC: soc-pcm: BE dai needs prepare when pause release after resume 2019-05-13 12:38:16 +01:00
soc-topology.c Merge branch 'asoc-5.1' into asoc-5.2 2019-04-26 11:02:03 +01:00
soc-utils.c