Re: Oops in hdac_hda_dev_probe (6.7-rc7)
On Wed, 27 Dec 2023 08:37:07 +0100, Dominik Brodowski wrote:
Hi,
unfortunately, the latest 6.7.0-rc7 and the two previous rc kernels cause an oops in hdac_hda_dev_probe(); sound and resume-from-suspend subsequently do not work:
BUG: kernel NULL pointer dereference, address: 0000000000000078 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI Hardware name: Dell Inc. XPS 9315/00KRKP, BIOS 1.1.3 05/11/2022 Workqueue: events sof_probe_work
RIP: 0010:hdac_hda_dev_probe+0x42/0xf0 Code: 48 8b 37 48 8b bb c8 04 00 00 e8 09 9b 0a 00 48 85 c0 48 89 c5 0f 84 a6 00 00 00 48 8b bb c8 04 00 00 48 89 c6 e8 1e 9a 0a 00 <41> 80 7c 24 78 00 75 46 b9 03 00 00 00 48 c7 c2 c0 b2 a1 ac 48 c7 RSP: 0000:ffffc90000207b50 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffff88811495d000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffff888108691600 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: ffff88811400b028 FS: 0000000000000000(0000) GS:ffff88886f500000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000078 CR3: 00000002b7a5a000 CR4: 0000000000f50ef0 PKRU: 55555554 Call Trace:
<TASK> ? __die+0x1e/0x70 ? page_fault_oops+0x17c/0x4b0 ? snd_hdac_ext_bus_link_get+0x24/0xc0 ? exc_page_fault+0x462/0x8e0 ? asm_exc_page_fault+0x26/0x30 ? hdac_hda_dev_probe+0x42/0xf0 really_probe+0x166/0x300 ? __pfx___device_attach_driver+0x10/0x10 __driver_probe_device+0x6e/0x120 driver_probe_device+0x1a/0x90 __device_attach_driver+0x8e/0xd0 bus_for_each_drv+0x90/0xf0 __device_attach+0xac/0x1a0 bus_probe_device+0x93/0xb0 device_add+0x669/0x860 snd_hdac_device_register+0x10/0x60 hda_codec_probe_bus+0x189/0x290 hda_dsp_probe+0x211/0x550 sof_probe_work+0x2c/0x430 ? process_one_work+0x19c/0x500 process_one_work+0x205/0x500 worker_thread+0x1dc/0x3e0
? __pfx_worker_thread+0x10/0x10 kthread+0xea/0x120 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x2c/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30
</TASK> Modules linked in: CR2: 0000000000000078 ---[ end trace 0000000000000000 ]--- RIP: 0010:hdac_hda_dev_probe+0x42/0xf0 Code: 48 8b 37 48 8b bb c8 04 00 00 e8 09 9b 0a 00 48 85 c0 48 89 c5 0f 84 a6 00 00 00 48 8b bb c8 04 00 00 48 89 c6 e8 1e 9a 0a 00 <41> 80 7c 24 78 00 75 46 b9 03 00 00 00 48 c7 c2 c0 b2 a1 ac 48 c7 RSP: 0000:ffffc90000207b50 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff88811495d000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffff888108691600 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: ffff88811400b028 FS: 0000000000000000(0000) GS:ffff88886f500000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000078 CR3: 00000002b7a5a000 CR4: 0000000000f50ef0 PKRU: 55555554 note: kworker/2:0[24] exited with irqs disabled
I was able to bisect the issue to commit a0575b4add21 ("ASoC: hdac_hda: Conditionally register dais for HDMI and Analog"). Reverting that patch on top of mainline fixes it.
As I've been (and still am) off, I had too little time for taking a deeper look now, unfortunately. But my wild guess is that it's a NULL dereference of the hdac_hda_priv referred via hdac dev. If it's correct, a oneliner like below should work around the crash. Could you give it a try?
thanks,
Takashi
-- 8< -- --- a/sound/soc/codecs/hdac_hda.c +++ b/sound/soc/codecs/hdac_hda.c @@ -630,7 +630,7 @@ static int hdac_hda_dev_probe(struct hdac_device *hdev) snd_hdac_ext_bus_link_get(hdev->bus, hlink);
/* ASoC specific initialization */ - if (hda_pvt->need_display_power) + if (hda_pvt && hda_pvt->need_display_power) ret = devm_snd_soc_register_component(&hdev->dev, &hdac_hda_hdmi_codec, hdac_hda_hdmi_dais, ARRAY_SIZE(hdac_hda_hdmi_dais));
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Best, Dominik
Am Fri, Dec 29, 2023 at 02:11:38PM +0100 schrieb Takashi Iwai:
On Wed, 27 Dec 2023 08:37:07 +0100, Dominik Brodowski wrote:
Hi,
unfortunately, the latest 6.7.0-rc7 and the two previous rc kernels cause an oops in hdac_hda_dev_probe(); sound and resume-from-suspend subsequently do not work:
BUG: kernel NULL pointer dereference, address: 0000000000000078 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI Hardware name: Dell Inc. XPS 9315/00KRKP, BIOS 1.1.3 05/11/2022 Workqueue: events sof_probe_work
RIP: 0010:hdac_hda_dev_probe+0x42/0xf0 Code: 48 8b 37 48 8b bb c8 04 00 00 e8 09 9b 0a 00 48 85 c0 48 89 c5 0f 84 a6 00 00 00 48 8b bb c8 04 00 00 48 89 c6 e8 1e 9a 0a 00 <41> 80 7c 24 78 00 75 46 b9 03 00 00 00 48 c7 c2 c0 b2 a1 ac 48 c7 RSP: 0000:ffffc90000207b50 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffff88811495d000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffff888108691600 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: ffff88811400b028 FS: 0000000000000000(0000) GS:ffff88886f500000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000078 CR3: 00000002b7a5a000 CR4: 0000000000f50ef0 PKRU: 55555554 Call Trace:
<TASK> ? __die+0x1e/0x70 ? page_fault_oops+0x17c/0x4b0 ? snd_hdac_ext_bus_link_get+0x24/0xc0 ? exc_page_fault+0x462/0x8e0 ? asm_exc_page_fault+0x26/0x30 ? hdac_hda_dev_probe+0x42/0xf0 really_probe+0x166/0x300 ? __pfx___device_attach_driver+0x10/0x10 __driver_probe_device+0x6e/0x120 driver_probe_device+0x1a/0x90 __device_attach_driver+0x8e/0xd0 bus_for_each_drv+0x90/0xf0 __device_attach+0xac/0x1a0 bus_probe_device+0x93/0xb0 device_add+0x669/0x860 snd_hdac_device_register+0x10/0x60 hda_codec_probe_bus+0x189/0x290 hda_dsp_probe+0x211/0x550 sof_probe_work+0x2c/0x430 ? process_one_work+0x19c/0x500 process_one_work+0x205/0x500 worker_thread+0x1dc/0x3e0
? __pfx_worker_thread+0x10/0x10 kthread+0xea/0x120 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x2c/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30
</TASK> Modules linked in: CR2: 0000000000000078 ---[ end trace 0000000000000000 ]--- RIP: 0010:hdac_hda_dev_probe+0x42/0xf0 Code: 48 8b 37 48 8b bb c8 04 00 00 e8 09 9b 0a 00 48 85 c0 48 89 c5 0f 84 a6 00 00 00 48 8b bb c8 04 00 00 48 89 c6 e8 1e 9a 0a 00 <41> 80 7c 24 78 00 75 46 b9 03 00 00 00 48 c7 c2 c0 b2 a1 ac 48 c7 RSP: 0000:ffffc90000207b50 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff88811495d000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffff888108691600 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: ffff88811400b028 FS: 0000000000000000(0000) GS:ffff88886f500000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000078 CR3: 00000002b7a5a000 CR4: 0000000000f50ef0 PKRU: 55555554 note: kworker/2:0[24] exited with irqs disabled
I was able to bisect the issue to commit a0575b4add21 ("ASoC: hdac_hda: Conditionally register dais for HDMI and Analog"). Reverting that patch on top of mainline fixes it.
As I've been (and still am) off, I had too little time for taking a deeper look now, unfortunately. But my wild guess is that it's a NULL dereference of the hdac_hda_priv referred via hdac dev. If it's correct, a oneliner like below should work around the crash. Could you give it a try?
thanks,
Takashi
-- 8< -- --- a/sound/soc/codecs/hdac_hda.c +++ b/sound/soc/codecs/hdac_hda.c @@ -630,7 +630,7 @@ static int hdac_hda_dev_probe(struct hdac_device *hdev) snd_hdac_ext_bus_link_get(hdev->bus, hlink);
/* ASoC specific initialization */
- if (hda_pvt->need_display_power)
- if (hda_pvt && hda_pvt->need_display_power) ret = devm_snd_soc_register_component(&hdev->dev, &hdac_hda_hdmi_codec, hdac_hda_hdmi_dais, ARRAY_SIZE(hdac_hda_hdmi_dais));
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Takashi
-- 8< -- --- a/sound/soc/sof/intel/hda-codec.c +++ b/sound/soc/sof/intel/hda-codec.c @@ -113,7 +113,9 @@ EXPORT_SYMBOL_NS_GPL(hda_codec_jack_check, SND_SOC_SOF_HDA_AUDIO_CODEC); #define is_generic_config(x) 0 #endif
-static struct hda_codec *hda_codec_device_init(struct hdac_bus *bus, int addr, int type) +static struct hda_codec *hda_codec_device_init(struct hdac_bus *bus, int addr, + int type, + struct hdac_hda_priv *hda_priv) { struct hda_codec *codec; int ret; @@ -126,6 +128,10 @@ static struct hda_codec *hda_codec_device_init(struct hdac_bus *bus, int addr, i
codec->core.type = type;
+ hda_priv->codec = codec; + hda_priv->dev_index = addr; + dev_set_drvdata(&codec->core.dev, hda_priv); + ret = snd_hdac_device_register(&codec->core); if (ret) { dev_err(bus->dev, "failed to register hdac device\n"); @@ -163,15 +169,12 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address) if (!hda_priv) return -ENOMEM;
- codec = hda_codec_device_init(&hbus->core, address, HDA_DEV_LEGACY); + codec = hda_codec_device_init(&hbus->core, address, HDA_DEV_LEGACY, + hda_priv); ret = PTR_ERR_OR_ZERO(codec); if (ret < 0) return ret;
- hda_priv->codec = codec; - hda_priv->dev_index = address; - dev_set_drvdata(&codec->core.dev, hda_priv); - if ((resp & 0xFFFF0000) == IDISP_VID_INTEL) { if (!hbus->core.audio_component) { dev_dbg(sdev->dev,
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Thanks, Dominik
On Sat, 30 Dec 2023 08:27:43 +0100, Dominik Brodowski wrote:
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Hm, then it might be the logical failure of that commit. Peter?
Without a fix in the next few days, we'll have to revert it before 6.7.
thanks,
Takashi
On 30/12/2023 12:03, Takashi Iwai wrote:
On Sat, 30 Dec 2023 08:27:43 +0100, Dominik Brodowski wrote:
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Hm, then it might be the logical failure of that commit. Peter?
Without a fix in the next few days, we'll have to revert it before 6.7.
The fix for this was sent early December: https://lore.kernel.org/linux-sound/20231207095425.19597-1-peter.ujfalusi@li...
It had the correct Fixes tag but it did not made it to 6.7-rc while a0575b4add21 did made it.
Mark, Takashi, can you pick the fix for 6.7 (it is in -next)? I think we might have time for it to land?
On Tue, 02 Jan 2024 10:08:47 +0100, Péter Ujfalusi wrote:
On 30/12/2023 12:03, Takashi Iwai wrote:
On Sat, 30 Dec 2023 08:27:43 +0100, Dominik Brodowski wrote:
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Hm, then it might be the logical failure of that commit. Peter?
Without a fix in the next few days, we'll have to revert it before 6.7.
The fix for this was sent early December: https://lore.kernel.org/linux-sound/20231207095425.19597-1-peter.ujfalusi@li...
It had the correct Fixes tag but it did not made it to 6.7-rc while a0575b4add21 did made it.
Mark, Takashi, can you pick the fix for 6.7 (it is in -next)? I think we might have time for it to land?
Oh that landed to Mark's for-next branch, i.e. only for 6.8. Mark, please cherry-pick and send a PR before 6.7 final.
Meanwhile, Peter, please update the bugzilla entry to let people try the patch.
thanks,
Takashi
On Tue, 02 Jan 2024 10:25:00 +0100, Takashi Iwai wrote:
On Tue, 02 Jan 2024 10:08:47 +0100, Péter Ujfalusi wrote:
On 30/12/2023 12:03, Takashi Iwai wrote:
On Sat, 30 Dec 2023 08:27:43 +0100, Dominik Brodowski wrote:
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Hm, then it might be the logical failure of that commit. Peter?
Without a fix in the next few days, we'll have to revert it before 6.7.
The fix for this was sent early December: https://lore.kernel.org/linux-sound/20231207095425.19597-1-peter.ujfalusi@li...
It had the correct Fixes tag but it did not made it to 6.7-rc while a0575b4add21 did made it.
Mark, Takashi, can you pick the fix for 6.7 (it is in -next)? I think we might have time for it to land?
Oh that landed to Mark's for-next branch, i.e. only for 6.8. Mark, please cherry-pick and send a PR before 6.7 final.
I ended up with cherry-picking by myself now.
I'm going to send a PR to Linus for 6.7 final in tomorrow.
thanks,
Takashi
On 03/01/2024 16:36, Takashi Iwai wrote:
Mark, Takashi, can you pick the fix for 6.7 (it is in -next)? I think we might have time for it to land?
Oh that landed to Mark's for-next branch, i.e. only for 6.8. Mark, please cherry-pick and send a PR before 6.7 final.
I ended up with cherry-picking by myself now.
I'm going to send a PR to Linus for 6.7 final in tomorrow.
Thank you, I really appreciate it!
On Wed, Jan 03, 2024 at 03:36:00PM +0100, Takashi Iwai wrote:
Mark, Takashi, can you pick the fix for 6.7 (it is in -next)? I think we might have time for it to land?
Oh that landed to Mark's for-next branch, i.e. only for 6.8. Mark, please cherry-pick and send a PR before 6.7 final.
If you're trying to attract my attention a comment deep in a thread about HDA probably isn't the way to do it, there's a very good chance I'm just deleting them unread given how much random HDA stuff I seem to get CCed on these days :/ .
I ended up with cherry-picking by myself now.
I'm going to send a PR to Linus for 6.7 final in tomorrow.
I have some critical fixes I should be posting just now and sending a PR for later today (unfortunately the board that's impacted has some ethernet issues in the bootloader which is really slowing down tests here).
Am Tue, Jan 02, 2024 at 11:08:47AM +0200 schrieb Péter Ujfalusi:
On 30/12/2023 12:03, Takashi Iwai wrote:
On Sat, 30 Dec 2023 08:27:43 +0100, Dominik Brodowski wrote:
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Hm, then it might be the logical failure of that commit. Peter?
Without a fix in the next few days, we'll have to revert it before 6.7.
The fix for this was sent early December: https://lore.kernel.org/linux-sound/20231207095425.19597-1-peter.ujfalusi@li...
Yes, that patch fixes the issue (all built-in here).
Thanks, Dominik
On Sat, 30 Dec 2023 11:03:36 +0100, Takashi Iwai wrote:
On Sat, 30 Dec 2023 08:27:43 +0100, Dominik Brodowski wrote:
Am Fri, Dec 29, 2023 at 06:11:43PM +0100 schrieb Takashi Iwai:
On Fri, 29 Dec 2023 16:24:18 +0100, Dominik Brodowski wrote:
Hi Takashi,
many thanks for your response. Your patch helps half-way: the oops goes away, but so does the sound... With your patch, the decisive lines in dmesg are:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
With a revert of the a0575b4add21, it is:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3 input: sof-soundwire HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input14 input: sof-soundwire HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input15 input: sof-soundwire HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Maybe this helps a bit further?
Thanks for quick testing. It shows at least that my guess wasn't wrong.
The problem could be the initialization order in the caller side. Can the patch below work instead?
Unfortunately, no:
sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864 sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 sof_sdw sof_sdw: ASoC: CODEC DAI intel-hdmi-hifi1 not registered sof_sdw sof_sdw: snd_soc_register_card failed -517 platform sof_sdw: deferred probe pending
Hm, then it might be the logical failure of that commit. Peter?
FWIW, there was a report on bugzilla, too: https://bugzilla.kernel.org/show_bug.cgi?id=218304
Takashi
participants (4)
-
Dominik Brodowski
-
Mark Brown
-
Péter Ujfalusi
-
Takashi Iwai