linux_dsm_epyc7002/sound/soc/sof
Bard Liao 7c11af9fcd
ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers
The existing code uses two handlers for a shared edge-based MSI interrupts.
In corner cases, interrupts are lost, leading to IPC timeouts. Those
timeouts do not appear in legacy mode.

This patch merges the two handlers and threads into a single one, and
simplifies the mask/unmask operations by using a single top-level mask
(Global Interrupt Enable). The handler only checks for interrupt
sources using the Global Interrupt Status (GIS) field, and all the
actual work happens in the thread. This also enables us to remove the
use of spin locks. Stream events are prioritized over IPC ones.

This patch was tested with HDaudio and SoundWire platforms, and all
known IPC timeout issues are solved in MSI mode. The
SoundWire-specific patches will be provided in follow-up patches,
where the SoundWire interrupts are handled in the same thread as IPC
and stream interrupts.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191204212859.13239-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-12-09 18:35:56 +00:00
..
imx ASoC: Updates for v5.5 2019-11-07 14:12:30 +01:00
intel ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00:00
xtensa sound fixes for 5.2-rc5 2019-06-14 05:37:06 -10:00
control.c Merge branch 'for-5.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.5 2019-11-06 16:29:34 +00:00
core.c ASoC: SOF: add helper to check if we should enter d0i3 suspend 2019-11-12 12:10:40 +00:00
debug.c Merge branch 'for-5.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.5 2019-11-06 16:29:34 +00:00
ipc.c Merge branch 'for-5.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.5 2019-11-06 16:29:34 +00:00
Kconfig ASoC: SOF: Intel: use def_tristate, avoid using select 2019-11-04 13:24:14 +00:00
loader.c ASoC: SOF: loader: fix kernel oops on firmware boot failure 2019-10-01 18:30:28 +01:00
Makefile ASoC: SOF: imx: Add i.MX8 HW support 2019-08-22 18:28:32 +01:00
nocodec.c ASoC: sof: use modern dai_link style 2019-06-06 22:10:38 +01:00
ops.c ASoC: SOF: Fix a compile warning with CONFIG_PCI=n 2019-05-07 11:23:57 +09:00
ops.h ASoC: SOF: return -ENOTSUPP if D0I3 is not supported 2019-10-28 14:46:21 +00:00
pcm.c ASoC: SOF: Drop superfluous snd_pcm_sgbuf_ops_page 2019-11-09 18:02:53 +01:00
pm.c ASoC: SOF: PM: only suspend to D0I3 when needed 2019-11-12 12:10:59 +00:00
sof-acpi-dev.c ASoC: SOF: acpi: add debug module param 2019-10-10 15:15:11 +01:00
sof-of-dev.c ASoC: SOF: Add OF DSP device support 2019-08-22 18:28:20 +01:00
sof-pci-dev.c ASoC: More updates for v5.5 2019-11-25 14:27:41 +01:00
sof-priv.h ASoC: SOF: add helper to check if we should enter d0i3 suspend 2019-11-12 12:10:40 +00:00
topology.c ASoC: SOF: topology: free kcontrol memory on error 2019-11-12 17:12:27 +00:00
trace.c ASoC: SOF: trace: move to opt-in with Kconfig and module parameter 2019-10-01 18:34:06 +01:00
utils.c ASoC: SOF: Add utils 2019-04-28 02:49:47 +09:00