[alsa-devel] What is correct way to put conditional stuff in ASoC codec driver?

Ashish Chavan ashish.chavan at kpitcummins.com
Tue Jul 5 16:25:22 CEST 2011

On Tue, 2011-07-05 at 04:04 +0530, Mark Brown wrote:
> > Do you mean the requirement of having interdependent codec functionality
> > is unusual? If yes, then it is something different that what I expected
> Yes, or at least the need to actually worry about it is.

OK, I will stop worrying about it as of now and concentrate on other
stuff :-)

> > (1) Going through data sheets of some of Wolfsons' codecs to find out if
> > they have similar inter dependent functional blocks.
> There should be no need to look at one particular vendor.

I just selected Wolfson because their ASoC codec drivers are in majority
if I look at sound/soc/codecs dir. So in my opinion, it just raises the
probability of finding the required thing.

> | You'd need to implement custom controls for the relevant enables which
> | check to see what is currently enabled and prevents enables if there
> | are conflicts.  You should do this dynamically and I'd expect that only

Yes, I got what you meant here and after some homework also found the
example of this. You are trying to convey something similar to what is
done within "outmixer_event()" function of sound/soc/codecs/wm8991.c (at
lest the condition checking part), right?

> All you're doing is trying to restrict the values that can be set on a
> control dynamically.

I think, it is more about restricting access to a set of controls
dynamically based of enable/disable of some other control(s).

I guess now I have enough details to start off implementation part. I
will pop up a query again, if I am stuck somewhere.

BTW thanks for helping me out in getting things clear. 

More information about the Alsa-devel mailing list