So this is Fedora 28 and they just released kernel 4.17.2, which, as the title says, killed HDMI audio output of my GTX 980.
I thought it’s PulseAudio acting out again, but no (FYI, 11.x had problems with cards that have no sinks on PA startup which also broke HDMI out, but 12.0 is fine)
After hours of frustration I found out that even after turning the TV out on (with nvidia-settings), /proc/asound/NVidia/eld#0.1 keeps saying:
monitor_present 0
eld_valid 0
This can be worked around in several ways (including a GUI way, some clicking in pavucontrol every time you turn the TV out on), but funniest is:
cat /proc/asound/NVidia/codec#0 > /dev/null
Reading that file somehow makes the driver recognize that the output is now “plugged” (in PA terminology), /proc/asound/card0/eld#0.1 shows the TV normally, pulseaudio automatically switches to correct profile and everything works as expected.
But until you read that file, everything is dead.
Anyone knows what causes this? Is this a kernel regression in snd-hda-intel, or is this some kind of conflict with the nvidia driver they introduced in 4.17?
I’m using the Vulkan dev driver 396.24.02 (which, again, works excellent with kernel up to 4.16.16)
I’m not sure whether you’re confusing two separate issues, or you’ve just noticed it late…
What I have (and it’s still here, 2 GPUs and a million kernels later) was already present in 39x.xx drivers, and appeared in a KERNEL 4.17 update, not a driver version. Same driver worked 100% with a 4.16 kernel.
And the current (kernel 5.1.16, nvidia 430.25) 100% working work-around is to:
pacmd set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1
every time you turn on your TV (output name is hardware-specific of course).
Reading a /proc file became erratic, but it’s still fun that it used to work 100% reliably at that point (kernel 4.17.x, driver 396.x). How the FSCK do you get a sound card working by reading a file?! This is below nonsensical… but true!