1. 27 4月, 2012 3 次提交
    • L
      ASoC: dpcm: Add runtime dynamic route update · 618dae11
      Liam Girdwood 提交于
      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: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      618dae11
    • L
      ASoC: dpcm: Add debugFS support for DPCM · f86dcef8
      Liam Girdwood 提交于
      Add debugFS files for DPCM link management information.
      Signed-off-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      f86dcef8
    • L
      ASoC: dpcm: Add Dynamic PCM core operations. · 01d7584c
      Liam Girdwood 提交于
      The Dynamic PCM core allows digital audio data to be dynamically
      routed between different ALSA PCMs and DAI links on SoC CPUs with
      on chip DSP devices. e.g. audio data could be played on pcm:0,0 and
      routed to any (or all) SoC DAI links.
      
      Dynamic PCM introduces the concept of Front End (FE) PCMs and Back
      End (BE) PCMs. The FE PCMs are normal ALSA PCM devices except that
      they can dynamically route digital audio data to any supported BE
      PCM. A BE PCM has no ALSA device, but represents a DAI link and it's
      substream and audio HW parameters.
      
      e.g. pcm:0,0 routing digital data to 2 external codecs.
      
      FE pcm:0,0  ----> BE (McBSP.0) ----> CODEC 0
                   +--> BE (McPDM.0) ----> CODEC 1
      
      e.g. pcm:0,0 and pcm:0,1 routing digital data to 1 external codec.
      
      FE pcm:0,0 ---
                   +--> BE (McBSP.0) ----> CODEC
      FE pcm:0,1 ---
      
      The digital audio routing is controlled by the usual ALSA method
      of mixer kcontrols. Dynamic PCM uses a DAPM graph to work out the
      routing based upon the mixer settings and configures the BE PCMs
      based on routing and the FE HW params.
      
      DPCM is designed so that most ASoC component drivers will need no
      modification at all. It's intended that existing CODEC, DAI and
      platform drivers can be used in DPCM based audio devices without
      any changes. However, there will be some cases where minor changes
      are required (e.g. for very tightly coupled HW) and there are
      helpers to support this too.
      
      Somethimes the HW params of a FE and BE do not match or are
      incompatible, so in these cases the machine driver can reconfigure
      any hw_params and make any DSP perform sample rate / format conversion.
      
      This patch adds the core DPCM code and contains :-
      
       o The FE and BE PCM operations.
       o FE and BE DAI link support.
       o FE and BE PCM creation.
       o BE support API.
       o BE and FE link management.
      Signed-off-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      01d7584c
  2. 26 4月, 2012 1 次提交
  3. 25 4月, 2012 5 次提交
  4. 24 4月, 2012 4 次提交
  5. 19 4月, 2012 4 次提交
  6. 18 4月, 2012 2 次提交
  7. 17 4月, 2012 8 次提交
    • A
      ASoC: da7210: Add support for PLL and SRM · 570aa7ba
      Ashish Chavan 提交于
      Current DA7210 driver does support PLL mode fully. It uses fixed
      value of input master clock and PLL mode is enabled and disabled based
      on the sampling frequency being used for playback or recording. It also
      doesn't support Sample Rate Measurement feature of DA7210 hardware.
      
      This patch adds full support for PLL and SRM. Basically following three
      modes of operation are possible for DA7210 hardware,
      
      (1) I2S SLAVE mode with PLL bypassed
      (2) I2S SLAVE mode with PLL enabled
      (3) I2S Master mode with PLL enabled
      
      This patch adds support for all three modes. Also, in case of SLAVE mode
      with PLL, it supports SRM (Sample Rate Measurement) feature of the chip.
      
      Actually this patch was submitted earlier and received some review
      comments, but after that the driver got update by other patches. Because
      of that, I am considering this as new patch and not versioning it based
      of previous patches. This version tries to take care of all review
      comments received for earlier submissions.
      Signed-off-by: NAshish Chavan <ashish.chavan@kpitcummins.com>
      Signed-off-by: NDavid Dajun Chen <dchen@diasemi.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      570aa7ba
    • M
      ASoC: Use dai_fmt in Speyside · 26e67811
      Mark Brown 提交于
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      26e67811
    • F
      ASoC: soc-dapm: Use '%llx' with 'u64' type. · 516541a0
      Fabio Estevam 提交于
      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: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      516541a0
    • M
      ASoC: core: Support transparent CODEC<->CODEC DAI links · c74184ed
      Mark Brown 提交于
      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: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      c74184ed
    • M
      ASoC: core: Bind DAIs to CODECs at registration time · 054880fe
      Mark Brown 提交于
      We should always have a CODEC already there when registering a CODEC DAI
      and for CODEC<->CODEC links a dai_link will have two CODECs so it's much
      simpler to do things at registration time.
      
      This results in a slight change in the error handling for failed CODEC
      DAI registrations but practically speaking these are never supposed to
      fail so there shouldn't be much issue. The change is that we don't fail
      the overall CODEC registration if the DAI registration fails; this seems
      more robust anyway as we may not need to use a given DAI in a particular
      system.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      054880fe
    • M
      ASoC: core: Flip master for CODECs in the CPU slot of a CODEC<->CODEC link · f04209a7
      Mark Brown 提交于
      When two CODEC DAIs are linked directly to each other then if we give the
      same master mode settings to both devices things won't work as either
      neither will drive or they'll drive against each other. Flip the settings
      for the DAI in the CPU slot of the DAI link.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      f04209a7
    • M
      ASoC: dapm: Allow DAI widgets to be routed through · 1eee1b38
      Mark Brown 提交于
      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: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      1eee1b38
    • M
      ASoC: core: Return -ENOTSUPP instead of -EINVAL if mute is not supported · 04570c62
      Mark Brown 提交于
      This helps us ignore errors in callers if the operation failed due to not
      being available as opposed to an error.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      04570c62
  8. 15 4月, 2012 1 次提交
  9. 14 4月, 2012 4 次提交
  10. 13 4月, 2012 8 次提交