ASoC: wm_adsp: Acknowledge controls should also check the DSP is running
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Mon, 6 Mar 2017 16:54:34 +0000 (16:54 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 7 Mar 2017 12:07:59 +0000 (13:07 +0100)
We should not be writing acknowledge controls until the firmware is
running, as in the case of preloaded firmwares the DSP memory may be
unaccessible to whilst in the preloaded state. This means a write to the
control during this time could be lost.

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

index 6313b3da967b9442de9cba7055fd73ef5f22a8c8..bbdb72f73df19ddf954daab19d3deb222208dc7c 100644 (file)
@@ -952,7 +952,7 @@ static int wm_coeff_put_acked(struct snd_kcontrol *kctl,
 
        mutex_lock(&ctl->dsp->pwr_lock);
 
-       if (ctl->enabled)
+       if (ctl->enabled && ctl->dsp->running)
                ret = wm_coeff_write_acked_control(ctl, val);
        else
                ret = -EPERM;