ASoC: wm_adsp: wm_coeff_{read|write}_control should use passed length
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Fri, 19 Feb 2016 14:44:44 +0000 (14:44 +0000)
committerMark Brown <broonie@kernel.org>
Sat, 20 Feb 2016 18:08:19 +0000 (03:08 +0900)
wm_coeff_{read|write}_control were using the control length rather than
the length parameter passed to them. This is not causing any issues as
the two values are currently always the same, but this needs fixed to
allow future improvements.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm_adsp.c

index 0f6eeb1..36687db 100644 (file)
@@ -721,19 +721,19 @@ static int wm_coeff_write_control(struct wm_coeff_ctl *ctl,
        reg = ctl->alg_region.base + ctl->offset;
        reg = wm_adsp_region_to_reg(mem, reg);
 
-       scratch = kmemdup(buf, ctl->len, GFP_KERNEL | GFP_DMA);
+       scratch = kmemdup(buf, len, GFP_KERNEL | GFP_DMA);
        if (!scratch)
                return -ENOMEM;
 
        ret = regmap_raw_write(dsp->regmap, reg, scratch,
-                              ctl->len);
+                              len);
        if (ret) {
                adsp_err(dsp, "Failed to write %zu bytes to %x: %d\n",
-                        ctl->len, reg, ret);
+                        len, reg, ret);
                kfree(scratch);
                return ret;
        }
-       adsp_dbg(dsp, "Wrote %zu bytes to %x\n", ctl->len, reg);
+       adsp_dbg(dsp, "Wrote %zu bytes to %x\n", len, reg);
 
        kfree(scratch);
 
@@ -780,20 +780,20 @@ static int wm_coeff_read_control(struct wm_coeff_ctl *ctl,
        reg = ctl->alg_region.base + ctl->offset;
        reg = wm_adsp_region_to_reg(mem, reg);
 
-       scratch = kmalloc(ctl->len, GFP_KERNEL | GFP_DMA);
+       scratch = kmalloc(len, GFP_KERNEL | GFP_DMA);
        if (!scratch)
                return -ENOMEM;
 
-       ret = regmap_raw_read(dsp->regmap, reg, scratch, ctl->len);
+       ret = regmap_raw_read(dsp->regmap, reg, scratch, len);
        if (ret) {
                adsp_err(dsp, "Failed to read %zu bytes from %x: %d\n",
                         ctl->len, reg, ret);
                kfree(scratch);
                return ret;
        }
-       adsp_dbg(dsp, "Read %zu bytes from %x\n", ctl->len, reg);
+       adsp_dbg(dsp, "Read %zu bytes from %x\n", len, reg);
 
-       memcpy(buf, scratch, ctl->len);
+       memcpy(buf, scratch, len);
        kfree(scratch);
 
        return 0;