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