Hey,
Den 2023-11-14 kl. 16:50, skrev Takashi Iwai:
On Tue, 14 Nov 2023 15:39:16 +0100,
Maarten Lankhorst wrote:
Hey,
Den 2023-11-14 kl. 14:39, skrev Ville Syrjälä:
On Tue, Nov 14, 2023 at 02:35:10PM +0200, Jani Nikula wrote:
On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote:
On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@xxxxxxxxxxxxxxx wrote:
From: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Now that we can use -EPROBE_DEFER, it's no longer required to spin off
the snd_hdac_i915_init into a workqueue.
Use the -EPROBE_DEFER mechanism instead, which must be returned in the
probe function.
This completely broke i915 audio!
I also can't see any trace of this stuff ever being posted to
intel-gfx so it never went through the CI.
Please fix or revert ASAP.
Cc: Jani, Suresh
Ville, please file a bug at gitlab so we can track this, thanks.
https://gitlab.freedesktop.org/drm/intel/-/issues/9671
Looks like a simple patch should be enough, can you test below?
Seems that we reached to the same conclusion :)
I took a quick look at other code paths, and sound/pci/hda/hda_intel.c
is the only place that needs the correction. Other (ASoC) drivers are
either simply always returning the error or dealing only with -ENODEV
case for skipping the HDMI codec.
Yeah, the original comment in the code confused me and led me to not
handle -EPROBE_DEFER in the first place there.
Cheers,
Maarten
thanks,
Takashi
----
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 058f6e6491f9a..946aaa487f200 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2145,7 +2145,8 @@ static int azx_probe(struct pci_dev *pci,
* for other chips, still continue probing as other
* codecs can be on the same link.
*/
- if (HDA_CONTROLLER_IN_GPU(pci)) {
+ if (HDA_CONTROLLER_IN_GPU(pci) ||
+ err == -EPROBE_DEFER) {
goto out_free;
} else {
/* don't bother any longer */