47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
|
From 9aa9b367e35494f2d02112ca440a78908f645a04 Mon Sep 17 00:00:00 2001
|
||
|
From: Jaroslav Kysela <perex@perex.cz>
|
||
|
Date: Fri, 22 Nov 2019 09:31:03 +0100
|
||
|
Subject: [PATCH 4/4] ASoC: SOF - topology - do not change the link triger
|
||
|
order for old firmare
|
||
|
|
||
|
This is patch for SOF v1.3 firmware. The DSP firmware will crash
|
||
|
without this patch. The 1.4.1 firmare has this issue fixed.
|
||
|
|
||
|
BugLink: https://github.com/thesofproject/sof/issues/2102
|
||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||
|
---
|
||
|
sound/soc/sof/topology.c | 10 +++++++---
|
||
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
|
||
|
index d82ab981e840..cbbbf96416ef 100644
|
||
|
--- a/sound/soc/sof/topology.c
|
||
|
+++ b/sound/soc/sof/topology.c
|
||
|
@@ -2971,6 +2971,7 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
|
||
|
struct snd_soc_tplg_private *private = &cfg->priv;
|
||
|
struct sof_ipc_dai_config config;
|
||
|
struct snd_soc_tplg_hw_config *hw_config;
|
||
|
+ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
|
||
|
int num_hw_configs;
|
||
|
int ret;
|
||
|
int i = 0;
|
||
|
@@ -2988,9 +2989,12 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
|
||
|
if (!link->no_pcm) {
|
||
|
link->nonatomic = true;
|
||
|
|
||
|
- /* set trigger order */
|
||
|
- link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
|
||
|
- link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
|
||
|
+ /* this causes DSP panic on firmware v1.3 */
|
||
|
+ if (SOF_ABI_VER(v->major, v->minor, v->micro) > SOF_ABI_VER(3, 7, 0)) {
|
||
|
+ /* set trigger order */
|
||
|
+ link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
|
||
|
+ link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
|
||
|
+ }
|
||
|
|
||
|
/* nothing more to do for FE dai links */
|
||
|
return 0;
|
||
|
--
|
||
|
2.20.1
|
||
|
|