1. 09 5月, 2016 1 次提交
  2. 28 1月, 2016 1 次提交
  3. 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
  4. 17 9月, 2015 1 次提交
  5. 07 7月, 2015 1 次提交
  6. 12 6月, 2015 1 次提交
  7. 04 5月, 2015 1 次提交
  8. 27 3月, 2015 1 次提交
  9. 05 3月, 2015 1 次提交
  10. 03 3月, 2015 2 次提交
  11. 15 1月, 2015 2 次提交
    • J
      ASoC: simple-card: Enable and disable DAI clocks as needed · f9911803
      Jyri Sarha 提交于
      Call clk_prepare_enable() and clk_disable_unprepare() for cpu dai
      clock and codec dai clock in dai statup and shutdown callbacks. This
      to make sure the related clock are enabled when the audio device is
      used.
      Signed-off-by: NJyri Sarha <jsarha@ti.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      f9911803
    • G
      ASoC: simple-card: Fix crash in asoc_simple_card_unref() · 7ddfdb5c
      Geert Uytterhoeven 提交于
      If asoc_simple_card_probe() fails, asoc_simple_card_unref() may be
      called before dev_set_drvdata(), causing a NULL pointer dereference in
      asoc_simple_card_unref():
      
          Unable to handle kernel NULL pointer dereference at virtual address 000000d4
          ...
          PC is at asoc_simple_card_unref+0x14/0x48
          LR is at asoc_simple_card_probe+0x3d4/0x40c
      
      This typically happens because asoc_simple_card_parse_of() returns
      -EPROBE_DEFER, but other failure modes are possible.
      devm_snd_soc_register_card()/snd_soc_register_card() may fail either
      before or after dev_set_drvdata().
      
      Pass a snd_soc_card pointer instead of a platform_device pointer to
      asoc_simple_card_unref() to fix this.
      
      Note that if CONFIG_OF_DYNAMIC=n, of_node_put() is a dummy, and gcc may
      optimize away the loop over card->dai_link, never actually dereferencing
      card, and thus avoiding the crash...
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Fixes: e512e001 ("ASoC: simple-card: Fix the reference count of device nodes")
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      7ddfdb5c
  12. 25 11月, 2014 1 次提交
  13. 11 11月, 2014 1 次提交
  14. 03 11月, 2014 1 次提交
  15. 29 10月, 2014 1 次提交
  16. 20 10月, 2014 2 次提交
  17. 08 10月, 2014 1 次提交
    • G
      ASoC: simple-card: Initialize headphone and mic GPIO numbers · 2dbab978
      Geert Uytterhoeven 提交于
      The uninitialized default of 0 for gpio_hp_det and gpio_mic_det doesn't
      play well with asm-generic's gpio_is_valid():
      
      	static inline bool gpio_is_valid(int number)
      	{
      		return number >= 0 && number < ARCH_NR_GPIOS;
      	}
      
      Hence on r8a7740/armadillo-legacy:
      
      	sh-mobile-hdmi sh-mobile-hdmi: SH Mobile HDMI Audio Codec
      	sh-mobile-hdmi sh-mobile-hdmi: ASoC: DAPM unknown pin Headphones
      	sh-mobile-hdmi sh-mobile-hdmi: ASoC: DAPM unknown pin Mic Jack
      
      After that the kernel log is spammed ca. 7 times per second with:
      
      	sh-mobile-hdmi sh-mobile-hdmi: ASoC: DAPM unknown pin Headphones
      
      Initialize the GPIO numbers with a negative number (-ENOENT) to fix this.
      
      Fixes: 3fe24032 ("ASoC: simple-card: Add mic and hp detect gpios.")
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      2dbab978
  18. 02 10月, 2014 1 次提交
  19. 12 9月, 2014 2 次提交
  20. 10 9月, 2014 2 次提交
  21. 09 9月, 2014 1 次提交
  22. 03 9月, 2014 1 次提交
  23. 02 9月, 2014 1 次提交
  24. 29 8月, 2014 4 次提交
  25. 19 8月, 2014 1 次提交
    • X
      ASoC: simple-card: Fix the compile warning. · 8ea21348
      Xiubo Li 提交于
      sound/soc/generic/simple-card.c: In function simple_card_dai_link_of:
      sound/soc/generic/simple-card.c:198:10: warning: passing argument 3 of
      asoc_simple_card_sub_parse_of from incompatible pointer type [enabled by default]
                &dai_link->cpu_dai_name);
                ^
      sound/soc/generic/simple-card.c:112:1: note: expected const struct device_node **
      but argument is of type struct device_node **
       asoc_simple_card_sub_parse_of(struct device_node *np,
       ^
      sound/soc/generic/simple-card.c:229:10: warning: passing argument 3 of
      asoc_simple_card_sub_parse_of from incompatible pointer type [enabled by default]
                &dai_link->codec_dai_name);
                ^
      sound/soc/generic/simple-card.c:112:1: note: expected const struct device_node **
      but argument is of type struct device_node **
       asoc_simple_card_sub_parse_of(struct device_node *np,
       ^
      
      Since the asoc_simple_card_sub_parse_of() is used in simple-card module only,
      and the third argument is just used to get the node ponters address, so there is
      no need it must to be 'const' type.
      Signed-off-by: NXiubo Li <Li.Xiubo@freescale.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      8ea21348
  26. 21 6月, 2014 1 次提交
  27. 26 5月, 2014 1 次提交
  28. 25 4月, 2014 1 次提交
  29. 24 4月, 2014 3 次提交
  30. 23 4月, 2014 1 次提交