[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