Solved Lenovo P51 (NVIDIA Quadro M2200)/DisplayPort - no sound device

Hi,

Trying to get my Lenovo P51 (NVIDIA Quadro M2200) working with external Dell U3417W connected using MiniDP-DP cable. The graphics part is working flawlessly using nvidia-driver-390.77, however the sound part still needs help.

Looking at other related threads, everyone seems to have a device for HDMI/DP in their /dev/sndstat contents, for me it's simply not there:
Code:
$ cat /dev/sndstat
Installed devices:
pcm0: <Realtek ALC298 (Analog)> (play/rec) default
pcm1: <Realtek ALC298 (Analog)> (play/rec)
No devices installed from userspace.

It's not even present in pciconf/ lspci output:
Code:
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)
00:15.0 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #0 (rev 31)
00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)
00:1c.2 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #3 (rev f1)
00:1c.4 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #9 (rev f1)
00:1d.4 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #13 (rev f1)
00:1f.0 ISA bridge: Intel Corporation CM238 Chipset LPC/eSPI Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)
00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (5) I219-LM (rev 31)
01:00.0 VGA compatible controller: NVIDIA Corporation GM206GLM [Quadro M2200 Mobile] (rev a1)
04:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
3e:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
3f:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)

Any hints on what I'm missing here?

P.S.: of course, the same exact setup works in Windows, so it shouldn't be faulty hardware :)
 
I'm using "discrete graphics" BIOS option exclusively both when I did try installing Windows and while running FreeBSD. What I'm seeing with Windows is that initially it looks the same having only 2 outputs, one of which is builtin speakers (and which works for me now in FreeBSD) until I install the NVIDIA driver. So I'm wondering if there's an undocumented option with FreeBSD NVIDIA driver that would enable the HDMI/DP outputs; searching the documentation didn't reveal anything related.
 
Found a linux workaround: https://devtalk.nvidia.com/default/...a-intel-detected-azalia/post/5211273/#5211273

A FreeBSD equivalent that made the HDA controller working was:
Code:
kldunload nvidia-modeset
setpci -s 01:00.0 0x488.l=0x2000000:0x2000000 (I guess could have used pciconf here, or somehow set it before the kernel boots? will try later)
devctl rescan pci1 (parent of the vgapci0 from devinfo(8) output)
kldload nvidia-modeset

Now it is visible to the system and successfully working on pcm2:
Code:
hdac1: <NVIDIA (0x0fba) HDA Controller> mem 0xec000000-0xec003fff at device 0.1 on pci1
hdacc1: <NVIDIA (0x0072) HDA CODEC> at cad 0 on hdac1
hdaa1: <NVIDIA (0x0072) Audio Function Group> at nid 1 on hdacc1
pcm2: <NVIDIA (0x0072) (HDMI/DP 8ch)> at nid 4 on hdaa1
pcm3: <NVIDIA (0x0072) (HDMI/DP 8ch)> at nid 5 on hdaa1
pcm4: <NVIDIA (0x0072) (HDMI/DP 8ch)> at nid 7 on hdaa1
 
Back
Top