DISPLAY DRIVER INTEGRATION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ display driver integration(9) β€” Kernel API Manual edition ✨

okay bestie, welcome to the Kernel API Manual page for display driver integration(9) β€” this is the whole group-chat lore on how display drivers and bridges link up 🫢

Display drivers are responsible for linking encoders with the first bridge in the chains. How do they do it? By acquiring the appropriate bridge with devm_drm_of_get_bridge. Once acquired, the bridge shall be attached to the encoder with a call to drm_bridge_attach. That's the move πŸ’…

Bridges are responsible for linking themselves with the next bridge in the chain, if any. Same energy as for encoders: this is done with the call to drm_bridge_attach occurring in the drm_bridge_funcs.attach operation.

Once these links are created, the bridges can participate along with encoder functions to perform:

  • mode validation and fixup β€” through drm_bridge_chain_mode_valid and drm_atomic_bridge_chain_check
  • mode setting β€” through drm_bridge_chain_mode_set
  • enable β€” through drm_atomic_bridge_chain_pre_enable and drm_atomic_bridge_chain_enable
  • disable β€” through drm_atomic_bridge_chain_disable and drm_atomic_bridge_chain_post_disable

Those functions call the corresponding operations provided in drm_bridge_funcs in sequence for all bridges in the chain. Literally in sequence for the whole chain, no skipping 😌

For display drivers that use the atomic helpers drm_atomic_helper_check_modeset, drm_atomic_helper_commit_modeset_enables and drm_atomic_helper_commit_modeset_disables β€” either directly in hand-rolled commit check and commit tail handlers, or through the higher-level drm_atomic_helper_check and drm_atomic_helper_commit_tail or drm_atomic_helper_commit_tail_rpm helpers β€” this is done transparently and requires no intervention from the driver. Iconic, honestly ✨ For other drivers, the relevant DRM bridge chain functions shall be called manually. You got this 🫑

Bridges also participate in implementing the drm_connector at the end of the bridge chain. Display drivers may use the drm_bridge_connector_init helper to create the drm_connector, or implement it manually on top of the connector-related operations exposed by the bridge (see the overview documentation of bridge operations for more details). Main-character connector energy, fr fr πŸ‘‘


✨ SEE ALSO ✨

that's the whole page, bestie β€” source vibe ./drivers/gpu/drm, dated October 2026 πŸ’–βœ¨
πŸ“¦ where this page comes from