Message ID | 20211210051907.3870109-1-judyhsiao@chromium.org |
---|---|
State | Superseded |
Headers | show |
Series | SoC: qcom: Distinguish headset codec by codec_dai->name | expand |
Quoting Judy Hsiao (2021-12-09 21:19:07) > Distinguish which headset codec is on the board by codec_dai->name > instead of card->name. Yes that's what the patch does but why is it important? > > Fixes: 425c5fce8a03 ("ASoC: qcom: Add support for ALC5682I-VS codec") It fixes something so what is it fixing? Can you add the call stack of the failure and explain how this patch fixes it? We have that patch backported to our chromeos 5.4 kernel tree but I assume this reproduces upstream. Unable to handle kernel paging request at virtual address ffffffbfe7bba9ce Mem abort info: ESR = 0x96000005 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000005 CM = 0, WnR = 0 swapper pgtable: 4k pages, 39-bit VAs, pgdp=000000008379a000 [ffffffbfe7bba9ce] pgd=0000000000000000, pud=0000000000000000 Internal error: Oops: 96000005 [#1] PREEMPT SMP Modules linked in: ip6table_nat fuse uvcvideo videobuf2_vmalloc [trimmed] CPU: 7 PID: 2168 Comm: cras Not tainted 5.4.163-lockdep-17364-gfe3d4f499cf1 #1 Hardware name: Google Pompom (rev2) with LTE (DT) pstate: 00400009 (nzcv daif +PAN -UAO) pc : rt5682_set_component_pll+0xcc/0xb78 [snd_soc_rt5682] lr : rt5682_set_component_pll+0xbc/0xb78 [snd_soc_rt5682] sp : ffffff808ed7f320 x29: ffffff808ed7f390 x28: dfffffd000000000 x27: ffffff80b1409550 x26: 00000000aaaaaaaa x25: ffffff80d0a0b820 x24: ffffff80bc1f7098 x23: ffffff809332a080 x22: 00000000aaaaaaaa x21: 1ffffff01783ee13 x20: 00000000aaaaaaaa x19: 00000000aaaaaaaa x18: 1ffffff011dafe18 x17: 0000000000000000 x16: 0000000000000201 x15: 0000000000000000 x14: 0000000062f77d15 x13: dfffffd000000000 x12: ffffffd01302ed7c x11: 0000000000000000 x10: ffffff7f3ddd4e74 x9 : 0000000000000000 x8 : 1fffffefe7bba9ce x7 : aaaaaaaaaaaaaaaa x6 : 0000000000000000 x5 : 0000000000000000 x4 : 0000000000000008 x3 : 0000000000000000 x2 : 0000000000000008 x1 : 00000000000000aa x0 : ffffff808ed7f358 Call trace: rt5682_set_component_pll+0xcc/0xb78 [snd_soc_rt5682] snd_soc_component_set_pll+0x90/0x154 snd_soc_dai_set_pll+0xf4/0x1ac sc7180_snd_startup+0x268/0x3c0 [snd_soc_sc7180] snd_soc_link_startup+0xa4/0x180 soc_pcm_open+0x35c/0x15c8 snd_pcm_open_substream+0xa90/0x13b0 snd_pcm_open+0x1a4/0x55c snd_pcm_capture_open+0x7c/0xe8 snd_open+0x2b8/0x2e4 chrdev_open+0x364/0x3d4 do_dentry_open+0x66c/0xc58 vfs_open+0x7c/0x8c path_openat+0x108c/0x2bbc do_filp_open+0x15c/0x258 do_sys_open+0x278/0x62c __arm64_compat_sys_openat+0x9c/0xb0 el0_svc_common+0x1c0/0x3dc el0_svc_compat_handler+0x88/0xd4 el0_svc_compat+0x8/0x2c Code: 8b3acae8 910d310a d343fd48 a9012be8 (38fc6908)
On Fri, Dec 10, 2021 at 03:15:49PM -0800, Stephen Boyd wrote: > Quoting Judy Hsiao (2021-12-09 21:19:07) > > Fixes: 425c5fce8a03 ("ASoC: qcom: Add support for ALC5682I-VS codec") > It fixes something so what is it fixing? Can you add the call stack of > the failure and explain how this patch fixes it? We have that patch > backported to our chromeos 5.4 kernel tree but I assume this reproduces > upstream. Please don't encourage people to just paste entire panics into things, what you've included here is vastly larger than the entire original patch which overwhelms the content in the message. > Unable to handle kernel paging request at virtual address ffffffbfe7bba9ce > Mem abort info: > ESR = 0x96000005 > EC = 0x25: DABT (current EL), IL = 32 bits > SET = 0, FnV = 0 > EA = 0, S1PTW = 0 > Data abort info: > ISV = 0, ISS = 0x00000005 > CM = 0, WnR = 0 Information like the above or the register contents is not adding any value here, it just makes it harder to find the actual content in the message. Sometimes a relevant portion of the stack can be useful but that's not what's happening here.
diff --git a/sound/soc/qcom/sc7180.c b/sound/soc/qcom/sc7180.c index 2fff764a00a7..37225ef2563a 100644 --- a/sound/soc/qcom/sc7180.c +++ b/sound/soc/qcom/sc7180.c @@ -131,13 +131,13 @@ static int sc7180_snd_startup(struct snd_pcm_substream *substream) struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0); int pll_id, pll_source, pll_in, pll_out, clk_id, ret; - if (!(strcmp(card->name, "sc7180-rt5682-max98357a-1mic"))) { + if (!strcmp(codec_dai->name, "rt5682-aif1")) { pll_source = RT5682_PLL1_S_MCLK; pll_id = 0; clk_id = RT5682_SCLK_S_PLL1; pll_out = RT5682_PLL1_FREQ; pll_in = DEFAULT_MCLK_RATE; - } else if (!(strcmp(card->name, "sc7180-rt5682s-max98357a-1mic"))) { + } else if (!strcmp(codec_dai->name, "rt5682s-aif1")) { pll_source = RT5682S_PLL_S_MCLK; pll_id = RT5682S_PLL2; clk_id = RT5682S_SCLK_S_PLL2;
Distinguish which headset codec is on the board by codec_dai->name instead of card->name. Fixes: 425c5fce8a03 ("ASoC: qcom: Add support for ALC5682I-VS codec") Signed-off-by: Judy Hsiao <judyhsiao@chromium.org> --- sound/soc/qcom/sc7180.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)