I have a ASUS GL702VM-GC143T ROG Strix laptop with an GTX 1060M GPU. Under Linux (I usually use Gentoo but same behaviour with Xubuntu) when I plug the HDMI cable from my TV into the laptop the display shows up but no HDMI audio device is discovered. Under Windows 10 the HDMI audio device shows up when the HDMI cable is plugged in.
With the HDMI cable connected while running Xorg no HDMI audio shows using lspci and the ALSA module snd-hda-codec-hdmi never gets loaded. I have tried the setpci method to rescan the PCI bus but it doesn’t make any difference.
Looks ok. So either you’re doing something wrong regarding unloading modules/pci rescan or with your gpu it’s a different register. The driver can’t do anything about it, it’s on bus level.
Maybe see what the 0x488 register is set to under windows using
setpci -s 01:00.0 0x488.l
or
lspci -s1: -nnxxxx
pcitools are ported to windows.
If I use acpi=off pci=biosirq kernel options on boot then fffffff is set under Linux but the NVidia modules do not load (no IRQ available) but the NVidia HDMI audio device shows up under lspci.
That’s odd. 0xFFFFFFFF would rather point to either no device present or setpci failing to read.
What’s the output of
lspci -d 10de:* -nnxxxx
in the three cases Windows/Linux normal boot/Linux boot with kernel options? Did you try booting an 64bit Linux and using the setpci procedure?
Can you please point me to the bugzilla entry?
The 4.9 kernel is definitely broken, it always uses just the cached pci config space, never re-reads it.