[Sound-open-firmware] [PATCH] host: Stop dma when pause

Pan, Xiuli xiuli.pan at intel.com
Thu Mar 15 09:59:00 CET 2018


>On 2018年03月15日 13:19, Xiuli Pan wrote:
>> From: Pan Xiuli <xiuli.pan at linux.intel.com>
>>
>> For gw-dma host, we need to stop the dma to make sure status are correct
>> for resume.
>>
>> Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>
>>
>> ---
>> Test with:
>> Mininow max rt5651 and GP-MRB nocodec
>> SOF 1.1-stable: aa09938fd330232b201f5683faf8e32975ffcfac
>> SOF-Tool 1.1-stable: 8d9b8d51f9c60e1c1725e9ccd3da22c0b523d0cf
>> https://github.com/plbossart/sound/tree/topic/sof-v4.14:
>> 84ed2d3ba0220424dd441f3a28ed2fe83967ad3a
>> ---
>>   src/audio/host.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/src/audio/host.c b/src/audio/host.c
>> index 287c886..744ca02 100644
>> --- a/src/audio/host.c
>> +++ b/src/audio/host.c
>> @@ -465,6 +465,9 @@ static int host_cmd(struct comp_dev *dev, int cmd,
>void *data)
>>   		return ret;
>>
>>   	switch (cmd) {
>> +	case COMP_CMD_PAUSE:
>> +		dma_stop(hd->dma, hd->chan);
>> +		break;
>
>Hi Xiuli, do we need a dma_start() invoking for COMP_CMD_RELEASE also?
>

My test shows we did not need this. But we may need this to keep dma status in control.
Now I found some bugs are related to the dma & comp status mismatch.
We may have stop the dai or host, but the related dma is still running.

Thanks
Xiuli 

>Thanks,
>~Keyon
>
>>   	case COMP_CMD_STOP:
>>   		ret = host_stop(dev);
>>   		break;
>>


More information about the Sound-open-firmware mailing list