[alsa-devel] [PATCH] ASoC: sigmadsp: safeload should be used from 4 bytes

Danny Smith danny.smith at axis.com
Wed Aug 22 09:53:48 CEST 2018



On 08/22/2018 08:34 AM, Lars-Peter Clausen wrote:
> On 08/22/2018 08:11 AM, Robert Rosengren wrote:
>> From: Danny Smith <dannys at axis.com>
>>
>> Fixed range in safeload conditional to allow safeload to be used from
>> 4 bytes.
> Hi,
>
> Thanks for the patch. The reason why 4 bytes is excluded is that up to 4
> bytes can be updated atomically with a single register write. But I could
> see that if the firmware reads the same parameter multiple times during the
> same run you could get inconsistent results.
>
> Can you explain a bit more why you need this?
>
> If we want to allow safeload for 4 byte parameters the same reasoning
> applies for parameters with less than 4 bytes as well and so the check
> should be removed completely.
>
> - Lars
Hi,

Thanks for the feedback. It is correct that up to 4 bytes can be updated 
atomically but does that also guarantee that the data is safeloaded, 
i.e. updated when the parameter is not in use? Maybe updating up to 4 
byte parameters without safeload does not cause audio glitches?

Regards,
Danny
>> Signed-off-by: Danny Smith <dannys at axis.com>
>> ---
>>   sound/soc/codecs/sigmadsp.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/sound/soc/codecs/sigmadsp.c b/sound/soc/codecs/sigmadsp.c
>> index d53680ac78e4..d63d58350cd8 100644
>> --- a/sound/soc/codecs/sigmadsp.c
>> +++ b/sound/soc/codecs/sigmadsp.c
>> @@ -117,7 +117,7 @@ static int sigmadsp_ctrl_write(struct sigmadsp *sigmadsp,
>>   	struct sigmadsp_control *ctrl, void *data)
>>   {
>>   	/* safeload loads up to 20 bytes in a atomic operation */
>> -	if (ctrl->num_bytes > 4 && ctrl->num_bytes <= 20 && sigmadsp->ops &&
>> +	if (ctrl->num_bytes >= 4 && ctrl->num_bytes <= 20 && sigmadsp->ops &&
>>   	    sigmadsp->ops->safeload)
>>   		return sigmadsp->ops->safeload(sigmadsp, ctrl->addr, data,
>>   			ctrl->num_bytes);
>>



More information about the Alsa-devel mailing list