* [v2] SoC: qcom: Distinguish headset codec by codec_dai->name
@ 2021-12-13 2:36 Judy Hsiao
2021-12-13 16:06 ` Mark Brown
0 siblings, 1 reply; 2+ messages in thread
From: Judy Hsiao @ 2021-12-13 2:36 UTC (permalink / raw)
To: broonie
Cc: judyhsiao, Banajit Goswami, cychiang, alsa-devel, Liam Girdwood,
linux-arm-msm, swboyd, dianders, Takashi Iwai,
Srinivas Kandagatla, Judy Hsiao, yuhsuan
Distinguish which headset codec is on the board by codec_dai->name
instead of card->name.
It fixes the crash of being unable to handle kernel paging requests
at virtual address ADDR by initializing the correct audio codec on
the board.
Call stack of the crash:
```
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)
```
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(-)
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;
--
2.31.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [v2] SoC: qcom: Distinguish headset codec by codec_dai->name
2021-12-13 2:36 [v2] SoC: qcom: Distinguish headset codec by codec_dai->name Judy Hsiao
@ 2021-12-13 16:06 ` Mark Brown
0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2021-12-13 16:06 UTC (permalink / raw)
To: Judy Hsiao
Cc: judyhsiao, Banajit Goswami, cychiang, alsa-devel, Liam Girdwood,
linux-arm-msm, swboyd, dianders, Takashi Iwai,
Srinivas Kandagatla, yuhsuan
[-- Attachment #1: Type: text/plain, Size: 566 bytes --]
On Mon, Dec 13, 2021 at 10:36:26AM +0800, Judy Hsiao wrote:
> Call stack of the crash:
> ```
> Unable to handle kernel paging request at virtual address ffffffbfe7bba9ce
> Mem abort info:
Please think hard before including complete backtraces in upstream
reports, they are very large and contain almost no useful information
relative to their size so often obscure the relevant content in your
message. If part of the backtrace is usefully illustrative (it often is
for search engines if nothing else) then it's usually better to pull out
the relevant sections.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-12-13 16:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-13 2:36 [v2] SoC: qcom: Distinguish headset codec by codec_dai->name Judy Hsiao
2021-12-13 16:06 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).