1. 23 10月, 2017 2 次提交
    • K
      ASoC: snd_soc_component_driver has snd_compr_ops · 9e7e3738
      Kuninori Morimoto 提交于
      Platform will be replaced into Component in the future.
      snd_soc_platform_driver has snd_compr_ops, but snd_soc_component_driver
      doesn't have. To prepare for replacing, this patch adds snd_compr_ops on
      component driver.
      
      platform will be replaced into component, and its code will be removed.
      But during replacing, both platform and component process code exists.
      To keep compatibility, to avoid platform NULL access and to avoid
      platform/component duplicate operation during replacing process, this
      patch has such code. Some of this code will be removed when platform was
      removed.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      9e7e3738
    • K
      ASoC: snd_soc_component_driver has snd_pcm_ops · b8135864
      Kuninori Morimoto 提交于
      Platform will be replaced into Component in the future.
      snd_soc_platform_driver has snd_pcm_ops, but snd_soc_component_driver
      doesn't have it. To prepare for replacing, this patch adds snd_pcm_ops
      on component driver.
      
      platform will be replaced into component, and its code will be removed.
      But during replacing, both platform and component process code exists.
      To keep compatibility, to avoid platform NULL access and to avoid
      platform/component duplicate operation during replacing process, this
      patch has such code. Some of this code will be removed when platform was
      removed.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      b8135864
  2. 10 10月, 2017 1 次提交
  3. 04 10月, 2017 1 次提交
    • K
      ASoC: soc-core: add component lookup functions · 7dd5d0d9
      Kuninori Morimoto 提交于
      ALSA SoC platform/codec will be replaced to component soon.
      This means 1 device might have multiple components. But current
      unregister component function only checks "dev" to find it.
      This means, unexpected component might be unregistered by current
      function.
      But, it is no problem if driver registered only 1 component.
      
      To prepare avoid this issue, this patch adds new component
      lookup function. it finds component by "dev" and "driver name".
      
      Here, the reason why it uses "driver name" is that "component name"
      was created by fmt_single_name() and difficult to use it from driver.
      Driver of course knows its "driver name", thus, using it is more easy.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      7dd5d0d9
  4. 28 9月, 2017 2 次提交
    • K
      ASoC: add Component level set_bias_level · 7ba236ce
      Kuninori Morimoto 提交于
      In current ALSA SoC, Codec only has set_bias_level feature.
      Codec will be merged into Component in next generation ALSA SoC,
      thus current Codec specific feature need to be merged into it.
      This is glue patch for it.
      
      Codec driver has .idle_bias_off for dapm bias. But Component
      driver doesn't have it, and dapm->idle_bias_off is set as "true".
      To keep compatibility, this patch adds "idle_bias_on" instead of
      ".idle_bias_off" on Component driver.
      dapm->idle_bias_off will be set by inverted idle_bias_on.
      
      When we replace Codec to Component, the driver which has
      ".idle_bias_off = true" is just remove it,
      and the driver which doesn't have it will have new
      ".idle_bias_on = true".
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      7ba236ce
    • K
      ASoC: add Component level pcm_new/pcm_free v2 · f523aceb
      Kuninori Morimoto 提交于
      In current ALSA SoC, Platform only has pcm_new/pcm_free feature,
      but it should be supported on Component level. This patch adds it.
      
      The v1 was added commit 99b04f4c ("ASoC: add Component level
      pcm_new/pcm_free") but it called all "card" connected component's
      pcm_new/free, it was wrong.
      This patch calls "rtd" connected component.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      f523aceb
  5. 20 9月, 2017 1 次提交
  6. 31 8月, 2017 3 次提交
  7. 25 8月, 2017 3 次提交
  8. 10 8月, 2017 2 次提交
  9. 07 8月, 2017 2 次提交
  10. 31 7月, 2017 1 次提交
  11. 26 7月, 2017 1 次提交
  12. 17 7月, 2017 1 次提交
    • J
      ASoC: fix pcm-creation regression · c641e5b2
      Johan Hovold 提交于
      This reverts commit 99b04f4c ("ASoC: add Component level
      pcm_new/pcm_free"), which started calling the pcm_new callback for every
      component in a *card* when creating a new pcm, something which does not
      seem to make any sense.
      
      This specifically led to memory leaks in systems with more than one
      platform component and where DMA memory is allocated in the
      platform-driver callback. For example, when both mcasp devices are being
      used on an am335x board, DMA memory would be allocated twice for every
      DAI link during probe.
      
      When CONFIG_SND_VERBOSE_PROCFS was set this fortunately also led to
      warnings such as:
      
      WARNING: CPU: 0 PID: 565 at ../fs/proc/generic.c:346 proc_register+0x110/0x154
      proc_dir_entry 'sub0/prealloc' already registered
      
      Since there seems to be no users of the new component callbacks, and the
      current implementation introduced a regression, let's revert the
      offending commit for now.
      
      Fixes: 99b04f4c ("ASoC: add Component level pcm_new/pcm_free")
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Tested-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable <stable@vger.kernel.org>	# 4.10
      c641e5b2
  13. 25 5月, 2017 1 次提交
    • K
      ASoC: add snd_soc_get_dai_id() function · a180e8b9
      Kuninori Morimoto 提交于
      ALSA SoC needs to know connected DAI ID for detecting.
      It is not a big problem if device/driver was only for sound,
      but getting DAI ID will be difficult if device includes both
      Video/Sound, like HDMI.
      To solve this issue, this patch adds new snd_soc_get_dai_id() and
      its related .of_xlate_dai_id callback on component driver.
      In below case, we can handle Sound port (= port@2) as ID = 0
      if .of_xlate_dai_id has its support.
      
      	hdmi {
      		port@0 { /* VIDEO */ };
      		port@1 { /* VIDEO */ };
      		port@2 { /* SOUND */ };
      	};
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a180e8b9
  14. 25 4月, 2017 1 次提交
  15. 11 4月, 2017 1 次提交
    • B
      ASoC: jack: add snd_soc_codec_set_jack · d7344010
      Bard Liao 提交于
      There are many codecs with the capability of jack detection. Usually,
      we create a jack on machine driver but there is no common function for
      machine driver to deliver the jack pointer to codec driver.
      snd_soc_codec_set_jack can be used for delivering the jack pointer to
      codec driver and enable the jack detection function. To make it work,
      codec driver need to define a callback function to receive the jack
      pointer and do all necessary procedure for enabling jack detection.
      Signed-off-by: NBard Liao <bardliao@realtek.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      d7344010
  16. 25 3月, 2017 2 次提交
  17. 27 1月, 2017 4 次提交
  18. 18 1月, 2017 1 次提交
    • L
      ASoC: core: Add API to use DMI name in sound card long name · 345233d7
      Liam Girdwood 提交于
      Intel DSP platform drivers are used by many different devices but are
      difficult for userspace to differentiate. This patch adds an API to allow
      the DMI name to be used in the sound card long name, thereby helping
      userspace load the correct UCM configuration. Usually machine drivers
      uses their own name as the sound card name (short name), and leave the
      long name and driver name blank. This API will use the DMI info like
      vendor, product and board to make up the card long name. If the machine
      driver has already explicitly set the long name, this API will do nothing.
      
      This patch also allows for further differentiation as many devices that
      share the same DMI name i.e. Minnowboards, UP boards may be configured
      with different codecs or firmwares. The API supports flavoring the DMI
      name into the card longname to provide the extra differentiation required
      for these devices.
      
      For Use Case Manager (UCM) in the user space, changing card long name by
      this API is backward compatible, since the card name does not change. For
      a given sound card, even if there is no device-specific UCM configuration
      file that uses the card long name, UCM will fall back to load the default
      configuration file that uses the card name.
      Signed-off-by: NLiam Girdwood <liam.r.girdwood@linux.intel.com>
      Signed-off-by: NMengdong Lin <mengdong.lin@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      345233d7
  19. 10 1月, 2017 3 次提交
  20. 01 1月, 2017 1 次提交
    • S
      ASoC: Fix binding and probing of auxiliary components · d2e3a135
      Sylwester Nawrocki 提交于
      Currently binding of auxiliary devices doesn't work as in
      soc_bind_aux_dev() function a bound component is not being added
      to any list and in soc_probe_aux_devices() we are trying to walk
      the component_dev_list list to probe auxiliary components but
      at that time this list doesn't contain any auxiliary components
      since they are being added to the card only in soc_probe_component().
      
      This patch adds a list to the card where are stored bound but not
      probed auxiliary devices, so that all aux devices can be probed.
      
      Fixes: 1a653aa4 "ASoC: core: replace aux_comp_list to component_dev_list"
      Signed-off-by: NSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      d2e3a135
  21. 16 12月, 2016 1 次提交
  22. 02 12月, 2016 3 次提交
  23. 01 12月, 2016 1 次提交
    • R
      ASoC: core: Add component pin control functions · 1b4d9c22
      Richard Fitzgerald 提交于
      It's often the case that a codec driver will need to control its
      own pins. However, if a name_prefix has been applied to this codec it
      must be included in the name passed to any of the snd_soc_dapm_x_pin()
      functions.
      
      The behaviour of the existing pin control functions is reasonable, since
      you may want to search for a fully-specified name within the scope of an
      entire card. This means that we can't apply the prefix in these functions
      because it will break card-scope searches.
      
      Constructing a prefixed string "manually" in codec drivers leads to a lot
      of repetition of the same code.
      
      To make this tidier in codec drivers this patch adds a new set of
      equivalent functions that take a struct snd_soc_component instead of a
      dapm context and automatically add the component's name_prefix to the
      given name. This makes it a simple change in codec drivers to be
      prefix-safe.
      
      The new functions are not quite trivial enough to be inlines and the
      compiler won't be able to compile-away any part of them.
      
      Although it looks somewhat inefficient to have to allocate a temporary
      buffer and combine strings, the current design of the widget list
      doesn't lend itself to a more optimized implementation - it's a single
      list of all widgets on a card and is searched linearly for a matching
      string. As pin state changes are generally low-frequency events it's
      unlikely to be a significant issue - at least not enough to rewrite the
      widget list handling just for this.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      1b4d9c22
  24. 11 11月, 2016 1 次提交