1. 30 Apr, 2013 1 commit
  2. 01 Apr, 2013 2 commits
  3. 31 Mar, 2013 1 commit
    • Stephen Warren's avatar
      ASoC: dapm: Implement mixer control sharing · 85762e71
      Stephen Warren authored
      This is the equivalent of commit af46800b "ASoC: Implement mux control
      sharing", but applied to mixers instead of muxes.
      
      This allows a single control to affect multiple mixer widgets at once,
      which is useful when there is a single set of register bits that affects
      multiple mixers in HW, for example both the L and R mixers of a stereo
      path.
      
      Without this, you either:
      
      1) End up with multiple controls that affect the same register bits, but
      whose DAPM state falls out of sync with HW, since the DAPM state is only
      updated for the specific control that is modified, and not for other
      paths that are affected by the register bit(s).
      
      2) False paths through DAPM, since you end up merging unconnected stereo
      paths together into a single widget which hosts the single control, and
      then branching back out again, thus conjoining the enable states of the
      two input paths.
      
      Now that the kcontrol creation logic is split out into a separate
      function, dapm_create_or_share_mixmux_kcontrol(), also use that to
      replace most of the body of dapm_new_mux(). This should produce no
      functional change, but simply eliminates some mostly duplicated code.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      85762e71
  4. 15 Mar, 2013 1 commit
  5. 08 Mar, 2013 1 commit
  6. 25 Feb, 2013 1 commit
    • Mark Brown's avatar
      ASoC: dapm: Fix handling of loops · 8af294b4
      Mark Brown authored
      Currently if a path loops back on itself we correctly skip over it to
      avoid going into an infinite loop but this causes us to ignore the need
      to power up the path as we don't count the loop for the purposes of
      counting inputs and outputs. This means that internal loopbacks within a
      device that have powered devices on them won't be powered up.
      
      Fix this by treating any path that is currently in the process of being
      recursed as having a single input or output so that it is counted for
      the purposes of power decisions.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <liam.r.girdwood@linux.intel.com>
      8af294b4
  7. 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
  8. 12 Jan, 2013 1 commit
  9. 21 Nov, 2012 1 commit
  10. 09 Nov, 2012 1 commit
  11. 26 Sep, 2012 1 commit
  12. 19 Sep, 2012 1 commit
  13. 06 Sep, 2012 1 commit
  14. 25 Aug, 2012 2 commits
  15. 23 Jul, 2012 1 commit
  16. 20 Jul, 2012 1 commit
  17. 13 Jul, 2012 1 commit
  18. 06 Jul, 2012 4 commits
  19. 03 Jul, 2012 2 commits
  20. 29 Jun, 2012 1 commit
  21. 23 Jun, 2012 1 commit
  22. 07 Jun, 2012 1 commit
  23. 05 Jun, 2012 1 commit
  24. 04 Jun, 2012 3 commits
  25. 03 Jun, 2012 1 commit
  26. 27 Apr, 2012 1 commit
  27. 26 Apr, 2012 1 commit
    • Liam Girdwood's avatar
      ASoC: dpcm: Add runtime dynamic route update · 618dae11
      Liam Girdwood authored
      This patch allows DPCM to dynamically alter the FE to BE PCM links
      at runtime based on mixer setting updates. DAPM is looked up after
      every mixer update and we perform a DPCM runtime update if the
      mixer has a change of value.
      
      This patchs adds/changes the following :-
      
       o Adds DPCM runtime update core.
       o Changes soc_dapm_mixer_update_power() and soc_dapm_mux_update_power()
         to return if a change has occured rather than 0. No other users check
         atm.
      Signed-off-by: default avatarLiam Girdwood <lrg@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      618dae11
  28. 18 Apr, 2012 1 commit
  29. 16 Apr, 2012 3 commits
    • Fabio Estevam's avatar
      ASoC: soc-dapm: Use '%llx' with 'u64' type. · 516541a0
      Fabio Estevam authored
      Fix the following build warning:
      
      sound/soc/soc-dapm.c: In function 'snd_soc_dai_link_event':
      sound/soc/soc-dapm.c:2913: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'u64'
      
      '%llx' should be used with 'u64' type.
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      516541a0
    • Mark Brown's avatar
      ASoC: core: Support transparent CODEC<->CODEC DAI links · c74184ed
      Mark Brown authored
      Rather than having the user half start a stream but avoid any DMA to
      trigger data flow on links which don't pass through the CPU create a
      DAPM route between the two DAI widgets using a hw_params configuration
      provided by the machine driver with the new 'params' member of the
      dai_link struct.  If no configuration is provided in the dai_link then
      use the old style even for CODEC<->CODEC links to avoid breaking
      systems.
      
      This greatly simplifies the userspace usage of such links, making them
      as simple as analogue connections with the stream configuration being
      completely transparent to them.
      
      This is achieved by defining a new dai_link widget type which is created
      when CODECs are linked and triggering the configuration of the link via
      the normal PCM operations from there.  It is expected that the bias
      level callbacks will be used for clock configuration.
      
      Currently only the DAI format, rate and channel count can be configured
      and currently the only DAI operations which can be called are hw_params
      and digital_mute().  This corresponds well to the majority of CODEC
      drivers which only use other callbacks for constraint setting but there
      is obviously much room for extension here.  We can't simply call
      hw_params() on startup as things like the system clocking configuration
      may change at runtime and in future it will be desirable to offer some
      configurability of the link parameters.
      
      At present we are also restricted to a single DAPM link for the entire
      DAI.  Once we have better support for channel mapping it would also be
      desirable to extend this feature so that we can propagate per-channel
      power state over the link.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      c74184ed
    • Mark Brown's avatar
      ASoC: dapm: Allow DAI widgets to be routed through · 1eee1b38
      Mark Brown authored
      In order to allow CODEC<->CODEC links to function we will need to allow
      DAPM paths to be created that pass through DAIs rather than only ones
      that are source or sunk at the DAI.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: default avatarLiam Girdwood <lrg@ti.com>
      1eee1b38
  30. 15 Apr, 2012 1 commit