1. 29 1月, 2015 3 次提交
  2. 26 1月, 2015 1 次提交
  3. 18 1月, 2015 1 次提交
  4. 17 1月, 2015 2 次提交
  5. 16 1月, 2015 1 次提交
  6. 15 1月, 2015 5 次提交
    • Q
      ASoC: soc-compress.c: fix NULL dereference · d3268a40
      Qais Yousef 提交于
      In soc_new_compress() when rtd->dai_link->dynamic is set, we create the pcm
      substreams with this call:
      
         ret = snd_pcm_new_internal(rtd->card->snd_card, new_name, num,
                                         1, 0, &be_pcm);
      
      which passes 0 as capture_count leading to
      
         be_pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream
      
      being NULL, hence when trying to set rtd a few lines below we get an oops.
      
      Fix by using rtd->dai_link->dpcm_playback and rtd->dai_link->dpcm_capture as
      playback_count and capture_count to snd_pcm_new_internal().
      Signed-off-by: NQais Yousef <qais.yousef@imgtec.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      d3268a40
    • B
      ASoC: rt286: set the same format for dac and adc · 45437fa5
      Bard Liao 提交于
      There is only one I2S I/F, AD/DA path must operate to the same
      format.
      Signed-off-by: NBard Liao <bardliao@realtek.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      45437fa5
    • B
      ASoC: wm8904: fix runtime warning · a30c188b
      Bo Shen 提交于
      Correct the path name for mux to get rid of the following warning:
      
      --->8---
      wm8904 1-001a: Control not supported for path ADCL -> [Left] -> AIFOUTL
      wm8904 1-001a: ASoC: no dapm match for ADCL --> Left --> AIFOUTL
      wm8904 1-001a: ASoC: Failed to add route ADCL -> Left -> AIFOUTL
      wm8904 1-001a: Control not supported for path ADCR -> [Right] -> AIFOUTL
      wm8904 1-001a: ASoC: no dapm match for ADCR --> Right --> AIFOUTL
      wm8904 1-001a: ASoC: Failed to add route ADCR -> Right -> AIFOUTL
      wm8904 1-001a: Control not supported for path ADCL -> [Left] -> AIFOUTR
      wm8904 1-001a: ASoC: no dapm match for ADCL --> Left --> AIFOUTR
      wm8904 1-001a: ASoC: Failed to add route ADCL -> Left -> AIFOUTR
      wm8904 1-001a: Control not supported for path ADCR -> [Right] -> AIFOUTR
      wm8904 1-001a: ASoC: no dapm match for ADCR --> Right --> AIFOUTR
      wm8904 1-001a: ASoC: Failed to add route ADCR -> Right -> AIFOUTR
      wm8904 1-001a: Control not supported for path AIFINR -> [Right] -> DACL
      wm8904 1-001a: ASoC: no dapm match for AIFINR --> Right --> DACL
      wm8904 1-001a: ASoC: Failed to add route AIFINR -> Right -> DACL
      wm8904 1-001a: Control not supported for path AIFINL -> [Left] -> DACL
      wm8904 1-001a: ASoC: no dapm match for AIFINL --> Left --> DACL
      wm8904 1-001a: ASoC: Failed to add route AIFINL -> Left -> DACL
      wm8904 1-001a: Control not supported for path AIFINR -> [Right] -> DACR
      wm8904 1-001a: ASoC: no dapm match for AIFINR --> Right --> DACR
      wm8904 1-001a: ASoC: Failed to add route AIFINR -> Right -> DACR
      wm8904 1-001a: Control not supported for path AIFINL -> [Left] -> DACR
      wm8904 1-001a: ASoC: no dapm match for AIFINL --> Left --> DACR
      wm8904 1-001a: ASoC: Failed to add route AIFINL -> Left -> DACR
      ---8<---
      Signed-off-by: NBo Shen <voice.shen@atmel.com>
      Acked-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a30c188b
    • 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
    • F
      ASoC: fsl: imx-wm8962: Set the card owner field · 0984f341
      Fabio Estevam 提交于
      The following crash happens when trying to unload the snd_soc_imx_wm8962 module
      while playback is active:
      
      [  208.666868] Unable to handle kernel paging request at virtc
      [  208.674110] pgd = 80004000
      [  208.676867] [7f06541c] *pgd=4c334811, *pte=00000000, *ppte=00000000
      [  208.683211] Internal error: Oops: 80000007 [#1] SMP ARM
      [  208.688445] Modules linked in: snd_soc_wm8962 snd_soc_fsl_ssi snd_soc_imx_audmux imx_pcm_fiq evbug]
      ...
      
      In order to avoid such problem, fill the card owner field as suggested by
      Lars-Peter Clausen:
      
      "But looking at the source it seems that this is a core feature of ALSA and at
      least for the card module itself it will do the ref-counting when a stream is
      started/stopped. And we even support setting the owner of a card in ASoC.
      It's just that pretty much no ASoC card driver bothers to set the owner field
      in the snd_soc_card struct. So this particular problem can be fixed by updating
      the imx-wm8962 driver to set the owner field."
      
      By doing as suggested, we no longer see the crash when attempting to unload the
      snd_soc_imx_wm8962 module while playback is active:
      
      $ modprobe -r snd_soc_imx_wm8962
      modprobe: can't unload module snd_soc_imx_wm8962: Resource temporarily
      unavailable
      Reported-by: NJiada Wang <jiada_wang@mentor.com>
      Suggested-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      0984f341
  7. 10 1月, 2015 2 次提交
  8. 09 1月, 2015 1 次提交
  9. 08 1月, 2015 2 次提交
  10. 07 1月, 2015 3 次提交
  11. 06 1月, 2015 2 次提交
  12. 05 1月, 2015 3 次提交
  13. 30 12月, 2014 1 次提交
  14. 26 12月, 2014 2 次提交
  15. 24 12月, 2014 4 次提交
  16. 22 12月, 2014 5 次提交
  17. 19 12月, 2014 2 次提交