snd_hda_intel: Cannot probe codecs, giving up

Loading the driver fails during boot, but succeeds upon configuring with yast2 sound > edit > reset all.

**erlangen:~ #** inxi -aA             
**Audio:     Device-1:** AMD Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] **vendor:** Sapphire Limited 
           **driver:** snd_hda_intel **v:** kernel **bus-ID:** 2b:00.1 **chip-ID:** 1002:aae0 **class-ID:** 0403 
           **Sound Server-1:** ALSA **v:** k5.17.4-1-default **running:** yes 
           **Sound Server-2:** PulseAudio **v:** 15.0 **running:** yes 
           **Sound Server-3:** PipeWire **v:** 0.3.51 **running:** yes 
**erlangen:~ #**
**erlangen:~ #** journalctl -b -g snd             
May 03 13:20:54 erlangen systemd-modules-load[270]: Inserted module 'snd_hda_intel' 
May 03 13:20:54 erlangen kernel: snd_hda_intel 0000:2b:00.1: enabling device (0000 -> 0002) 
May 03 13:20:54 erlangen kernel: snd_hda_intel 0000:2b:00.1: Handle vga_switcheroo audio client 
May 03 13:20:54 erlangen kernel: snd_hda_intel 0000:2b:00.1: Force to non-snoop mode 
May 03 13:20:54 erlangen kernel: **snd****_hda_intel 0000:2b:00.1: Cannot probe codecs, giving up**

Resetting and restarting:

May 03 13:22:52 erlangen kernel: snd_hda_intel 0000:2b:00.1: Handle vga_switcheroo audio client 
May 03 13:22:52 erlangen kernel: snd_hda_intel 0000:2b:00.1: Force to non-snoop mode 
May 03 13:22:52 erlangen kernel: snd_hda_intel 0000:2b:00.1: bound 0000:2b:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu]) 
May 03 13:23:02 erlangen kernel: snd_hda_intel 0000:2b:00.1: Handle vga_switcheroo audio client 
May 03 13:23:02 erlangen kernel: snd_hda_intel 0000:2b:00.1: Force to non-snoop mode 
May 03 13:23:02 erlangen kernel: snd_hda_intel 0000:2b:00.1: bound 0000:2b:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu]) 
**erlangen:~ #**

Any idea?

The error is caused by systemd-modules-load, which loads snd_hda_intel prematurely:

**erlangen:~ #** journalctl -b -q --identifier systemd-modules-load  
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'msr' 
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'scsi_dh_alua' 
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'scsi_dh_emc' 
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'scsi_dh_rdac' 
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'dm_multipath' 
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'sg' 
May 04 14:48:51 erlangen systemd-modules-load[274]: Inserted module 'snd_hda_intel' 
**erlangen:~ #**

Any idea how to inhibit loading snd_hda_intel through systemd-modules-load?

Hi
I have snd soundcore and snd-* omitted in my dracut config file and don’t see it loaded, also running pipewire.

Added the module here:

**erlangen:~ #** grep omit /etc/dracut.conf.d/01-dist.conf  
**omit**_drivers+=" i2o_scsi snd_hda_intel " 
**erlangen:~ #**

The above made sound great again:

**erlangen:~ #** journalctl -b -g snd                       
May 04 15:48:20 erlangen kernel: snd_hda_intel 0000:2b:00.1: enabling device (0000 -> 0002) 
May 04 15:48:20 erlangen kernel: snd_hda_intel 0000:2b:00.1: Handle vga_switcheroo audio client 
May 04 15:48:20 erlangen kernel: snd_hda_intel 0000:2b:00.1: Force to non-snoop mode 
May 04 15:48:20 erlangen kernel: snd_hda_intel 0000:2d:00.4: enabling device (0000 -> 0002) 
May 04 15:48:20 erlangen kernel: snd_hda_intel 0000:2b:00.1: bound 0000:2b:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu]) 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC897: line_outs=4 (0x14/0x15/0x16/0x17/0x0) type:line 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:    hp_outs=1 (0x1b/0x0/0x0/0x0/0x0) 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:    mono: mono_out=0x0 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:    inputs: 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:      Front Mic=0x19 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:      Rear Mic=0x18 
May 04 15:48:20 erlangen kernel: snd_hda_codec_realtek hdaudioC1D0:      Line=0x1a 
**erlangen:~ #**

https://bugzilla.opensuse.org/show_bug.cgi?id=1199174#c5

Previously you was using snd_hda_intel with GPU builtin Ryzen 3400G, now you’re using GPU in discrete videocard.
IMHO resetting of a sound settings is needed (and recreating of a boot image too).