[alsa-devel] asoc SND_SOC_DAPM_AIF_IN question
broonie at opensource.wolfsonmicro.com
Thu Dec 23 12:28:28 CET 2010
On Thu, Dec 23, 2010 at 08:36:07AM +0530, Koul, Vinod wrote:
> On Wed, Dec 22, 2010 at 11:25:29PM +0530, Mark Brown wrote:
> > These "Rail" widgets look quite unusual - what are they?
> Audio Supply rails, I have one global audio rail which controls most of audio
> widgets and then separate rails for speakers and headset. For example I need to
> turn on Audio supply rail and then headset rail for headsets to work properly.
> So I described them as SND_SOC_DAPM_SUPPLY. Added events so that I power them on
> and power off when stream becomes active or inactive.
"Audio Supply" sounds like the main analogue bias for the CODEC - that
would normally be managed by set_bias_level() rather than by having it
supply every single widget in the CODEC map.
> > What is a "PCM button" and what do you mean by starting a "stream"?
> > Normally a stream would be a path between the CPU and the CODEC.
> This is PCM interface enable between codec and cpu. So for PCM port to work
> between codec and cpu, we need to enable the PCM port, this one does
> that. This is going to be a global switch to be turned on for all streams (I
> have 4 playback and 1 capture, and can be simultaneous).
If you have multiple links between the CPU and the CODEC with a single
power bit to control them all I'd suggest defining several AIF widgets,
each with no power management, then making the actual power controlled
by a supply widget. That way the power will be enabled as required but
you won't have tied all the data streams together in the DAPM map.
> Here I was trying
> 1) Putting the PCM_In Button as SND_SOC_DAPM_AIF_IN()
I'm still not sure what you mean by "Button"? I'm guessing it's a
register control for power.
More information about the Alsa-devel