Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The stack

Integration layer      compositor glue · DRM/KMS · source capability query   (planned)
Driver-adjacent layer  FRL link training                                     plumbob · plumbob-async
Protocol layer         CEC · eARC                                            (planned)
Signaling layer        InfoFrames · SCDC                                     cartouche · culvert · culvert-async
Negotiation layer      enumeration · validation · ranking                    concordance
Parsing layer          EDID · DisplayID                                      piaf
Shared types           display vocabulary                                    display-types
Hardware abstraction   SCDC transport · PHY                                  hdmi-hal · hdmi-hal-async · hdmi-hal-i2c-dev

The critical path — what a minimal working HDMI 2.1 link needs, in order:

StepWhat happensCrateStatus
1Parse the sink’s EDID / DisplayID into typed capabilitiespiafReleased
2Negotiate a ranked list of configurations the sink, source and cable can all carryconcordanceReleased
3Read and write the sink’s SCDC registersculvertReleased
4Train the FRL link, stepping down rates when the sink asks, falling back to TMDSplumbobReleased
5Run the above against real hardware from Linux userspacehdmi-hal-i2c-devReleased
6Describe the chosen configuration in InfoFramescartoucheReleased
7Discover the source’s capabilities from DRM/KMS—Planned
8Turn the negotiated configuration into a DRM atomic modeset—Planned

CEC, eARC and further PHY configuration are off the critical path.

Where policy lives

The parsing and protocol layers are judgment-free: they implement the specification and report what they find. The negotiation layer is where opinions live — it ranks candidates by a NegotiationPolicy you can override, and every accepted or rejected candidate carries a reasoning trace explaining why.