On Mon, Oct 7, 2013 at 10:30 AM, Jethro Beekman <dri-devel@xxxxxxxxxxx> wrote: > > > On 06-10-13 16:48, Dave Airlie wrote: >> On Mon, Oct 7, 2013 at 8:45 AM, Jethro Beekman <dri-devel@xxxxxxxxxxx> wrote: >>> On 06-10-13 15:00, Dave Airlie wrote: >>>> On Mon, Oct 7, 2013 at 7:04 AM, Jethro Beekman <dri-devel@xxxxxxxxxxx> wrote: >>>>> Even with Dave Airlie's recent patch set ( >>>>> http://lists.freedesktop.org/archives/dri-devel/2013-August/042854.html ), I'm >>>>> still having trouble getting HDMI audio to work on my optimus laptop. I'm >>>>> running Linux 3.12.0-rc3 on a Lenovo ThinkPad T420s. When I set my BIOS graphics >>>>> option to 'Discrete', I get the following two devices in lspci: >>>>> >>>>> 01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [Quadro NVS 4200M] >>>>> (rev a1) >>>>> 01:00.1 Audio device: NVIDIA Corporation HDMI Audio stub (rev a1) >>>>> >>>>> When I set the option to 'Optimus', the 01:00.1 device disappears completely. >>>>> This is dmesg when loading nouveau in the Optimus configuration: >>>>> >>>>> pci 0000:01:00.0: optimus capabilities: enabled, status dynamic power, hda bios >>>>> codec supported >>>>> VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.PEG_.VID_ handle >>>>> [drm] hdmi device not found 1 0 1 >>>>> >>>>> I modified snd-hda-intel to report which devices it's probing, this is the only >>>>> one that shows up: >>>>> >>>>> hda-intel: azx_probe: 0000:00:1b.0 >>>>> >>>>> Any ideas what's going on? >>>> >>>> Wierd, I wonder does it route the codecs via the other device, though >>>> I can't remember how to see what codecs are available. >>> >>> /proc/asound/card0/ lists only a single codec which is for analog i/o. >>> >>>> The other thing would be to try and hack on the hdmi stub using the >>>> code in my patches that does it after s/r but do it at startup. >>> >>> Could you be a little more specific? I tried moving nouveau_get_hdmi_dev() later >>> so we have drm->device setup and then adding the 'do magic' nv_mask() call >>> before that. That's either not working or something more needs to happen to make >>> it work. >> >> yeah doing the do magic might not work though since Linux would have to rescan >> the PCI bus for the hdmi driver to detect it, I wonder can you poke >> registers from grub, >> or maybe geneate some sort of pci hotplug even so the other layers notice. > > I added this, copied from the handler for /sys/bus/pci/rescan: > > struct pci_bus *b = NULL; > > while ((b = pci_find_next_bus(b)) != NULL) > pci_rescan_bus(b); > > No luck... Also tried adding a specific pci_scan_slot(). > > How did you find out about the magic register? Are we sure that it's supposed to > work on my device? No idea, magic is magic for a reason. You can read it back when you are booted discrete and see if poking it makes hdmi device disappear. Dave. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel