nouveau optimus HDMI audio support

Dave Airlie airlied at gmail.com
Mon Oct 7 01:48:14 CEST 2013


On Mon, Oct 7, 2013 at 8:45 AM, Jethro Beekman <dri-devel at jbeekman.nl> wrote:
> On 06-10-13 15:00, Dave Airlie wrote:
>> On Mon, Oct 7, 2013 at 7:04 AM, Jethro Beekman <dri-devel at jbeekman.nl> 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.

Dave.


More information about the dri-devel mailing list