* [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA
@ 2024-07-24 8:19 Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 1/2] ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS " Peter Ujfalusi
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Peter Ujfalusi @ 2024-07-24 8:19 UTC (permalink / raw)
To: lgirdwood, broonie
Cc: linux-sound, pierre-louis.bossart, kai.vehmanen,
ranjani.sridharan, yung-chuan.liao, stable
Hi,
A recent patch available in 6.10 [1] uncovered two issues on how the DMA Link ID
is tracked with ChainDMA and can cause under specific conditions [2] to cause a DSP
panic.
The issue is not academic as we have one user report of it:
https://github.com/thesofproject/linux/issues/5116
The patches have been marked for stable backport to made there way to 6.10.
The first patch is fixing a code move patch, for older than 6.9 we would need
different patch to fix the original code, but since the issue is only valid for
6.10, I will do that at a later time.
Mark, can you please schedule these as fixes for 6.11 to get them fast to 6.10?
Thank you.
[1] ebd3b3014eeb ("ASoC: SOF: pcm: reset all PCM sources in case of xruns")
[2] https://github.com/thesofproject/linux/pull/5119#issuecomment-2244770449
Regards,
Peter
---
Peter Ujfalusi (2):
ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS for
ChainDMA
ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on
unprepare
sound/soc/sof/ipc4-topology.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS for ChainDMA
2024-07-24 8:19 [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Peter Ujfalusi
@ 2024-07-24 8:19 ` Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 2/2] ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on unprepare Peter Ujfalusi
2024-07-24 12:10 ` [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Peter Ujfalusi @ 2024-07-24 8:19 UTC (permalink / raw)
To: lgirdwood, broonie
Cc: linux-sound, pierre-louis.bossart, kai.vehmanen,
ranjani.sridharan, yung-chuan.liao, stable
The DMA Link ID is only valid in snd_sof_dai_config_data when the
dai_config is called with HW_PARAMS.
The commit that this patch fixes is actually moved a code section without
changing it, the same bug exists in the original code, needing different
patch to kernel prior to 6.9 kernels.
Cc: stable@vger.kernel.org
Fixes: 3858464de57b ("ASoC: SOF: ipc4-topology: change chain_dma handling in dai_config")
Link: https://github.com/thesofproject/linux/issues/5116
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/sof/ipc4-topology.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/sound/soc/sof/ipc4-topology.c b/sound/soc/sof/ipc4-topology.c
index 90f6856ee80c..4a4234d5c941 100644
--- a/sound/soc/sof/ipc4-topology.c
+++ b/sound/soc/sof/ipc4-topology.c
@@ -3095,8 +3095,14 @@ static int sof_ipc4_dai_config(struct snd_sof_dev *sdev, struct snd_sof_widget *
return 0;
if (pipeline->use_chain_dma) {
- pipeline->msg.primary &= ~SOF_IPC4_GLB_CHAIN_DMA_LINK_ID_MASK;
- pipeline->msg.primary |= SOF_IPC4_GLB_CHAIN_DMA_LINK_ID(data->dai_data);
+ /*
+ * Only configure the DMA Link ID for ChainDMA when this op is
+ * invoked with SOF_DAI_CONFIG_FLAGS_HW_PARAMS
+ */
+ if (flags & SOF_DAI_CONFIG_FLAGS_HW_PARAMS) {
+ pipeline->msg.primary &= ~SOF_IPC4_GLB_CHAIN_DMA_LINK_ID_MASK;
+ pipeline->msg.primary |= SOF_IPC4_GLB_CHAIN_DMA_LINK_ID(data->dai_data);
+ }
return 0;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on unprepare
2024-07-24 8:19 [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 1/2] ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS " Peter Ujfalusi
@ 2024-07-24 8:19 ` Peter Ujfalusi
2024-07-24 12:10 ` [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Peter Ujfalusi @ 2024-07-24 8:19 UTC (permalink / raw)
To: lgirdwood, broonie
Cc: linux-sound, pierre-louis.bossart, kai.vehmanen,
ranjani.sridharan, yung-chuan.liao, stable
The DMA Link ID is set to the IPC message's primary during dai_config,
which is only during hw_params.
During xrun handling the hw_params is not called and the DMA Link ID
information will be lost.
All other fields in the message expected to be 0 for re-configuration, only
the DMA Link ID needs to be preserved and the in case of repeated
dai_config, it is correctly updated (masked and then set).
Cc: stable@vger.kernel.org
Fixes: ca5ce0caa67f ("ASoC: SOF: ipc4/intel: Add support for chained DMA")
Link: https://github.com/thesofproject/linux/issues/5116
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/sof/ipc4-topology.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/sound/soc/sof/ipc4-topology.c b/sound/soc/sof/ipc4-topology.c
index 4a4234d5c941..87be7f16e8c2 100644
--- a/sound/soc/sof/ipc4-topology.c
+++ b/sound/soc/sof/ipc4-topology.c
@@ -1358,7 +1358,13 @@ static void sof_ipc4_unprepare_copier_module(struct snd_sof_widget *swidget)
ipc4_copier = dai->private;
if (pipeline->use_chain_dma) {
- pipeline->msg.primary = 0;
+ /*
+ * Preserve the DMA Link ID and clear other bits since
+ * the DMA Link ID is only configured once during
+ * dai_config, other fields are expected to be 0 for
+ * re-configuration
+ */
+ pipeline->msg.primary &= SOF_IPC4_GLB_CHAIN_DMA_LINK_ID_MASK;
pipeline->msg.extension = 0;
}
--
2.45.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA
2024-07-24 8:19 [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 1/2] ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS " Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 2/2] ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on unprepare Peter Ujfalusi
@ 2024-07-24 12:10 ` Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2024-07-24 12:10 UTC (permalink / raw)
To: lgirdwood, Peter Ujfalusi
Cc: linux-sound, pierre-louis.bossart, kai.vehmanen,
ranjani.sridharan, yung-chuan.liao, stable
On Wed, 24 Jul 2024 11:19:30 +0300, Peter Ujfalusi wrote:
> A recent patch available in 6.10 [1] uncovered two issues on how the DMA Link ID
> is tracked with ChainDMA and can cause under specific conditions [2] to cause a DSP
> panic.
> The issue is not academic as we have one user report of it:
> https://github.com/thesofproject/linux/issues/5116
>
> The patches have been marked for stable backport to made there way to 6.10.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/2] ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS for ChainDMA
commit: ae67ed9010a7b52933ad1038d13df8a3aae34b83
[2/2] ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on unprepare
commit: e6fc5fcaeffa04a3fa1db8dfccdfd4b6001c0446
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-07-24 12:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-24 8:19 [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 1/2] ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS " Peter Ujfalusi
2024-07-24 8:19 ` [PATCH 2/2] ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on unprepare Peter Ujfalusi
2024-07-24 12:10 ` [PATCH fro 6.11 0/2] ASoC SOF: ipc4-topology: Fix LinkID handling for ChainDMA Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox