linux_dsm_epyc7002/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
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
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
kirkwood
mediatek ASoC: Mediatek: MT8183: add I2S2 control path from UL2 and UL3 2019-05-02 10:46:18 +09:00
meson
mxs
nuc900
pxa
qcom
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
tegra
ti
txx9
uniphier
ux500
xilinx
xtensa
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
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
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