• Mengdong Lin's avatar
    ASoC: Make aux_dev more like a generic component · f2ed6b07
    Mengdong Lin authored
    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: default avatarMengdong Lin <mengdong.lin@linux.intel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    f2ed6b07
soc-core.c 99.2 KB