summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorNicolin Chen <b42378@freescale.com>2013-03-08 11:01:57 +0800
committerNicolin Chen <b42378@freescale.com>2013-03-12 10:20:28 +0800
commitb477657dd8095b7dbf17b172677b3cf900a9e740 (patch)
tree324ead451fefbccf137f1968d043551e5384bf82 /sound/soc
parent5b04cf7cbdfd416d0f942ba629a6025431e12faa (diff)
ENGR00253290-1 ASoC: wm8962: fix over-gained audio playback issue
We put some code to set default volumes in codec driver, but later we found that one of volume was higher than 0db, which would cause over-gained volume. So this patch removed DAC default volume setting, and reverted the volume interface of it to let user control the register from user space. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <b42378@freescale.com>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/wm8962.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 784b5957e37a..6e7a5e9e9444 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -5,7 +5,7 @@
*
* Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
*
- * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ * Copyright (C) 2013 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -2218,6 +2218,8 @@ SOC_ENUM("Capture LHPF Mode", cap_lhpf_mode),
SOC_DOUBLE_R_TLV("Sidetone Volume", WM8962_DAC_DSP_MIXING_1,
WM8962_DAC_DSP_MIXING_2, 4, 12, 0, st_tlv),
+SOC_DOUBLE_R_TLV("Digital Playback Volume", WM8962_LEFT_DAC_VOLUME,
+ WM8962_RIGHT_DAC_VOLUME, 1, 127, 0, digital_tlv),
SOC_SINGLE("DAC High Performance Switch", WM8962_ADC_DAC_CONTROL_2, 0, 1, 0),
SOC_SINGLE("ADC High Performance Switch", WM8962_ADDITIONAL_CONTROL_1,
@@ -4099,10 +4101,6 @@ static int wm8962_probe(struct snd_soc_codec *codec)
WM8962_SPKOUTL_VOL_MASK, 0x72);
snd_soc_update_bits(codec, WM8962_SPKOUTR_VOLUME,
WM8962_SPKOUTR_VOL_MASK, 0x72);
- snd_soc_update_bits(codec, WM8962_LEFT_DAC_VOLUME,
- WM8962_DACL_VOL_MASK, 0xd8);
- snd_soc_update_bits(codec, WM8962_RIGHT_DAC_VOLUME,
- WM8962_DACR_VOL_MASK, 0xd8);
snd_soc_update_bits(codec, WM8962_LEFT_INPUT_VOLUME,
WM8962_INL_VOL_MASK, 0x3f);