1. 22 2月, 2012 1 次提交
    • M
      ASoC: core: Add SND_SOC_BYTES control for coefficient blocks · 71d08516
      Mark Brown 提交于
      Allow devices to export blocks of registers to the application layer,
      intended for use for reading and writing coefficient data which can't
      usefully be worked with by the kernel at runtime (for example, due to
      requiring complex and expensive calculations or being the results of
      callibration procedures). Currently drivers are using platform data to
      provide configurations for coefficient blocks which isn't at all
      convenient for runtime management or configuration development.
      
      Currently only devices using regmap are supported, an error will be
      generated for any attempt to work with a byte control on a non-regmap
      device. There's no fundamental block to other devices so support could
      be added if required.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      71d08516
  2. 20 2月, 2012 1 次提交
  3. 18 2月, 2012 5 次提交
  4. 16 2月, 2012 1 次提交
  5. 09 2月, 2012 2 次提交
    • M
      ASoC: core: Allow CODECs to set ignore_pmdown_time in the driver struct · 5124e69e
      Mark Brown 提交于
      This is usually not a use case dependant flag anyway.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      5124e69e
    • L
      ALSA: PCM - Add PCM creation API for internal PCMs. · 945e5038
      Liam Girdwood 提交于
      The new ASoC dynamic PCM core needs to create PCMs and substreams that are
      for use by internal ASoC drivers only and not visible to userspace for
      direct IO. These new PCMs are similar to regular PCMs expect they have no
      device nodes or procfs entries. The ASoC component drivers use them in exactly
      the same way as regular PCMs for PCM and DAI operations.
      
      The intention is that a dynamic PCM based driver will register both regular
      PCMs and internal PCMs. The regular PCMs will be used for all IO with userspace
      however the internal PCMs will be used by the driver to route digital audio
      through numerous back end DAI links (with potentially a DSP providing different
      hw_params, DAI formats based on the regular front end PCM params) to devices
      like CODECs, MODEMs, Bluetooth, FM, DMICs, etc
      
      This patch adds a new snd_pcm_new_internal() API call to create the internal PCM
      without device nodes or procfs. It also adds adds a new internal flag to snd_pcm.
      
      [fixed minor coding-style issues by tiwai]
      Signed-off-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      945e5038
  6. 07 2月, 2012 1 次提交
  7. 04 2月, 2012 1 次提交
    • L
      ASoC: core: Add support for DAI and machine kcontrols. · 022658be
      Liam Girdwood 提交于
      Currently ASoC can only add kcontrols using codec and platform component device
      handles. It's also desirable to add kcontrols for DAIs (i.e. McBSP) and for
      SoC card machine drivers too. This allows the kcontrol to have a direct handle to
      the parent ASoC component DAI/SoC Card/Platform/Codec device and hence easily
      get it's private data.
      
      This change makes snd_soc_add_controls() static and wraps it in the folowing
      calls (card and dai are new) :-
      
      snd_soc_add_card_controls()
      snd_soc_add_codec_controls()
      snd_soc_add_dai_controls()
      snd_soc_add_platform_controls()
      
      This patch also does a lot of small mechanical changes in individual codec drivers
      to replace snd_soc_add_controls() with snd_soc_add_codec_controls().
      
      It also updates the McBSP DAI driver to use snd_soc_add_dai_controls().
      
      Finally, it updates the existing machine drivers that register controls to either :-
      
      1) Use snd_soc_add_card_controls() where no direct codec control is required.
      2) Use snd_soc_add_codec_controls() where there is direct codec control.
      
      In the case of 1) above we also update the machine drivers to get the correct
      component data pointers from the kcontrol (rather than getting the machine pointer
      via the codec pointer).
      Signed-off-by: NLiam Girdwood <lrg@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      022658be
  8. 03 2月, 2012 1 次提交
  9. 31 1月, 2012 1 次提交
  10. 30 1月, 2012 1 次提交
  11. 27 1月, 2012 2 次提交
  12. 25 1月, 2012 1 次提交
  13. 22 1月, 2012 1 次提交
  14. 20 1月, 2012 1 次提交
    • M
      ASoC: Allow drivers to specify how many bits are significant on a DAI · 58ba9b25
      Mark Brown 提交于
      Most devices accept data in formats that don't correspond directly to
      their internal format. ALSA allows us to set a msbits constraint which
      tells userspace about this in case it finds it useful (for example, in
      order to avoid wasting effort dithering bits that will be ignored when
      raising the sample size of data) so provide a mechanism for drivers to
      specify the number of bits that are actually significant on a DAI and
      add the appropriate constraints along with all the others.
      
      This is done slightly awkwardly as the constraint is specified per sample
      size - we loop over every possible sample size, including ones that the
      device doesn't support and including ones that have fewer bits than are
      actually used, but this is harmless as the upper layers do the right thing
      in these cases.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      58ba9b25
  15. 11 1月, 2012 1 次提交
  16. 04 1月, 2012 1 次提交
  17. 01 1月, 2012 1 次提交
  18. 23 12月, 2011 4 次提交
  19. 22 12月, 2011 1 次提交
  20. 20 12月, 2011 2 次提交
  21. 13 12月, 2011 1 次提交
  22. 06 12月, 2011 1 次提交
    • S
      ASoC: WM8903: Fix platform data gpio_cfg confusion · a0f203d3
      Stephen Warren 提交于
      wm8903_platform_data.gpio_cfg[] was intended to be interpreted as follows:
      0:       Don't touch this GPIO's configuration register
      1..7fff: Write that value to the GPIO's configuration register
      8000:    Write zero to the GPIO's configuration register
      other:   Undefined (invalid)
      
      The rationale is that platform data is usually global data, and a value of
      zero means that the field wasn't explicitly set to anything (e.g. because
      the field was new to the pdata type, and existing users weren't update to
      initialize it) and hence the value zero should be ignored. 0x8000 is an
      explicit way to get 0 in the register.
      
      The code worked this way until commit 7cfe5617 "ASoC: wm8903: Expose GPIOs
      through gpiolib", where the behaviour was changed due to my lack of
      awareness of the above rationale.
      
      This patch reverts to the intended behaviour, and updates all in-tree users
      to use the correct scheme. This also makes WM8903 consistent with other
      devices that use a similar scheme.
      
      WM8903_GPIO_NO_CONFIG is also renamed to WM8903_GPIO_CONFIG_ZERO so that
      its name accurately reflects its purpose.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Colin Cross <ccross@android.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      a0f203d3
  23. 02 12月, 2011 3 次提交
  24. 24 11月, 2011 2 次提交
  25. 16 11月, 2011 1 次提交
  26. 15 11月, 2011 2 次提交