public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Jerome Brunet <jbrunet@baylibre.com>,
	Mark Brown <broonie@kernel.org>, Sasha Levin <sashal@kernel.org>,
	alsa-devel@alsa-project.org
Subject: [PATCH AUTOSEL 5.4 31/57] ASoC: meson: axg-card: fix codec-to-codec link setup
Date: Thu, 30 Apr 2020 09:51:52 -0400	[thread overview]
Message-ID: <20200430135218.20372-31-sashal@kernel.org> (raw)
In-Reply-To: <20200430135218.20372-1-sashal@kernel.org>

From: Jerome Brunet <jbrunet@baylibre.com>

[ Upstream commit 1164284270779e1865cc2046a2a01b58a1e858a9 ]

Since the addition of commit 9b5db059366a ("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: 0a8f1117a680 ("ASoC: meson: axg-card: add basic codec-to-codec link support")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200420114511.450560-2-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 sound/soc/meson/axg-card.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
index 1f698adde506c..2b04ac3d8fd3b 100644
--- a/sound/soc/meson/axg-card.c
+++ b/sound/soc/meson/axg-card.c
@@ -586,8 +586,10 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
 
 	if (axg_card_cpu_is_tdm_iface(dai_link->cpus->of_node))
 		ret = axg_card_parse_tdm(card, np, index);
-	else if (axg_card_cpu_is_codec(dai_link->cpus->of_node))
+	else if (axg_card_cpu_is_codec(dai_link->cpus->of_node)) {
 		dai_link->params = &codec_params;
+		dai_link->no_pcm = 0; /* link is not a DPCM BE */
+	}
 
 	return ret;
 }
-- 
2.20.1


  parent reply	other threads:[~2020-04-30 14:06 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-30 13:51 [PATCH AUTOSEL 5.4 01/57] drm/bridge: analogix_dp: Split bind() into probe() and real bind() Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 02/57] iio:ad7797: Use correct attribute_group Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 03/57] ASoC: topology: Check return value of soc_tplg_create_tlv Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 04/57] ASoC: topology: Check return value of soc_tplg_*_create Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 05/57] ASoC: topology: Check soc_tplg_add_route return value Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 06/57] ASoC: topology: Check return value of pcm_new_ver Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 07/57] ASoC: topology: Check return value of soc_tplg_dai_config Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 08/57] nfsd: memory corruption in nfsd4_lock() Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 09/57] selftests/ipc: Fix test failure seen after initial test run Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 10/57] drivers: soc: xilinx: fix firmware driver Kconfig dependency Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 11/57] ASoC: sgtl5000: Fix VAG power-on handling Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 12/57] ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 13/57] ASoC: topology: Fix endianness issue Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 14/57] usb: dwc3: gadget: Properly set maxpacket limit Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 15/57] usb: dwc3: gadget: Do link recovery for SS and SSP Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 16/57] ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 17/57] ASoC: rsnd: Fix HDMI channel mapping for " Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 18/57] ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 19/57] ARM: dts: bcm283x: Disable dsi0 node Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 20/57] remoteproc: qcom_q6v5_mss: fix a bug in q6v5_probe() Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 21/57] usb: gadget: udc: atmel: Fix vbus disconnect handling Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 22/57] svcrdma: Fix trace point use-after-free race Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 23/57] ASoC: stm32: sai: fix sai probe Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 24/57] ASoC: SOF: Intel: add min/max channels for SSP on Baytrail/Broadwell Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 25/57] drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay table v0 (e.g Hawaii) Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 26/57] wimax/i2400m: Fix potential urb refcnt leak Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 27/57] net: stmmac: fix enabling socfpga's ptp_ref_clock Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 28/57] net: stmmac: Fix sub-second increment Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 29/57] netfilter: nat: fix error handling upon registering inet hook Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 30/57] counter: 104-quad-8: Add lock guards - generic interface Sasha Levin
2020-04-30 13:51 ` Sasha Levin [this message]
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 32/57] ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 33/57] ASoC: rsnd: Fix "status check failed" spam for multi-SSI Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 34/57] net/mlx5: Fix failing fw tracer allocation on s390 Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 35/57] net/mlx5e: Don't trigger IRQ multiple times on XSK wakeup to avoid WQ overruns Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 36/57] net/mlx5e: Get the latest values from counters in switchdev mode Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 37/57] cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled Sasha Levin
2020-04-30 13:51 ` [PATCH AUTOSEL 5.4 38/57] bpf: Forbid XADD on spilled pointers for unprivileged users Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 39/57] ASoC: wm8960: Fix wrong clock after suspend & resume Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 40/57] cifs: protect updating server->dstaddr with a spinlock Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 41/57] blk-iocost: Fix error on iocost_ioc_vrate_adj Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 42/57] s390/ftrace: fix potential crashes when switching tracers Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 43/57] scripts/config: allow colons in option strings for sed Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 44/57] sched/core: Fix reset-on-fork from RT with uclamp Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 45/57] perf/core: fix parent pid/tid in task exit events Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 46/57] cifs: do not share tcons with DFS Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 47/57] tracing: Fix memory leaks in trace_events_hist.c Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 48/57] um: ensure `make ARCH=um mrproper` removes arch/$(SUBARCH)/include/generated/ Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 49/57] lib/mpi: Fix building for powerpc with clang Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 50/57] mac80211: sta_info: Add lockdep condition for RCU list usage Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 51/57] afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 52/57] afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 53/57] net: bcmgenet: suppress warnings on failed Rx SKB allocations Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 54/57] net: systemport: " Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 55/57] bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 56/57] bpf, x86_32: Fix clobbering of dst for BPF_JSET Sasha Levin
2020-04-30 13:52 ` [PATCH AUTOSEL 5.4 57/57] bpf, x86_32: Fix logic error in BPF_LDX zero-extension Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200430135218.20372-31-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=jbrunet@baylibre.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox