aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/tpa6130a2.c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-11-30 09:00:01 -0500
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-11-30 10:39:39 -0500
commitd534bacd918fcf0909039b95db7c090702e739d5 (patch)
tree00c3587f44d23317462b4da91357ae05f7e61ab3 /sound/soc/codecs/tpa6130a2.c
parentd5876ce1242b78987e6243ba3cb23bb61d44d4a9 (diff)
ASoC: tpa6130a2: Defer SW enable from power enable
Do not enable the amplifier right after the power has been restored to the amplifier. The DAPM_SUPPLY widget turns on the amp early in the DAPM power walk, and the unmuting of channel happens quite late. Keeping the amp in SW reset state ensures better muting. In this way the pop noise coming from other components (codec) can be filtered out. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'sound/soc/codecs/tpa6130a2.c')
-rw-r--r--sound/soc/codecs/tpa6130a2.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sound/soc/codecs/tpa6130a2.c b/sound/soc/codecs/tpa6130a2.c
index 199edf07f47e..42887ae1568b 100644
--- a/sound/soc/codecs/tpa6130a2.c
+++ b/sound/soc/codecs/tpa6130a2.c
@@ -151,11 +151,6 @@ static int tpa6130a2_power(u8 power)
151 data->power_state = 0; 151 data->power_state = 0;
152 goto exit; 152 goto exit;
153 } 153 }
154
155 /* Clear SWS */
156 val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
157 val &= ~TPA6130A2_SWS;
158 tpa6130a2_i2c_write(TPA6130A2_REG_CONTROL, val);
159 } else { 154 } else {
160 /* set SWS */ 155 /* set SWS */
161 val = tpa6130a2_read(TPA6130A2_REG_CONTROL); 156 val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
@@ -301,6 +296,7 @@ static void tpa6130a2_channel_enable(u8 channel, int enable)
301 /* Enable amplifier */ 296 /* Enable amplifier */
302 val = tpa6130a2_read(TPA6130A2_REG_CONTROL); 297 val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
303 val |= channel; 298 val |= channel;
299 val &= ~TPA6130A2_SWS;
304 tpa6130a2_i2c_write(TPA6130A2_REG_CONTROL, val); 300 tpa6130a2_i2c_write(TPA6130A2_REG_CONTROL, val);
305 301
306 /* Unmute channel */ 302 /* Unmute channel */