[Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Tue Nov 14 15:52:52 UTC 2023


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 at linux.intel.com> wrote:
>>          
>>              On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst at linux.intel.com wrote:
>>              
>>                  From: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>>                  
>>                  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 */
>>


More information about the Intel-gfx mailing list