From 9aa9b367e35494f2d02112ca440a78908f645a04 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela 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 --- 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