diff mbox series

[v2,2/2] ASoC: SOF: topology: set trigger order for FE DAI link

Message ID 20191104224812.3393-3-ranjani.sridharan@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series Update FE/BE trigger order based on the command | expand

Commit Message

Ranjani Sridharan Nov. 4, 2019, 10:48 p.m. UTC
Set trigger order for FE DAI links to SND_SOC_DPCM_TRIGGER_POST
to trigger the BE DAI's before the FE DAI's. This prevents the
xruns seen on playback pipelines using the link DMA.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 sound/soc/sof/topology.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Jaroslav Kysela Nov. 18, 2019, 10:44 p.m. UTC | #1
Dne 04. 11. 19 v 23:48 Ranjani Sridharan napsal(a):
> Set trigger order for FE DAI links to SND_SOC_DPCM_TRIGGER_POST
> to trigger the BE DAI's before the FE DAI's. This prevents the
> xruns seen on playback pipelines using the link DMA.
> 
> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> ---
>   sound/soc/sof/topology.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
> index e0e2ae734632..e7076692119b 100644
> --- a/sound/soc/sof/topology.c
> +++ b/sound/soc/sof/topology.c
> @@ -2951,6 +2951,10 @@ 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;
> +
>   		/* nothing more to do for FE dai links */
>   		return 0;
>   	}
> 

It seems that this patch breaks the signed 1.3 firmware. Tested on Lenovo 
Carbon X1 7th gen.

https://github.com/thesofproject/sof/issues/2102

					Jaroslav
Hui Wang Feb. 9, 2020, 9:31 a.m. UTC | #2
On 2019/11/19 上午6:44, Jaroslav Kysela wrote:
> Dne 04. 11. 19 v 23:48 Ranjani Sridharan napsal(a):
>> Set trigger order for FE DAI links to SND_SOC_DPCM_TRIGGER_POST
>> to trigger the BE DAI's before the FE DAI's. This prevents the
>> xruns seen on playback pipelines using the link DMA.
>>
>> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
>> Signed-off-by: Pierre-Louis Bossart 
>> <pierre-louis.bossart@linux.intel.com>
>> ---
>>   sound/soc/sof/topology.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
>> index e0e2ae734632..e7076692119b 100644
>> --- a/sound/soc/sof/topology.c
>> +++ b/sound/soc/sof/topology.c
>> @@ -2951,6 +2951,10 @@ 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;
>> +
>>           /* nothing more to do for FE dai links */
>>           return 0;
>>       }
>>
>
> It seems that this patch breaks the signed 1.3 firmware. Tested on 
> Lenovo Carbon X1 7th gen.
>
> https://github.com/thesofproject/sof/issues/2102
>
>                     Jaroslav
>
Also met this problem, this patch is merged to 5.4 stable kernel, when I 
run the 5.4 stable kernel on the Lenovo Carbon x1 7th gen or Dell Dmic 
machines,  the sof driver will print error logs repeatedly and the sof 
fails to work. I tried with both 1.3 and 1.4 firmware. If I reverted 
this patch from 5.4 stable kernel, the sof driver will work with both 
1.3 and 1.4 firmware.

I also tried the 5.5-rc1 kernel, this  kernel already includes this 
patch, but there is no issue for this kernel, the sof driver works well. 
So looks like only backport this patch to 5.4 stable kernel is not 
enough, either we revert this patch or we backport more patches to 5.4 
stable kernel.
Hui Wang Feb. 9, 2020, 12:45 p.m. UTC | #3
After cherry-pick this commit (acbf27746ecfa96b290b54cc7f05273482ea128a 
ASoC: pcm: update FE/BE trigger order based on the command) to 5.4 
stable kernel, the sof driver works.

On 2020/2/9 下午5:31, Hui Wang wrote:
>
> On 2019/11/19 上午6:44, Jaroslav Kysela wrote:
>> Dne 04. 11. 19 v 23:48 Ranjani Sridharan napsal(a):
>>> Set trigger order for FE DAI links to SND_SOC_DPCM_TRIGGER_POST
>>> to trigger the BE DAI's before the FE DAI's. This prevents the
>>> xruns seen on playback pipelines using the link DMA.
>>>
>>> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
>>> Signed-off-by: Pierre-Louis Bossart 
>>> <pierre-louis.bossart@linux.intel.com>
>>> ---
>>>   sound/soc/sof/topology.c | 4 ++++
>>>   1 file changed, 4 insertions(+)
>>>
>>> diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
>>> index e0e2ae734632..e7076692119b 100644
>>> --- a/sound/soc/sof/topology.c
>>> +++ b/sound/soc/sof/topology.c
>>> @@ -2951,6 +2951,10 @@ 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;
>>> +
>>>           /* nothing more to do for FE dai links */
>>>           return 0;
>>>       }
>>>
>>
>> It seems that this patch breaks the signed 1.3 firmware. Tested on 
>> Lenovo Carbon X1 7th gen.
>>
>> https://github.com/thesofproject/sof/issues/2102
>>
>>                     Jaroslav
>>
> Also met this problem, this patch is merged to 5.4 stable kernel, when 
> I run the 5.4 stable kernel on the Lenovo Carbon x1 7th gen or Dell 
> Dmic machines,  the sof driver will print error logs repeatedly and 
> the sof fails to work. I tried with both 1.3 and 1.4 firmware. If I 
> reverted this patch from 5.4 stable kernel, the sof driver will work 
> with both 1.3 and 1.4 firmware.
>
> I also tried the 5.5-rc1 kernel, this  kernel already includes this 
> patch, but there is no issue for this kernel, the sof driver works 
> well. So looks like only backport this patch to 5.4 stable kernel is 
> not enough, either we revert this patch or we backport more patches to 
> 5.4 stable kernel.
>
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
diff mbox series

Patch

diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
index e0e2ae734632..e7076692119b 100644
--- a/sound/soc/sof/topology.c
+++ b/sound/soc/sof/topology.c
@@ -2951,6 +2951,10 @@  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;
+
 		/* nothing more to do for FE dai links */
 		return 0;
 	}