[alsa-devel] [PATCH 3/6] ASoC: TWL4030: Enable all audio paths

Peter Ujfalusi peter.ujfalusi at nokia.com
Tue Apr 7 06:59:19 CEST 2009

On Monday 06 April 2009 15:45:21 ext Mark Brown wrote:
> On Mon, Apr 06, 2009 at 03:19:29PM +0300, Peter Ujfalusi wrote:
> > Enable all TX and RX paths on the TWL codec.
> What does this mean by "enable" - I'm guessing it's powering blocks
> within the CODEC rather than connecting any audio paths?

The TRM calls these as Audio/Voice digital filters.
In effect, they enable the shifting out bits from the Capture path to the bus 
and shifting in bits on the Playback side.

The original driver had these filters enabled - all the time - for the digital 
filters needed for the i2s mode (AudioRX2 L/r, AudioTX1 L/R), in TDM mode all 
4 filters on Capture and Playback need to be enabled.

> > This is not so nice, but doing it runtime brings quite a bit
> > of challenge, since for example the Digital loopback also needs
> > the RX and TX paths to be enabled.
> What are the problems other than loopback (which really needs digital
> routing to work properly, though I've never seen much demand for it
> outside of testing)?  Powering everything is probably fine, I'm just
> wondering if this is due to the hardware or the core.

The digital loopback needs the AudioTX1 L/R and AudioRX2 L/R enabled in order 
to function, and I have a requirement, that the codec should support it ;) 

I had two other implementation for these:
a) Enable the needed Digital filters in twl4030_startup based on the channel 
number and stream type (Playback/Capture). Disable the Digital filters on 
twl4030_shutdown, based on the just closed stream's parameters.
b) Adding another widgets to the DAPM routing paths, so it tries to enable 
only the needed Digital filters.

There were couple of problems with these:
a) Digital loopback was not functioning
b) It did enabled other filters, than what it is needed (in stereo mode 
AudioRX1 L/R and AudioTX2 L/R should not be enabled). I guess this is because 
the DAPM knows only about streams, but here we can have 2 channel or 4 channel 
streams, which need to be handled a bit differently.

But as I said, this is not so nice thing to do, so it need to be revisited.


More information about the Alsa-devel mailing list