[alsa-devel] [PATCH 3/6] ASoC: TWL4030: Enable all audio paths
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