[alsa-devel] [PATCH] ASoC: tpa6130a2: Define output pins with SND_SOC_DAPM_OUTPUT
Jarkko Nikula
jhnikula at gmail.com
Wed May 19 15:46:17 CEST 2010
On Wed, 19 May 2010 15:00:14 +0300
Peter Ujfalusi <peter.ujfalusi at nokia.com> wrote:
> On Wednesday 19 May 2010 13:55:26 ext Jarkko Nikula wrote:
> > Codec output pin should be defined with SND_SOC_DAPM_OUTPUT as otherwise
> > external widgets doesn't alter the output state.
> >
> > Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> > Cc: Peter Ujfalusi <peter.ujfalusi at nokia.com>
> > ---
> > I noticed this with a widget and audio map below where state of
> > "Headphone Jack" wasn't changing the codec output.
>
> This is intentional.
> TPA is _not_ a codec, it is amplifier.
>
> > SND_SOC_DAPM_HP("Headphone Jack", NULL),
> >
> > {"Headphone Jack", NULL, "TPA6130A2 Headphone Left"},
> > {"Headphone Jack", NULL, "TPA6130A2 Headphone Right"},
> > {"TPA6130A2 Left", NULL, "LLOUT"},
> > {"TPA6130A2 Right", NULL, "RLOUT"}
>
> And this is how you should use it in a machine driver:
> Connect the codec's outputs to TPA. The TPA code adds the HPs for you already,
> so you don't need to care about it...
>
> {"TPA6130A2 Left", NULL, "LLOUT"},
> {"TPA6130A2 Right", NULL, "RLOUT"}
>
> If you want to turn off the headset path, which I suppose you want to do here,
> than within the same kcontrol you will have for HS mute you can do this:
>
> if (jack_state) {
> snd_soc_dapm_enable_pin(codec, "TPA6130A2 Headphone Left");
> snd_soc_dapm_enable_pin(codec, "TPA6130A2 Headphone Right");
> } else {
> snd_soc_dapm_disable_pin(codec, "TPA6130A2 Headphone Left");
> snd_soc_dapm_disable_pin(codec, "TPA6130A2 Headphone Right");
> }
>
Thanks for update, this also works, I was unclear are there bug or not
so wanted to try with a patch first :-)
--
Jarkko
More information about the Alsa-devel
mailing list