linux/sound/soc
Peter Ujfalusi ad05c03b1c ASoC: tlv320dac33: Support for turning off the codec
Let the codec to hit OFF instead of STANDBY, when there is no activity.
When the codec is off, than the associated regulator can be also turned
off (if the number of users on the regulator is 0).

After initialization, the codec remains in power off, it is only turned
on for reading the ID registers (also testing the regulators).

The codec power is enabled, when the codec is moving from BIAS_OFF
to BIAS_STANDBY.
The codec is turned off, when it hits BIAS_OFF.

There are few scenarios, which has to be taken care::
1. Analog bypass caused BIAS_OFF -> BIAS_ON
   We need to power on the codec, and do the chip init, but we does not
   need to execute the playback related configuration
2. Playback caused  BIAS_OFF -> BIAS_ON
   We need to power on the codec, and do the chip init, and also we need
   to execute the playback related configuration.
3. Playback start, while Analog bypass is on (BIAS_ON -> BIAS_ON)
   We need to execute the playback related configuration. The codec is
   already on.
4. Analog bypass enable, while playback (BIAS_ON -> BIAS_ON)
   Nothing need to be done.
5. Playback start withing soc power down timeout (BIAS_ON -> BIAS_ON)
   We need to execute the playback related configuration. The codec is
   still on.

Since the power up, and the codec init is optimized, the added overhead
in stream start is minimal.

Withing this patch, the hard_power function is now only doing what it
supposed to: only handle the powers, and GPIO reset line.
The codec initialization and state restore has been moved 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>
2010-05-03 12:55:54 +01:00
..
atmel ALSA: ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream 2010-04-05 19:14:11 +01:00
au1x MIPS/SOUND: Alchemy: DB1200 AC97+I2S audio support. 2010-02-27 12:53:01 +01:00
blackfin ASoC: change bf5xx-ad1938 machine driver to bf5xx-ad193x machine driver 2010-03-19 12:47:34 +00:00
codecs ASoC: tlv320dac33: Support for turning off the codec 2010-05-03 12:55:54 +01:00
davinci ALSA: ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream 2010-04-05 19:14:11 +01:00
fsl of: add 'of_' prefix to machine_is_compatible() 2010-02-09 08:33:00 -07:00
imx Merge branch 'for-2.6.34' into for-2.6.35 2010-04-17 10:45:54 +09:00
omap ASoC: zoom2 - update DAPM pins 2010-04-28 13:27:18 +01:00
pxa ASoC: Zipit Z2 WM8750 ASoC driver 2010-04-12 11:33:16 +01:00
s3c24xx ASoC: WM8750: Convert to new API 2010-04-09 12:17:42 +01:00
s6000 ALSA: ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream 2010-04-05 19:14:11 +01:00
sh ASoC: fsi: Add FSI2 device support 2010-03-26 11:17:45 +00:00
txx9 ASoC: txx9aclc: dynamically allocate dmaengine devname 2009-06-25 21:06:30 +01:00
Kconfig ASoC: Hook i.MX into build 2009-08-15 11:37:30 +01:00
Makefile ASoC: Add bit clock rate calculator utility functions 2009-11-12 16:45:48 +00:00
soc-cache.c ASoC: soc-cache: let reg be AND'ed by 0xff instead of data buffer for 8_8 mode 2010-03-18 11:23:23 +00:00
soc-core.c Merge branch 'for-2.6.34' into for-2.6.35 2010-03-29 21:03:20 +01:00
soc-dapm.c ASoC: Allow force enabled pins to be disabled 2010-03-22 17:21:23 +00:00
soc-jack.c ASoC: Allow reporting of NULL jacks 2010-04-23 17:07:10 +01:00
soc-utils.c ASoC: Add BCLK calculation utility for TDM mode too 2009-11-25 19:55:46 +00:00