[topic/core-for-CI] ASoC: SOF: Core: Add remove_late() to sof_init_environment failure path
Lucas De Marchi
lucas.demarchi at intel.com
Thu Mar 28 17:50:01 UTC 2024
On Thu, Mar 28, 2024 at 09:52:33AM -0400, Rodrigo Vivi wrote:
>From: Chaitanya Kumar Borah <chaitanya.kumar.borah at intel.com>
>
>In cases where the sof driver is unable to find the firmware and/or
>topology file [1], it exits without releasing the i915 runtime
>pm wakeref [2]. This results in dmesg warnings[3] during
>suspend/resume or driver unbind. Add remove_late() to the failure path
>of sof_init_environment so that i915 wakeref is released appropriately
>
>[1]
>
>[ 8.990366] sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.
>[ 8.990396] sof-audio-pci-intel-mtl 0000:00:1f.3: Supported default profiles
>[ 8.990398] sof-audio-pci-intel-mtl 0000:00:1f.3: - ipc type 1 (Requested):
>[ 8.990399] sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/mtl/sof-mtl.ri
>[ 8.990401] sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: intel/sof-ace-tplg/sof-mtl-rt711-2ch.tplg
>[ 8.990402] sof-audio-pci-intel-mtl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
>[ 8.990403] sof-audio-pci-intel-mtl 0000:00:1f.3: Optionally it can be manually downloaded from:
>[ 8.990404] sof-audio-pci-intel-mtl 0000:00:1f.3: https://github.com/thesofproject/sof-bin/
>[ 8.999088] sof-audio-pci-intel-mtl 0000:00:1f.3: error: sof_probe_work failed err: -2
>
>[2]
>
>ref_tracker: 0000:00:02.0 at ffff9b8511b6a378 has 1/5 users at
> track_intel_runtime_pm_wakeref.part.0+0x36/0x70 [i915]
> __intel_runtime_pm_get+0x51/0xb0 [i915]
> intel_runtime_pm_get+0x17/0x20 [i915]
> intel_display_power_get+0x2f/0x70 [i915]
> i915_audio_component_get_power+0x23/0x120 [i915]
> snd_hdac_display_power+0x89/0x130 [snd_hda_core]
> hda_codec_i915_init+0x3f/0x50 [snd_sof_intel_hda]
> hda_dsp_probe_early+0x170/0x250 [snd_sof_intel_hda_common]
> snd_sof_device_probe+0x224/0x320 [snd_sof]
> sof_pci_probe+0x15b/0x220 [snd_sof_pci]
> hda_pci_intel_probe+0x30/0x70 [snd_sof_intel_hda_common]
> local_pci_probe+0x4c/0xb0
> pci_device_probe+0xcc/0x250
> really_probe+0x18e/0x420
> __driver_probe_device+0x7e/0x170
> driver_probe_device+0x23/0xa0
>
>[3]
>[ 484.105070] ------------[ cut here ]------------
>[ 484.108238] thunderbolt 0000:00:0d.2: PM: pci_pm_suspend_late+0x0/0x50 returned 0 after 0 usecs
>[ 484.117106] i915 0000:00:02.0: i915 raw-wakerefs=1 wakelocks=1 on cleanup
>[ 484.792005] WARNING: CPU: 2 PID: 2405 at drivers/gpu/drm/i915/intel_runtime_pm.c:444 intel_runtime_pm_driver_release+0x6c/0x80
>
>Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah at intel.com>
>Tested-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>[This commit is still under review on the sof tree, but likely targeting 6.10
>Adding to topic branch to unblock RPM in LNL VLK-56970]
>Link: https://github.com/thesofproject/linux/pull/4878
>Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
Acked-by: Lucas De Marchi <lucas.demarchi at intel.com>
to merge in our topic/core-for-CI branch.
thanks
Lucas De Marchi
>---
> sound/soc/sof/core.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
>diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
>index 425b023b03b4..3e41821562f0 100644
>--- a/sound/soc/sof/core.c
>+++ b/sound/soc/sof/core.c
>@@ -339,8 +339,7 @@ static int sof_init_environment(struct snd_sof_dev *sdev)
> ret = snd_sof_probe(sdev);
> if (ret < 0) {
> dev_err(sdev->dev, "failed to probe DSP %d\n", ret);
>- sof_ops_free(sdev);
>- return ret;
>+ goto err_sof_probe;
> }
>
> /* check machine info */
>@@ -358,15 +357,18 @@ static int sof_init_environment(struct snd_sof_dev *sdev)
> ret = validate_sof_ops(sdev);
> if (ret < 0) {
> snd_sof_remove(sdev);
>+ snd_sof_remove_late(sdev);
> return ret;
> }
> }
>
>+ return 0;
>+
> err_machine_check:
>- if (ret) {
>- snd_sof_remove(sdev);
>- sof_ops_free(sdev);
>- }
>+ snd_sof_remove(sdev);
>+err_sof_probe:
>+ snd_sof_remove_late(sdev);
>+ sof_ops_free(sdev);
>
> return ret;
> }
>--
>2.44.0
>
More information about the Intel-gfx
mailing list