aboutsummaryrefslogtreecommitdiff
path: root/sound/soc/codecs/wm_adsp.c
diff options
context:
space:
mode:
authorCharles Keepax2015-12-17 10:05:59 +0000
committerMark Brown2015-12-17 12:13:08 +0000
commitbc1765d6e81a70be36a7290bcc829a7714101bbb (patch)
tree81f4c3b974c052896ec361d6ff75d317b8604a28 /sound/soc/codecs/wm_adsp.c
parent168d10e74c4efd945a37adeb134f096505e62b49 (diff)
ASoC: wm_adsp: Mimic legacy behaviour of reading controls when DSP is on
Older firmwares don't specify access flags for the controls, unfortunately the usage of some of these firmware relies on being able to read back values from the DSP. The current control code will only do this for volatile controls. This patch will read the control from the hardware if no flags are specified and the control is currently enabled, which should cover these legacy use-cases. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/wm_adsp.c')
-rw-r--r--sound/soc/codecs/wm_adsp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
index b083642718f0..d1e0826c7db2 100644
--- a/sound/soc/codecs/wm_adsp.c
+++ b/sound/soc/codecs/wm_adsp.c
@@ -666,6 +666,9 @@ static int wm_coeff_get(struct snd_kcontrol *kctl,
else
ret = -EPERM;
} else {
+ if (!ctl->flags && ctl->enabled)
+ ret = wm_coeff_read_control(ctl, ctl->cache, ctl->len);
+
memcpy(p, ctl->cache, ctl->len);
}