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

Ashish Chavan ashish.chavan at kpitcummins.com
Mon Jul 11 16:16:43 CEST 2011

On Thu, 2011-07-07 at 21:19 +0530, Mark Brown wrote:
> On Thu, Jul 07, 2011 at 05:20:07PM +0530, Ashish Chavan wrote:

> > Oh, that's correct. You may be suggesting something similar to what is
> > done in sound/soc/codecs/wm8985.c for "Equalizer Function", i.e. using
> > SOC_xxx_EXT version for defining custom control and putting condition
> > checks in respective "_put()" function.
> Or just writing a control directly.

I guess both of these methods are acceptable and there is no inherent
preference for one over another.
> Those functions are used by the core for providing readback of the
> controls to userspace.  You need to provide them but your driver can use
> whatever it likes to read its own state (providing it's tasteful), it
> doesn't need to go through external APIs.  Any driver with a custom
> control will have an example of how it chooses to read its own state.

I see. Thanks for the insight.

I am looking at SOC_DAPM_SINGLE_W in wm8903.c, SOC_WM8350_DOUBLE_R_TLV
in wm8350.c and SOC_TWL6040_DOUBLE_TLV in twl6040.c as reference
examples. Respective xxx_get_xxx() methods are what you are trying to
point me to, right?

More information about the Alsa-devel mailing list