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
- 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.