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

Ashish Chavan ashish.chavan at kpitcummins.com
Mon Jul 4 08:56:50 CEST 2011

On Fri, 2011-07-01 at 21:47 +0530, Mark Brown wrote:
> On Fri, Jul 01, 2011 at 02:03:25PM +0530, Ashish Chavan wrote:
> > On Thu, 2011-06-30 at 22:07 +0530, Mark Brown wrote:
> > > 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
> > > the enables actually need to check anything, adjusting parameters for
> > > things that aren't active is usually no problem.
> > I see. That means it's ok to allow setting up values of five band
> > equalizers even when overall equalizer functionality is disabled.
> > Can you point me to any existing code that has such custom control(s)
> > which need to check for similar conditions? I am sure that many existing
> > codecs would have this kind of inter dependent functions.
> This requirement is actually fairly unusual, but there's plenty of
> drivers with open coded controls for various reasons.  Have you tried
> looking at the existing drivers in mainline?

Do you mean the requirement of having interdependent codec functionality
is unusual? If yes, then it is something different that what I expected
and I need to do some homework before asking further questions. By
"Homework" I roughly mean, 
(1) Going through data sheets of some of Wolfsons' codecs to find out if
they have similar inter dependent functional blocks.
(2) If something is found, have a detailed look at that codec's driver
in mainline. Find out how these functions are handled.

Do you think that this is the correct way to move forward?

I haven't done this exercise yet, mainly because I assumed that my
requirement is common and I could easily find a way to handle it from
existing drivers or experts!

In general, I have gone through some of the existing codec drivers in
mainline to get a feel of them but couldn't find something that handles
conditional part. May be I am missing something.

More information about the Alsa-devel mailing list