An error occurred fetching the project authors.
  1. 29 Nov, 2017 1 commit
  2. 20 Jan, 2017 1 commit
  3. 13 Nov, 2016 1 commit
  4. 24 Oct, 2016 1 commit
  5. 21 Oct, 2016 1 commit
  6. 10 Jan, 2016 1 commit
    • Mengdong Lin's avatar
      ASoC: Support registering a DAI dynamically · 68003e6c
      Mengdong Lin authored
      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: default avatarMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      68003e6c
  7. 22 Oct, 2015 2 commits
  8. 18 Nov, 2014 2 commits
  9. 04 Nov, 2014 1 commit
  10. 03 Nov, 2014 1 commit
  11. 16 Jul, 2014 1 commit
  12. 21 Jun, 2014 1 commit
  13. 12 May, 2014 1 commit
  14. 07 May, 2014 1 commit
  15. 25 Mar, 2014 1 commit
  16. 06 Mar, 2014 1 commit
  17. 23 Feb, 2014 1 commit
    • Xiubo Li's avatar
      ASoC: core: add TDM slot parsing from DT supports · 89c67857
      Xiubo Li authored
      For some CPU/CODEC DAI devices the TDM slot infomation maybe needed. This
      patch adds the slot parsing from DT supports.
      
      TDM slot properties:
          dai-tdm-slot-num : Number of slots in use.
          dai-tdm-slot-width :  Width in bits for each slot.
      
      For instance:
          dai-tdm-slot-num = <2>;
          dai-tdm-slot-width = <8>;
      
      And for each spcified driver, there could be one .of_xlate_tdm_slot_mask()
      to specify a explicit mapping of the channels and the slots. If it's absent
      the default snd_soc_of_xlate_tdm_slot_mask() will be used to generating the
      tx and rx masks.
      
      For snd_soc_of_xlate_tdm_slot_mask(), the tx and rx masks will use a 1 bit
      for an active slot as default, and the default active bits are at the LSB of
      the masks.
      Signed-off-by: default avatarXiubo Li <Li.Xiubo@freescale.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      89c67857
  18. 08 Jan, 2014 1 commit
  19. 24 Nov, 2013 1 commit
    • Nicolin Chen's avatar
      ASoC: soc-pcm: add symmetry for channels and sample bits · 3635bf09
      Nicolin Chen authored
      Some SoCs can only work in mono or stereo mode at one time. So if
      we let them capture a mono stream while playing a stereo stream,
      there might be a problem occur to one of these two streams: double
      paced or slowed down.
      
      In soc-pcm.c, we have soc_pcm_apply_symmetry() to apply the rate
      symmetry. But we don't have one for channels.
      
      Likewise, we can treat symmetric_rate as a solution for those SoCs
      or CODECs which can not handle asymmetrical LRCLK. But it's also
      impossible for them to handle asymmetrical BCLK. And accodring to
      BCLK = LRCLK * channel number * slot size(fixed or sample bits),
      sample bits might also be a problem if they are not using a fixed
      slot size.
      
      Thus, this patch applys symmetry for channels and sample bits.
      
      Meanwhile, there might be a race between two substreams if starting
      simultaneously. Previously, we only added warning to compalin but
      still using conservative way to let it carry on. However, this patch
      rejects the second stream with any unmatched parameter to make sure
      the first existing stream won't be broken.
      Signed-off-by: default avatarNicolin Chen <b42378@freescale.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      3635bf09
  20. 20 Oct, 2013 1 commit
  21. 14 Oct, 2013 1 commit
  22. 16 Sep, 2013 1 commit
  23. 26 Mar, 2013 1 commit
  24. 08 Feb, 2013 1 commit
    • Mark Brown's avatar
      ASoC: core: Allow digital mute for capture · da18396f
      Mark Brown authored
      Help avoid noise from the power up of the capture path propagating through
      into the start of the recording (especially noise caused by the ramp of
      microphone biases) by keeping the capture muted until after we've finished
      powering things up with DAPM in the same manner we do for playback. This
      allows us to take advantage of soft mute support in the hardware more
      effectively and is more consistent.
      
      The core code using the existing digital mute operation is updated to take
      advantage of this. Some additional cases in the soc-pcm code and suspend
      will need separate handling but these are less practically relevant than
      the main runtime stream start/stop case.
      
      Rather than refactor the digital mute function in every single driver a
      new operation is added for drivers taking advantage of this functionality,
      the old operation should be phased out over time.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by Vinod Koul <vinod.koul@intel.com>
      Acked-by: default avatarLiam Girdwood <liam.r.girdwood@linux.intel.com>
      da18396f
  25. 30 Jan, 2013 1 commit
  26. 16 Jan, 2013 1 commit
  27. 15 Dec, 2012 1 commit
    • Misael Lopez Cruz's avatar
      ASoC: Prevent pop_wait overwrite · 9bffb1fb
      Misael Lopez Cruz authored
      pop_wait is used to determine if a deferred playback close
      needs to be cancelled when the a PCM is open or if after
      the power-down delay expires it needs to run. pop_wait is
      associated with the CODEC DAI, so the CODEC DAI must be
      unique. This holds true for most CODECs, except for the
      dummy CODEC and its DAI.
      
      In DAI links with non-unique dummy CODECs (e.g. front-ends),
      pop_wait can be overwritten by another DAI link using also a
      dummy CODEC. Failure to cancel a deferred close can cause
      mute due to the DAPM STOP event sent in the deferred work.
      
      One scenario where pop_wait is overwritten and causing mute
      is below (where hw:0,0 and hw:0,1 are two front-ends with
      default pmdown_time = 5 secs):
      
      aplay /dev/urandom -D hw:0,0 -c 2 -r 48000 -f S16_LE -d 1
      sleep 1
      aplay /dev/urandom -D hw:0,1 -c 2 -r 48000 -f S16_LE -d 3 &
      aplay /dev/urandom -D hw:0,0 -c 2 -r 48000 -f S16_LE
      
      Since CODECs may not be unique, pop_wait is moved to the PCM
      runtime structure. Creating separate dummy CODECs for each
      DAI link can also solve the problem, but at this point it's
      only pop_wait variable in the CODEC DAI that has negative
      effects by not being unique.
      Signed-off-by: default avatarMisael Lopez Cruz <misael.lopez@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      9bffb1fb
  28. 20 Aug, 2012 1 commit
  29. 02 May, 2012 1 commit
  30. 26 Apr, 2012 1 commit
    • Liam Girdwood's avatar
      ASoC: dpcm: Add bespoke trigger() · 07bf84aa
      Liam Girdwood authored
      Some on SoC DSP HW is very tightly coupled with DMA and DAI drivers. It's
      necessary to allow some flexability wrt to PCM operations here so that we
      can define a bespoke DPCM trigger() PCM operation for such HW.
      
      A bespoke DPCM trigger() allows exact ordering and timing of component
      triggering by allowing a component driver to manage the final enable
      and disable configurations without adding extra complexity to other
      component drivers. e.g. The McPDM DAI and ABE are tightly coupled on
      OMAP4 so we have a bespoke trigger to manage the trigger to improve
      performance and reduce complexity when triggering new McPDM BEs.
      Signed-off-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      07bf84aa
  31. 01 Apr, 2012 1 commit
  32. 04 Mar, 2012 1 commit
  33. 17 Feb, 2012 1 commit
    • Mark Brown's avatar
      ASoC: dapm: Implement and instantiate DAI widgets · 888df395
      Mark Brown authored
      In order to allow us to do smarter things with DAI links create DAPM
      widgets which directly represent the DAIs in the DAPM graph. These are
      automatically created from the DAIs as we probe the card with references
      held in both directions between the widget and the DAI.
      
      The widgets are not made available for direct instantiation by drivers,
      they are created automatically from the DAIs.  Drivers should be updated
      to create stream routes using DAPM maps rather than by annotating AIF
      and DAC widgets with streams.
      
      In order to ease transition to this model from existing drivers we
      automatically create DAPM routes between the DAI widgets and the existing
      stream widgets which are started and stopped by the DAI widgets, though
      the old stream handling mechanism is still in place.  This also has the
      nice effect of removing non-DAPM devices as any device with a DAI
      acquires a widget automatically which will allow future simplifications
      to the core DAPM logic.
      
      The intention is that in future the AIF and DAI widgets will gain the
      ability to interact such that we are able to manage activity on
      individual channels independantly rather than powering up and down the
      entire AIF as we do currently.
      
      Currently we only generate these for CODECs, mostly as I have no systems
      with non-CODEC DAPM to integrate with. It should be a simple matter of
      programming to add the additional hookup for these.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      888df395
  34. 28 Sep, 2011 1 commit
    • Mark Brown's avatar
      ASoC: Allow DAI formats to be specified in the dai_link · 75d9ac46
      Mark Brown authored
      For almost all machines the DAI format is a constant, always set to the
      same thing. This means that not only should we normally set it on init
      rather than in hw_params() (where it has been for historical reasons) we
      should also allow users to configure this by setting a variable in the
      dai_link structure. The combination of these two will make many machine
      drivers even more data driven.
      
      Implement a new dai_fmt field in the dai_link doing just that. Since 0 is
      a valid value for many format flags and we need to be able to tell if the
      field is actually set also add one to all the values used to configure
      formats.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      75d9ac46
  35. 21 Sep, 2011 1 commit
  36. 07 Jun, 2011 1 commit
  37. 03 Dec, 2010 1 commit
  38. 22 Nov, 2010 1 commit