ASoC: TWL4030: AIF/APLL fix in DAPM domain
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>
Thu, 29 Apr 2010 07:58:08 +0000 (10:58 +0300)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Mon, 3 May 2010 11:47:29 +0000 (12:47 +0100)
commit7b4c734eead5ef0b1c95ec336ddd28e58e648676
tree61f824f0cf0ee5f3f850cac8252b89a646fdb7de
parentcf134d5bfb19cdee922b95738ce3cfe86c0e8f7a
ASoC: TWL4030: AIF/APLL fix in DAPM domain

This patch orders the APLL and AIF power sequence in
case of HiFi (audio in TWL4030 terms) playback/capture.

We also need to make sure that the AIF is running during
playback/capture, when there is no valid DAPM route
available. For this purpose I introduce these virtual
widgets:
/* To have complete playback route all the time */
DAPM_OUTPUT("Virtual HiFi OUT") /* Will keep AIF/APLL enabled */

/* To have complete capture route all the time */
DAPM_INPUT("Virtual HiFi IN") /* Will keep AIF/APLL enabled */

/* To have complete playback route for the voice module */
DAPM_OUTPUT("Virtual Voice OUT") /* Will keep APLL enabled */

The DAPM_SUPPLY widgets for APLL and AIF are placed in a way,
that during any audio activity the needed configuration of AIF
and APLL will be enabled (playback, capture, analog loopback,
digital loopback, and voice activity).

The apll reference counting code has been lifted,
and modified from Liam Girdwood's earlier patch.

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>
sound/soc/codecs/twl4030.c