summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZidan Wang <zidan.wang@freescale.com>2015-10-29 17:26:14 +0800
committerZidan Wang <zidan.wang@freescale.com>2015-10-30 14:58:02 +0800
commit21604335a9a1985126d4ff6bde12b0618329d31c (patch)
treecd40f5f7117937ad3c4ebe634145ddef7412dbe5
parentef3c0a890b0dc0360213de5d462c2b1f82179584 (diff)
MLK-10183 ASoC: wm8962: separate ALC Coefficients to four reigsters
Attempt to read volatile register when cache_only is set will return EBUSY. After playback/record, wm8962_runtime_suspend function will set cache_only flag, so the volitale register ALC2 can't be read from cache. Separate ALC Coefficients to four reigsters, the volatile register ALC2 will be read from hardware instead of cache. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> (cherry picked from commit 5ec8878be12530517b4c8ae307441a0ac16071a3)
-rw-r--r--sound/soc/codecs/wm8962.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 8f5fe19669d6..21667fd69fb2 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -1782,8 +1782,11 @@ SND_SOC_BYTES("HD Bass Coefficients", WM8962_HDBASS_AI_1, 30),
SOC_DOUBLE("ALC Switch", WM8962_ALC1, WM8962_ALCL_ENA_SHIFT,
WM8962_ALCR_ENA_SHIFT, 1, 0),
-SND_SOC_BYTES_MASK("ALC Coefficients", WM8962_ALC1, 4,
+SND_SOC_BYTES_MASK("ALC1", WM8962_ALC1, 1,
WM8962_ALCL_ENA_MASK | WM8962_ALCR_ENA_MASK),
+SND_SOC_BYTES("ALC2", WM8962_ALC2, 1),
+SND_SOC_BYTES("ALC3", WM8962_ALC3, 1),
+SND_SOC_BYTES("Noise Gate", WM8962_NOISE_GATE, 1),
};
static const struct snd_kcontrol_new wm8962_spk_mono_controls[] = {