Re: [PATCH] ASoC: sigmadsp: safeload should be used from 4 bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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@xxxxxxxx>

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@xxxxxxxx>
---
  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);


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux