ASoC: Make aux_dev more like a generic component
authorMengdong Lin <mengdong.lin@linux.intel.com>
Wed, 6 Jan 2016 05:29:31 +0000 (13:29 +0800)
committerMark Brown <broonie@kernel.org>
Sun, 10 Jan 2016 12:46:55 +0000 (12:46 +0000)
commitf2ed6b07645ed29c1e090ead2e41066385cba3ea
tree82c2254e0b1578b29cd99050e9ebc65fe59ecb34
parent68003e6cf2bbd239a322bd8a28dacfaf8174fdee
ASoC: Make aux_dev more like a generic component

aux_dev is mainly used by the machine driver to specify analog devices,
which are registered as codecs. Making it more like a generic component
can help the machine driver to use it to specify any component with
topology info by name.

Details:
- Remove the stub 'rtd_aux' array from the soc card.
- Add a list 'aux_comp_list' to store the components of aux_devs.
  And add a list head 'list_aux' to struct snd_soc_component, for adding
  such components to the above list.
- Add a 'init' ops to a component for machine specific init.
  soc_bind_aux_dev() will set it to be aux_dev's init. And it will be
  called when probing the component.
- soc_bind_aux_dev() will also search components by name of an aux_dev,
  since it may not be a codec.
- Move probing of aux_devs before checking new DAI links brought by
  topology.
- Move removal of aux_devs later than removal of links. Because topology
  of aux components may register DAIs and the DAI drivers will go with
  removal of the aux components, we want soc_remove_link_dais() to remove
  the DAIs at first.

Signed-off-by: Mengdong Lin <mengdong.lin@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc.h
sound/soc/soc-core.c