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
Unknown Object (File)
Sun, Mar 1, 2:23 PM
Unknown Object (File)
Sun, Mar 1, 3:41 AM
Unknown Object (File)
Fri, Feb 27, 10:16 AM
Unknown Object (File)
Wed, Feb 25, 4:22 PM
Unknown Object (File)
Wed, Feb 25, 3:29 PM
Unknown Object (File)
Wed, Feb 25, 9:28 AM
Unknown Object (File)
Wed, Feb 25, 4:24 AM
Unknown Object (File)
Wed, Feb 25, 1:27 AM
Subscribers

Details

Reviewers
mav
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

Event Timeline

guest-seuros held this revision as a draft.
guest-seuros edited the summary of this revision. (Show Details)
guest-seuros edited the test plan for this revision. (Show Details)
guest-seuros added a reviewer: mav.