1. 20 Apr, 2020 4 commits
    • Mark Brown's avatar
      Merge series "ASoC: meson: fix codec-to-codec link setup" from Jerome Brunet... · 036889b2
      Mark Brown authored
      Merge series "ASoC: meson: fix codec-to-codec link setup" from Jerome Brunet <jbrunet@baylibre.com>:
      
      This patchset fixes the problem reported by Marc in this thread [0]
      The problem was due to an error in the meson card drivers which had
      the "no_pcm" dai_link property set on codec-to-codec links
      
      [0]: https://lore.kernel.org/r/20200417122732.GC5315@sirena.org.uk
      
      Jerome Brunet (2):
        ASoC: meson: axg-card: fix codec-to-codec link setup
        ASoC: meson: gx-card: fix codec-to-codec link setup
      
       sound/soc/meson/axg-card.c | 4 +++-
       sound/soc/meson/gx-card.c  | 4 +++-
       2 files changed, 6 insertions(+), 2 deletions(-)
      
      --
      2.25.2
      036889b2
    • Gyeongtaek Lee's avatar
      ASoC: dapm: fixup dapm kcontrol widget · ebf14747
      Gyeongtaek Lee authored
      snd_soc_dapm_kcontrol widget which is created by autodisable control
      should contain correct on_val, mask and shift because it is set when the
      widget is powered and changed value is applied on registers by following
      code in dapm_seq_run_coalesced().
      
      		mask |= w->mask << w->shift;
      		if (w->power)
      			value |= w->on_val << w->shift;
      		else
      			value |= w->off_val << w->shift;
      
      Shift on the mask in dapm_kcontrol_data_alloc() is removed to prevent
      double shift.
      And, on_val in dapm_kcontrol_set_value() is modified to get correct
      value in the dapm_seq_run_coalesced().
      Signed-off-by: default avatarGyeongtaek Lee <gt82.lee@samsung.com>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/000001d61537$b212f620$1638e260$@samsung.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      ebf14747
    • Jerome Brunet's avatar
      ASoC: meson: gx-card: fix codec-to-codec link setup · de911b4e
      Jerome Brunet authored
      Since the addition of commit 9b5db059 ("ASoC: soc-pcm: dpcm: Only allow
      playback/capture if supported"), meson-axg cards which have codec-to-codec
      links fail to init and Oops.
      
        Unable to handle kernel NULL pointer dereference at virtual address 0000000000000128
        Internal error: Oops: 96000044 [#1] PREEMPT SMP
        CPU: 3 PID: 1582 Comm: arecord Not tainted 5.7.0-rc1
        pc : invalidate_paths_ep+0x30/0xe0
        lr : snd_soc_dapm_dai_get_connected_widgets+0x170/0x1a8
        Call trace:
         invalidate_paths_ep+0x30/0xe0
         snd_soc_dapm_dai_get_connected_widgets+0x170/0x1a8
         dpcm_path_get+0x38/0xd0
         dpcm_fe_dai_open+0x70/0x920
         snd_pcm_open_substream+0x564/0x840
         snd_pcm_open+0xfc/0x228
         snd_pcm_capture_open+0x4c/0x78
         snd_open+0xac/0x1a8
         ...
      
      While this error was initially reported the axg-card type, it also applies
      to the gx-card type.
      
      While initiliazing the links, ASoC treats the codec-to-codec links of this
      card type as a DPCM backend. This error eventually leads to the Oops.
      
      Most of the card driver code is shared between DPCM backends and
      codec-to-codec links. The property "no_pcm" marking DCPM BE was left set on
      codec-to-codec links, leading to this problem. This commit fixes that.
      
      Fixes: e37a0c31 ("ASoC: meson: gx: add sound card support")
      Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
      Link: https://lore.kernel.org/r/20200420114511.450560-3-jbrunet@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      de911b4e
    • Jerome Brunet's avatar
      ASoC: meson: axg-card: fix codec-to-codec link setup · 11642842
      Jerome Brunet authored
      Since the addition of commit 9b5db059 ("ASoC: soc-pcm: dpcm: Only allow
      playback/capture if supported"), meson-axg cards which have codec-to-codec
      links fail to init and Oops:
      
        Unable to handle kernel NULL pointer dereference at virtual address 0000000000000128
        Internal error: Oops: 96000044 [#1] PREEMPT SMP
        CPU: 3 PID: 1582 Comm: arecord Not tainted 5.7.0-rc1
        pc : invalidate_paths_ep+0x30/0xe0
        lr : snd_soc_dapm_dai_get_connected_widgets+0x170/0x1a8
        Call trace:
         invalidate_paths_ep+0x30/0xe0
         snd_soc_dapm_dai_get_connected_widgets+0x170/0x1a8
         dpcm_path_get+0x38/0xd0
         dpcm_fe_dai_open+0x70/0x920
         snd_pcm_open_substream+0x564/0x840
         snd_pcm_open+0xfc/0x228
         snd_pcm_capture_open+0x4c/0x78
         snd_open+0xac/0x1a8
         ...
      
      While initiliazing the links, ASoC treats the codec-to-codec links of this
      card type as a DPCM backend. This error eventually leads to the Oops.
      
      Most of the card driver code is shared between DPCM backends and
      codec-to-codec links. The property "no_pcm" marking DCPM BE was left set on
      codec-to-codec links, leading to this problem. This commit fixes that.
      
      Fixes: 0a8f1117 ("ASoC: meson: axg-card: add basic codec-to-codec link support")
      Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
      Link: https://lore.kernel.org/r/20200420114511.450560-2-jbrunet@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      11642842
  2. 17 Apr, 2020 2 commits
  3. 16 Apr, 2020 4 commits
  4. 15 Apr, 2020 5 commits
  5. 14 Apr, 2020 16 commits
  6. 09 Apr, 2020 6 commits
  7. 07 Apr, 2020 1 commit
  8. 06 Apr, 2020 2 commits