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

Lars-Peter Clausen lars at metafoo.de
Tue Mar 18 09:02:03 CET 2014


Hi,

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)
		snd_soc_read(....)
	else if(w->platform)
		snd_soc_platform_read(...)

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

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 (13):
  ASoC: Add snd_soc_kcontrol_codec() helper function
  ASoC: Add snd_soc_kcontrol_platform() helper function
  ASoC: Prepare SOC_SINGLE_XR_SX controls for regmap
  ASoC: Move IO functions to soc-io.c
  ASoC: Drop ASoC level caching from hw_write/hw_read
  ASoC: Remove IO register modifier callbacks
  ASoC: Add helper function to cast component back to CODEC
  ASoC: Track which components have been registered with
    snd_soc_register_component()
  ASoC: Let snd_soc_platform subclass snd_soc_component
  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
    soc_widget_update_bits()

 include/sound/soc-dapm.h          |   1 +
 include/sound/soc.h               | 114 +++++++--
 sound/soc/codecs/88pm860x-codec.c |   8 +-
 sound/soc/codecs/ab8500-codec.c   |  12 +-
 sound/soc/codecs/adav80x.c        |   4 +-
 sound/soc/codecs/ak4641.c         |   4 +-
 sound/soc/codecs/cs4270.c         |   2 +-
 sound/soc/codecs/cs4271.c         |   4 +-
 sound/soc/codecs/cs42l51.c        |   4 +-
 sound/soc/codecs/da7210.c         |   4 +-
 sound/soc/codecs/da7213.c         |   4 +-
 sound/soc/codecs/da732x.c         |   4 +-
 sound/soc/codecs/da9055.c         |   2 +-
 sound/soc/codecs/lm4857.c         |   4 +-
 sound/soc/codecs/max9768.c        |   4 +-
 sound/soc/codecs/max98088.c       |  12 +-
 sound/soc/codecs/max98090.c       |   4 +-
 sound/soc/codecs/max98095.c       |  16 +-
 sound/soc/codecs/pcm1681.c        |   4 +-
 sound/soc/codecs/rt5631.c         |   4 +-
 sound/soc/codecs/sgtl5000.c       |   4 +-
 sound/soc/codecs/sta32x.c         |   4 +-
 sound/soc/codecs/tas5086.c        |   4 +-
 sound/soc/codecs/tlv320aic23.c    |   4 +-
 sound/soc/codecs/tlv320dac33.c    |   4 +-
 sound/soc/codecs/twl4030.c        |  10 +-
 sound/soc/codecs/twl6040.c        |   8 +-
 sound/soc/codecs/wl1273.c         |  12 +-
 sound/soc/codecs/wm2000.c         |   8 +-
 sound/soc/codecs/wm8350.c         |   4 +-
 sound/soc/codecs/wm8400.c         |   2 +-
 sound/soc/codecs/wm8580.c         |   2 +-
 sound/soc/codecs/wm8731.c         |   4 +-
 sound/soc/codecs/wm8753.c         |   4 +-
 sound/soc/codecs/wm8804.c         |   4 +-
 sound/soc/codecs/wm8903.c         |   4 +-
 sound/soc/codecs/wm8904.c         |  14 +-
 sound/soc/codecs/wm8955.c         |   4 +-
 sound/soc/codecs/wm8958-dsp2.c    |  32 +--
 sound/soc/codecs/wm8960.c         |   4 +-
 sound/soc/codecs/wm8962.c         |   8 +-
 sound/soc/codecs/wm8983.c         |   4 +-
 sound/soc/codecs/wm8985.c         |   4 +-
 sound/soc/codecs/wm8990.c         |   2 +-
 sound/soc/codecs/wm8991.c         |   2 +-
 sound/soc/codecs/wm8994.c         |  10 +-
 sound/soc/codecs/wm8996.c         |   4 +-
 sound/soc/codecs/wm9081.c         |   4 +-
 sound/soc/codecs/wm_adsp.c        |   4 +-
 sound/soc/codecs/wm_hubs.c        |   2 +-
 sound/soc/intel/sst-haswell-pcm.c |   8 +-
 sound/soc/soc-cache.c             |   2 -
 sound/soc/soc-core.c              | 520 ++++++++++++++++----------------------
 sound/soc/soc-dapm.c              |  91 +------
 sound/soc/soc-io.c                | 220 +++++++++++++---
 55 files changed, 644 insertions(+), 592 deletions(-)

-- 
1.8.0



More information about the Alsa-devel mailing list