linux_dsm_epyc7002/sound/soc/sof/intel
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
..
apl.c ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00:00
bdw.c ASoC: SOF: Intel: only support INFO_BATCH for legacy platforms 2019-10-25 11:08:04 +01:00
byt.c ASoC: SOF: Intel: only support INFO_BATCH for legacy platforms 2019-10-25 11:08:04 +01:00
cnl.c ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00:00
hda-bus.c ASoC: SOF: Intel: Add missing include file hdac_hda.h 2019-08-09 13:24:20 +01:00
hda-codec.c ASoC: SOF: Intel: add support for snd-hda-codec-hdmi 2019-10-29 17:32:04 +00:00
hda-ctrl.c ASoC: SOF: Intel: hda: Disable DMI L1 entry during capture 2019-10-01 18:32:01 +01:00
hda-dai.c ASoC: SOF: Intel: hda: fix stream id setting 2019-07-23 12:25:31 +01:00
hda-dsp.c ASoC: SOF: Intel: hda: set L1SEN on S0ix suspend 2019-11-08 12:10:08 +00:00
hda-ipc.c ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00:00
hda-ipc.h ASoC: SOF: Intel: HDA: add cAVS specific compact IPC header file 2019-10-28 14:43:58 +00:00
hda-loader.c ASoC: SOF: Intel: hda: add dev_err() traces for snd_sof_dsp_read_poll_timeout() 2019-10-23 17:45:55 +01:00
hda-pcm.c ASoC: SOF: Intel: hda: fix reset of host_period_bytes 2019-10-01 18:35:28 +01:00
hda-stream.c ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00: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: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00:00
hda.h ASoC: SOF: Intel: hda: solve MSI issues by merging ipc and stream irq handlers 2019-12-09 18:35:56 +00:00
intel-ipc.c ASoC: SOF: Intel: Add legacy IPC support 2019-04-28 02:50:40 +09:00
Kconfig ASoC: SOF: Intel: make common HDMI driver default 2019-12-09 18:32:40 +00: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