1. 06 4月, 2017 1 次提交
    • K
      ASoC: soc-core: verify Sound Card normality · c12c1aad
      Kuninori Morimoto 提交于
      Current ALSA SoC Sound Card basically consists of CPU/Codec/Platform
      components. If system uses Kernel modules, we can disable these drivers
      by using rmmod command. In such case, we can't disable
      CPU/Codec/Platform driver without disabling Sound Card driver.
      
      But on the other hand, we can disable these drivers by using unbind
      command. In such case, we can disable these drivers randomly.
      In this case, we can create dirty Sound Card which is missing necessary
      components.
      
      (1) If user disabled Sound Card first, but did nothing to other drivers,
      user can't use Sound because Sound Card is no longer exists.
      (2) If user disabled CPU/Codec/Platform driver randomly, but did nothing
      to Sound Card, user still be able to use Sound Card, because dirty Sound
      Card still exists. In this case, Sound system will be crashed if user
      started sound playback/capture. But we can't block such random unbind
      now.
      
      To avoid Sound Card crash in (2) case, we need to unregister Sound Card
      whenever CPU/Codec/Platform component were unregistered.
      This patch solves this issue.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c12c1aad
  2. 02 12月, 2016 3 次提交
  3. 11 11月, 2016 5 次提交
  4. 09 11月, 2016 1 次提交
  5. 05 11月, 2016 1 次提交
    • M
      ASoC: Define API to find a dai link · 17fb1755
      Mengdong Lin 提交于
      Define the API to find an existing DAI link of the soc card by matching
      the ID, name and stream name.
      
      Some cards may use unique ID for each DAI link, so matching ID is enough,
      and name or stream name are not necessary. But user need to specify name
      or stream name as well if not sure whether link ID is unique since most
      cards use 0 as the default link ID.
      
      Topology can use this API to find an existing BE link and configure it.
      Signed-off-by: NMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      17fb1755
  6. 19 8月, 2016 1 次提交
  7. 11 8月, 2016 1 次提交
  8. 08 8月, 2016 2 次提交
  9. 22 4月, 2016 1 次提交
  10. 21 4月, 2016 1 次提交
  11. 22 2月, 2016 1 次提交
  12. 10 1月, 2016 3 次提交
    • M
      ASoC: Make aux_dev more like a generic component · f2ed6b07
      Mengdong Lin 提交于
      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: NMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      f2ed6b07
    • M
      ASoC: Support registering a DAI dynamically · 68003e6c
      Mengdong Lin 提交于
      Define API snd_soc_register_dai() to add a DAI dynamically and
      create the DAI widgets. Topology can use this API to register DAIs
      when probing a component with topology info. These DAIs's playback
      & capture widgets will be freed when the sound card is unregistered
      and the DAIs will be freed when cleaning up the component.
      
      And a dobj is embedded into the struct snd_soc_dai_driver. Topology
      can use the dobj to find the DAI drivers created by it and free them
      when the topology component is removed.
      Signed-off-by: NMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      68003e6c
    • M
      ASoC: Define soc_add_dai() to add a DAI to a component · 5e4fb372
      Mengdong Lin 提交于
      Define soc_add_dai() as a wrapper to add a single DAI to a component.
      It can be reused to register a DAI dynamically by topology.
      Signed-off-by: NMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5e4fb372
  13. 09 12月, 2015 4 次提交
  14. 26 11月, 2015 2 次提交
  15. 25 11月, 2015 1 次提交
  16. 19 11月, 2015 1 次提交
    • M
      ASoC: Change the PCM runtime array to a list · 1a497983
      Mengdong Lin 提交于
      Currently the number of DAI links is statically defined by the machine
      driver at build time using an array. This makes it difficult to shrink/
      grow the number of DAI links at runtime in order to reflect any changes
      in topology.
      
      We can change the DAI link array in the core to a list so that PCMs and
      FE DAI links can be added and deleted at runtime to reflect changes in
      use case and DSP topology. The machine driver can still register DAI links
      as an array.
      
      As the 1st step, this patch change the PCM runtime array to a list. A new
      PCM runtime is added to the list when a DAI link is bound successfully.
      
      Later patches will further implement the DAI link list.
      
      More:
      - define snd_soc_new/free_pcm_runtime() to create/free a runtime.
      - define soc_add_pcm_runtime() to add a runtime to the rtd list.
      - define soc_remove_pcm_runtimes() to clean up the runtime list.
      
      - traverse the rtd list to probe the link components and dais.
      
      - Add a field "num" to PCM runtime struct, used to specify the device
        number when creating the pcm device, and for a soc card to access
        its dai_props array.
      
      - The following 3rd party machine/platform drivers iterate the rtd list
        to check the runtimes:
        sound/soc/intel/atom/sst-mfld-platform-pcm.c
        sound/soc/intel/boards/cht_bsw_rt5645.c
        sound/soc/intel/boards/cht_bsw_rt5672.c
        sound/soc/intel/boards/cht_bsw_max98090_ti.c
      Signed-off-by: NMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      1a497983
  17. 18 11月, 2015 1 次提交
  18. 22 10月, 2015 1 次提交
  19. 17 9月, 2015 2 次提交
  20. 29 8月, 2015 1 次提交
  21. 17 7月, 2015 1 次提交
  22. 16 7月, 2015 2 次提交
  23. 09 7月, 2015 3 次提交