linux/sound/soc
Peter Ujfalusi a6cea9655b ASoC: tlv320dac33: Power down digital parts, when not needed
If the following scenario has been followed:
1. Enable analog bypass
amixer sset 'Analog Left Bypass' on
amixer sset 'Analog Right Bypass' on

2. Start playback
aplay -fdat -d3 /dev/zero

After the playback stopped (3 sec), and the soc timeout (5 sec),
the digital parts of the codec will remain powered up.
This means that the DAI clocks are continue to run, the
oscillator remain operational, etc.

Use the SND_SOC_DAPM_POST_PMD widget to get notification
about the stopped stream, and power down the digital
part of the codec.
If the analog bypass is enabled, than the codec will remain in
BIAS_ON level, and things will work correctly.
In case, if the bypass is disabled, than the codec will
fall to BIAS_STANDBY than to BIAS_OFF level, as it used
to.

The digital part of DAC33 is initialized at every stream start
(DAPM_PRE:PRE_PMU event), so subsequent streams (within 5 sec)
will have working DAI.
When the codec is coming out from BIAS_OFF, the full power-up
sequence followed by the same DAPM_PRE widget event will power up
the digital part.

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>
2010-12-10 22:50:12 +00:00
..
atmel Merge branch 'for-2.6.37' into for-2.6.38 2010-11-25 11:17:24 +00:00
au1x ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
blackfin ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
codecs ASoC: tlv320dac33: Power down digital parts, when not needed 2010-12-10 22:50:12 +00:00
davinci Merge branch 'for-2.6.37' into for-2.6.38 2010-11-25 11:17:24 +00:00
ep93xx Merge branch 'for-2.6.37' into for-2.6.38 2010-11-25 11:17:24 +00:00
fsl ASoC: Add missing dev_set_drvdata in p1022_ds_probe 2010-11-29 18:28:53 +00:00
imx Merge branch 'for-2.6.37' into for-2.6.38 2010-11-25 11:17:24 +00:00
jz4740 ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
kirkwood ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
nuc900 Merge branch 'for-2.6.37' into for-2.6.38 2010-11-29 18:33:47 +00:00
omap ASoC: sdp4430: Enable FM stereo pins 2010-12-09 09:46:05 +00:00
pxa Merge branch 'for-2.6.37' into for-2.6.38 2010-11-25 11:17:24 +00:00
s6000 ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
samsung ASoC: Fix resource leak in smdk_spdif.c 2010-11-29 11:01:06 +00:00
sh Merge branch 'for-2.6.37' into for-2.6.38 2010-11-25 11:17:24 +00:00
txx9 ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
Kconfig ASoC: Samsung: Rename from s3c24xx to samsung 2010-11-23 14:13:04 +00:00
Makefile ASoC: Samsung: Rename from s3c24xx to samsung 2010-11-23 14:13:04 +00:00
soc-cache.c ASoC: soc-cache: Ensure consistent cache naming 2010-11-29 12:43:52 +00:00
soc-core.c ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
soc-dapm.c ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
soc-jack.c ASoC: Do not include soc-dapm.h 2010-11-22 14:04:41 +00:00
soc-utils.c ASoC: Add BCLK calculation utility for TDM mode too 2009-11-25 19:55:46 +00:00