[alsa-devel] [PATCH 0/7] ASoC: Move IO and kcontrols to the component level

Lars-Peter Clausen lars at metafoo.de
Sat Apr 19 10:43:55 CEST 2014

This series contains the remaining patches from the previous series that have
not been applied yet. The series has been rebased ontop of asoc/for-next and
depends on topic/sta350, topic/core, topic/dapm, topic/cache and

Some minor updates were made to the patches and three new patches:
	* One new user of snd_kcontrol_chip() showed up, the patch converts it to
	* Change return type of snd_soc_write() from unsigned int to int
	* Remove ASoC level tracing

Original cover letter:

This series is the first step towards full componentisation of the ASoC core. It
moves both the IO abstraction layers within ASoC as well as the standard set of
kcontrols to the component level. This for example means we can get rid of
constructs like

	if (w->codec)
	else if(w->platform)

Moving the kcontrols to the component level means we can use the same
implementation also for other non-CODEC components. E.g. there seems to be an
increasing amount of CPU components that have basic signal processing and things
like volume controls etc. whose register layout is similar to those used in
CODECs. Currently each CPU component driver re-implements these controls by

The first two patches introduce two new helper functions which hide the actual
implementation on how the CODEC or platform struct that register a control can
be obtained from the control. This means that when the actual implementation is
changed only the two helper functions need to be updated and not every single
driver. The patches that follow that are just cleanups removing unused IO stuff
and move all IO functions to soc-io.c. The next step is to make platforms also
components. And then finally first the IO abstraction layers in ASoC are unified
at the component level and then on top of that the kcontrol helpers are moved to
the component level.

The series depends on quite a few topic branches related to changes to the core
and cleanups for individual drivers. It is probably best to place it on top of
asoc-v3.15-2. The patch that moves the kcontrols to the component level also has
a runtime dependency on the not yet applied patches that move the ams-delta and
mfld_machine controls to the card level.

- Lars

Lars-Peter Clausen (7):
  ASoC: sta350: Use snd_soc_kcontrol_codec()
  ASoC: Change return type of snd_soc_write() to int
  ASoC: Move IO abstraction to the component level
  ASoC: Move standard kcontrol helpers to the component level
  ASoC: Remove snd_soc_update_bits_locked()
  ASoC: dapm: Rename soc_widget_update_bits_locked() to
  ASoC: Remove ASoC level IO tracing

 include/sound/soc-dapm.h    |   1 +
 include/sound/soc.h         |  55 ++++++--
 include/trace/events/asoc.h |  92 -------------
 sound/soc/codecs/sta350.c   |   4 +-
 sound/soc/soc-core.c        | 284 +++++++++++++++++++++++++-------------
 sound/soc/soc-dapm.c        |  91 ++----------
 sound/soc/soc-io.c          | 327 ++++++++++++++++++++++++++------------------
 7 files changed, 450 insertions(+), 404 deletions(-)


More information about the Alsa-devel mailing list