[alsa-devel] [PATCH] ASoC: sigmadsp: safeload should be used from 4 bytes
Lars-Peter Clausen
lars at metafoo.de
Wed Aug 22 08:34:23 CEST 2018
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
>
> 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