Page MenuHomeFreeBSD

hdaa: reassign duplicate HDMI/DP pin sequences instead of disabling
Needs ReviewPublic

Authored by guest-seuros on Mon, Feb 23, 10:42 PM.
Tags
None
Referenced Files
F148343984: D55473.diff
Tue, Mar 17, 6:40 AM
Unknown Object (File)
Thu, Mar 12, 12:20 PM
Unknown Object (File)
Sun, Mar 8, 5:45 PM
Unknown Object (File)
Sat, Mar 7, 9:55 PM
Unknown Object (File)
Sat, Mar 7, 9:55 PM
Unknown Object (File)
Sat, Mar 7, 9:55 PM
Unknown Object (File)
Sun, Mar 1, 2:23 PM
Unknown Object (File)
Sun, Mar 1, 3:41 AM
Subscribers

Details

Reviewers
mav
ngie
Summary

Some firmware (e.g. Apple EFI on Sandy Bridge Mac hardware) programs all HDMI/DP output pins in an association with identical sequence numbers.

The existing code disables the entire association on the first duplicate, leaving HDMI/DP audio non-functional.

For digital output pins (HDMI/DP) with seq=0 duplicates, search for the next free sequence slot and reassign the duplicate rather than disabling.

The seq=0 restriction targets the known Apple firmware pattern; any other duplicate sequence is more likely a genuine firmware error and the association is still disabled.

Update first after reassignment so that hpredir is not left pointing at a stale sequence. Non-digital and input associations retain the existing disable behaviour.

Test Plan

Tested on Mac Mini 5,1 (Intel Sandy Bridge, Cougar Point PCH) where the fix allows pcm to enumerate all three HDMI/DP pins without sysctl
overrides.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 70939
Build 67822: arc lint + arc unit