1. 09 12月, 2015 1 次提交
  2. 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
  3. 22 10月, 2015 2 次提交
  4. 16 10月, 2015 1 次提交
    • C
      ASoC: Add info callback for SX_TLV controls · 34198710
      Charles Keepax 提交于
      SX_TLV controls are intended for situations where the register behind
      the control has some non-zero value indicating the minimum gain
      and then gains increasing from there and eventually overflowing through
      zero.
      
      Currently every CODEC implementing these controls specifies the minimum
      as the non-zero value for the minimum and the maximum as the number of
      gain settings available.
      
      This means when the info callback subtracts the minimum value from the
      maximum value to calculate the number of gain levels available it is
      actually under reporting the available levels. This patch fixes this
      issue by adding a new snd_soc_info_volsw_sx callback that does not
      subtract the minimum value.
      
      Fixes: 1d99f243 ("ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV")
      Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Acked-by: NBrian Austin <brian.austin@cirrus.com>
      Tested-by: NBrian Austin <brian.austin@cirrus.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      34198710
  5. 01 10月, 2015 1 次提交
  6. 17 9月, 2015 2 次提交
  7. 29 8月, 2015 1 次提交
  8. 24 7月, 2015 1 次提交
  9. 17 7月, 2015 1 次提交
  10. 09 7月, 2015 1 次提交
  11. 07 7月, 2015 1 次提交
  12. 04 6月, 2015 1 次提交
    • L
      ASoC: topology: Add topology core · 8a978234
      Liam Girdwood 提交于
      The topology core parses the FW topology file for known block types and
      instanciates any common ALSA/ASoC objects that it discovers. The core
      also passes any block that is does not understand to client component
      drivers for enumeration.
      
      The core exports some APIs to client drivers in order to load and unload
      firmware topology data as use case require.
      
      Currently the core deals with the following object types :-
      
       o kcontrols. This includes TLV, enumerated and bytes controls.
       o DAPM widgets. All types with any associated kcontrol.
       o DAPM graph.
       o FE PCM. FE PCM capabilities and configuration can be defined.
       o BE DAI Link. BE DAI link capabilities and configuration can be defined.
       o Codec <-> codec style links capabilities and configuration.
      Signed-off-by: NLiam Girdwood <liam.r.girdwood@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      8a978234
  13. 22 5月, 2015 1 次提交
  14. 07 5月, 2015 2 次提交
  15. 28 4月, 2015 3 次提交
  16. 19 4月, 2015 1 次提交
  17. 18 3月, 2015 1 次提交
  18. 16 3月, 2015 1 次提交
  19. 05 3月, 2015 2 次提交
    • L
      ASoC: Remove snd_soc_jack_new() · 77c71765
      Lars-Peter Clausen 提交于
      There are no users of snd_soc_jack_new() left and new users should use
      snd_soc_card_jack_new() instead. So remove the function.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      77c71765
    • L
      ASoC: Allow to register jacks at the card level · 97093996
      Lars-Peter Clausen 提交于
      Jacks are typically card level elements, but are currently registered with a
      CODEC. When it was originally introduced snd_soc_jack_new() took a
      snd_soc_card as its parameter, but at that time DAPM was only implemented at
      the CODEC level and there was only one CODEC per card. This made it clear
      which CODEC to use for the jack DAPM operations. But the multi-component
      patchset added support for having multiple CODECs per card and with it the
      API was updated to register jacks with a specific CODEC instance instead.
      Subsequently DAPM support at the card level has been introduced, but the
      snd_soc_jack_new() API has so remained unchanged.
      
      This leaves us with the issue that the DAPM pins that are managed by the
      jack detection logic usually are part of the card DAPM context but are
      accessed through a CODEC DAPM context. Currently this works fine, but might
      break in the future if we take a more hierarchical approach to DAPM
      contexts.
      
      Furthermore with componentization progressing systems that do not register
      a snd_soc_codec might appear, while these system may still want to able to
      register a jack.
      
      This patch addresses these issues by adding a new function called
      snd_soc_card_jack_new() that can be used to register jacks with the card
      rather than a CODEC.
      
      This new function is mostly identical to snd_soc_jack_new() except that it
      additionally allows to directly specify the DAPM pins associated with the
      jack. This was done since most users of snd_soc_jack_new() typically call
      snd_soc_jack_add_pins() right after it, which is not necessary with the new
      API and allows to reduce the amount of boiler plate code.
      
      The old snd_soc_jack_new() is re-implemented as a wrapper around
      snd_soc_card_jack_new().
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      97093996
  20. 04 3月, 2015 1 次提交
  21. 24 2月, 2015 1 次提交
    • N
      ASoC: core: Add extra dapm properties for Device Tree · f23e860e
      Nicolin Chen 提交于
      The current helper functions, snd_soc_of_parse_audio_simple_widgets()
      and snd_soc_of_parse_audio_routing(), set dapm_widgets and dapm_routes
      without caring if they are already set by using build-in widgets and
      routes in the card driver. So there could be one of them, build-in one
      or Device Tree one, overrided by the other depending on which one was
      assigned later.
      
      This patch adds an extra pair of dapm_widgets and dapm_routes for DT
      use only so as to prevent unexpected overriding.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      f23e860e
  22. 23 2月, 2015 1 次提交
  23. 27 1月, 2015 1 次提交
  24. 08 1月, 2015 1 次提交
  25. 26 11月, 2014 2 次提交
    • J
      ASoC: Remove 'const' from the device_node pointers · c362effe
      Jean-Francois Moine 提交于
      As Russell King's explained it, there should not be pointers to
      struct device_node:
      
      "struct device_node is a ref-counted structure.  That means if you
       store a reference to it, you should "get" it, and you should "put"
       it once you've done.  The act of "put"ing the pointed-to structure
       involves writing to that structure, so it is totally unappropriate
       to store a device_node structure as a const pointer.  It forces you
       to have to cast it back to a non-const pointer at various points
       in time to use various OF function calls."
      
      [This isn't quite the application here, we're not geting or putting the
      pointer though we did add some other users who call non-const OF
      functions -- broonie]
      Signed-off-by: NJean-Francois Moine <moinejf@free.fr>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c362effe
    • L
      ASoC: Disable regmap helpers if regmap is disabled · e874bf5f
      Lars-Peter Clausen 提交于
      If regmap is disabled there will be no users of the ASoC regmap helpers.
      Furthermore regmap_exit() will no be defined causing the following compile
      error:
      	sound/soc/soc-core.c: In function 'snd_soc_component_exit_regmap':
      	sound/soc/soc-core.c:2645:2: error: implicit declaration of function
      		'regmap_exit' [-Werror=implicit-function-declaration]
      
      So disable the helpers if regmap is disabled.
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Fixes: 20feb881 ASoC: Add helper functions for deferred regmap setup")
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e874bf5f
  26. 25 11月, 2014 1 次提交
  27. 19 11月, 2014 1 次提交
  28. 18 11月, 2014 5 次提交
  29. 11 11月, 2014 1 次提交