[alsa-devel] [PATCH] ASoC: twl4030 - Add VDL path support

Peter Ujfalusi peter.ujfalusi at nokia.com
Tue Mar 24 07:35:56 CET 2009

On Thursday 19 March 2009 07:44:23 ext Joonyoung Shim wrote:
> Hi, my thunderbird progrem breaked down, so i send from gmail
> > The reason to have the VALUE_ENUM for the audio path selection is that
> > according to the TRM only one of the paths can be enabled at the time.
> It's not true. I tested playback about Predrive Right audio path(My target
> is not connected with Predriver Left)
> The AudioL2 and AudioR2 was enabled and i played audio wav file of three
> type following;
>     1. wav file recorded only left channel
>     2. wav file recorded only right channel
>     3. wav file recorded left and right channel
> The result is that all was sounded. If the controller is mux, the case of 1
> or 2 haven't to sound.
> > While the voice path can be mixed with one of the audio paths (at least
> > that is my understanding).
> > So:
> > AudioL*/AudioR* (DACL*/DACR*) = Mux
> > Voice, AudioL/R* (DACL/R*) = Mix
> >
> > I think it would be better to leave the current VALUE_ENUMS for the audio
> > path and add a switch for the Voice enable/disable for the outputs and
> > route them through a mixer to the output.
> The mixer DAPM is suitable the structure of control registers(0x21, 0x22,
> 0x25, 0x26, 0x27, 0x28) of path except Handsfree path because each bit for
> path is switchable.
> If we use the mixer DAPM, the switch DAPM for voice path doesn't need.
> > Probably than it makes sense to rename the "Earpice Mux" and friends to
> > something like "Earpiece aduio Mux"...
> > So we would have two controls per outputs:
> > "Earpiece aduio Mux" (Off, DACL1, DACL2, DACR1)
> > "Earpiece voice Switch" (on, off)
> > and internally we can have "Earpiece output mixer", which mixes them
> > together.

I have given a try to your patch, although it does not work out of the box, 
but I can verify that you are indeed right.
I have been also wondering about these mixer/mux controls for the outputs and 
the block diagrams in the TRM has MIX in these outputs, but in other places it 
hints that they are a mixture of mux and mixers.

PS 01: you have been missing this part from your patch, which is needed for 
DAPM to power on the path:
        /* outputs */
        {"OUTL", NULL, "ARXL2_APGA"},
        {"OUTR", NULL, "ARXR2_APGA"},
-       {"EARPIECE", NULL, "Earpiece Mux"},
-       {"PREDRIVEL", NULL, "PredriveL Mux"},
-       {"PREDRIVER", NULL, "PredriveR Mux"},
-       {"HSOL", NULL, "HeadsetL Mux"},
-       {"HSOR", NULL, "HeadsetR Mux"},
-       {"CARKITL", NULL, "CarkitL Mux"},
-       {"CARKITR", NULL, "CarkitR Mux"},
+       {"EARPIECE", NULL, "Earpiece Mixer"},
+       {"PREDRIVEL", NULL, "PredriveL Mixer"},
+       {"PREDRIVER", NULL, "PredriveR Mixer"},
+       {"HSOL", NULL, "HeadsetL Mixer"},
+       {"HSOR", NULL, "HeadsetR Mixer"},
+       {"CARKITL", NULL, "CarkitL Mixer"},
+       {"CARKITR", NULL, "CarkitR Mixer"},
        {"HFL", NULL, "HandsfreeL Mux"},
        {"HFR", NULL, "HandsfreeR Mux"},

If you add this to your patch, I'll be happy to ack it.

PS 02: I have hard time to get 'git am' to apply the patch:
git am ../[PATCH\]\ ASoC\:\ twl4030\ -\ Add\ VDL\ path\ support.mbox
fatal: cannot convert from ks_c_5601-1987 to utf-8

Does anyone know how to handle this?


More information about the Alsa-devel mailing list