Created attachment 275340 [details] Read the ELD from the output pin to select the correct audio framing. hdaa_audio_setup() reads the converter widget's ELD when choosing between HDMI and DisplayPort audio infoframes. ELD is stored on the output pin, so the converter has no ELD and the driver selects HDMI framing even when the connected display uses DisplayPort.
The change seems fine, what is the functional change in your setup?
I tested the equivalent change on DragonFly BSD, with an Intel Kaby Lake audio codec and an LG HDR 4K monitor connected through DisplayPort. I have not tested it on FreeBSD hardware. Before the change, the driver selected HDMI audio framing even though the output pin's ELD identified DisplayPort. After the change, the captured driver commands used DisplayPort framing, and I could hear console tones and desktop audio. Correct framing is the change I could verify directly.
As with 299139, please feel free to submit the patch for review on GitHub or Phabricator, and make sure to include sufficient information (for example what you just described) in the commit message. Thanks.
Thanks, I've opened a GitHub PR: https://github.com/freebsd/freebsd-src/pull/2463 The commit includes the observed framing change and the DragonFly hardware results, with the FreeBSD validation limitation noted.