Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] ASoC: wm_adsp: Correct control read size when parsing compressed buffer
@ 2022-02-10 17:20 Charles Keepax
  2022-02-10 17:20 ` [PATCH 2/3] ASoC: wm_adsp: Make compressed buffers optional Charles Keepax
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Charles Keepax @ 2022-02-10 17:20 UTC (permalink / raw)
  To: broonie; +Cc: patches, alsa-devel, Vlad.Karpovich, lgirdwood

When parsing the compressed stream the whole buffer descriptor is
now read in a single cs_dsp_coeff_read_ctrl; on older firmwares
this descriptor is just 4 bytes but on more modern firmwares it is
24 bytes. The current code reads the full 24 bytes regardless, this
was working but reading junk for the last 20 bytes. However commit
f444da38ac92 ("firmware: cs_dsp: Add offset to cs_dsp read/write")
added a size check into cs_dsp_coeff_read_ctrl, causing the older
firmwares to now return an error.

Update the code to only read the amount of data appropriate for
the firmware loaded.

Fixes: 04ae08596737 ("ASoC: wm_adsp: Switch to using wm_coeff_read_ctrl for compressed buffers")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
 sound/soc/codecs/wm_adsp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
index f3672e3d1703e..0582585236a28 100644
--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -1441,7 +1441,8 @@ static int wm_adsp_buffer_parse_coeff(struct cs_dsp_coeff_ctl *cs_ctl)
 	int ret, i;
 
 	for (i = 0; i < 5; ++i) {
-		ret = cs_dsp_coeff_read_ctrl(cs_ctl, 0, &coeff_v1, sizeof(coeff_v1));
+		ret = cs_dsp_coeff_read_ctrl(cs_ctl, 0, &coeff_v1,
+					     min(cs_ctl->len, sizeof(coeff_v1)));
 		if (ret < 0)
 			return ret;
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-02-14 12:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-10 17:20 [PATCH 1/3] ASoC: wm_adsp: Correct control read size when parsing compressed buffer Charles Keepax
2022-02-10 17:20 ` [PATCH 2/3] ASoC: wm_adsp: Make compressed buffers optional Charles Keepax
2022-02-10 17:20 ` [PATCH 3/3] ASoC: wm_adsp: Add trace caps to speaker protection FW Charles Keepax
2022-02-10 20:19 ` (subset) [PATCH 1/3] ASoC: wm_adsp: Correct control read size when parsing compressed buffer Mark Brown
2022-02-14 12:54 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox