123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455 |
- =============================
- Mode Setting Helper Functions
- =============================
- The DRM subsystem aims for a strong separation between core code and helper
- libraries. Core code takes care of general setup and teardown and decoding
- userspace requests to kernel internal objects. Everything else is handled by a
- large set of helper libraries, which can be combined freely to pick and choose
- for each driver what fits, and avoid shared code where special behaviour is
- needed.
- This distinction between core code and helpers is especially strong in the
- modesetting code, where there's a shared userspace ABI for all drivers. This is
- in contrast to the render side, where pretty much everything (with very few
- exceptions) can be considered optional helper code.
- There are a few areas these helpers can grouped into:
- * Helpers to implement modesetting. The important ones here are the atomic
- helpers. Old drivers still often use the legacy CRTC helpers. They both share
- the same set of common helper vtables. For really simple drivers (anything
- that would have been a great fit in the deprecated fbdev subsystem) there's
- also the simple display pipe helpers.
- * There's a big pile of helpers for handling outputs. First the generic bridge
- helpers for handling encoder and transcoder IP blocks. Second the panel helpers
- for handling panel-related information and logic. Plus then a big set of
- helpers for the various sink standards (DisplayPort, HDMI, MIPI DSI). Finally
- there's also generic helpers for handling output probing, and for dealing with
- EDIDs.
- * The last group of helpers concerns itself with the frontend side of a display
- pipeline: Planes, handling rectangles for visibility checking and scissoring,
- flip queues and assorted bits.
- Modeset Helper Reference for Common Vtables
- ===========================================
- .. kernel-doc:: include/drm/drm_modeset_helper_vtables.h
- :doc: overview
- .. kernel-doc:: include/drm/drm_modeset_helper_vtables.h
- :internal:
- .. _drm_atomic_helper:
- Atomic Modeset Helper Functions Reference
- =========================================
- Overview
- --------
- .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
- :doc: overview
- Implementing Asynchronous Atomic Commit
- ---------------------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
- :doc: implementing nonblocking commit
- Helper Functions Reference
- --------------------------
- .. kernel-doc:: include/drm/drm_atomic_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
- :export:
- Atomic State Reset and Initialization
- -------------------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
- :doc: atomic state reset and initialization
- Atomic State Helper Reference
- -----------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
- :export:
- GEM Atomic Helper Reference
- ---------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_gem_atomic_helper.c
- :doc: overview
- .. kernel-doc:: include/drm/drm_gem_atomic_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_gem_atomic_helper.c
- :export:
- Simple KMS Helper Reference
- ===========================
- .. kernel-doc:: drivers/gpu/drm/drm_simple_kms_helper.c
- :doc: overview
- .. kernel-doc:: include/drm/drm_simple_kms_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_simple_kms_helper.c
- :export:
- fbdev Helper Functions Reference
- ================================
- .. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c
- :doc: fbdev helpers
- .. kernel-doc:: include/drm/drm_fb_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c
- :export:
- format Helper Functions Reference
- =================================
- .. kernel-doc:: drivers/gpu/drm/drm_format_helper.c
- :export:
- Framebuffer DMA Helper Functions Reference
- ==========================================
- .. kernel-doc:: drivers/gpu/drm/drm_fb_dma_helper.c
- :doc: framebuffer dma helper functions
- .. kernel-doc:: drivers/gpu/drm/drm_fb_dma_helper.c
- :export:
- Framebuffer GEM Helper Reference
- ================================
- .. kernel-doc:: drivers/gpu/drm/drm_gem_framebuffer_helper.c
- :doc: overview
- .. kernel-doc:: drivers/gpu/drm/drm_gem_framebuffer_helper.c
- :export:
- .. _drm_bridges:
- Bridges
- =======
- Overview
- --------
- .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
- :doc: overview
- Display Driver Integration
- --------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
- :doc: display driver integration
- Special Care with MIPI-DSI bridges
- ----------------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
- :doc: special care dsi
- Bridge Operations
- -----------------
- .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
- :doc: bridge operations
- Bridge Connector Helper
- -----------------------
- .. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c
- :doc: overview
- Bridge Helper Reference
- -------------------------
- .. kernel-doc:: include/drm/drm_bridge.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
- :export:
- Bridge Connector Helper Reference
- ---------------------------------
- .. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c
- :export:
- Panel-Bridge Helper Reference
- -----------------------------
- .. kernel-doc:: drivers/gpu/drm/bridge/panel.c
- :export:
- .. _drm_panel_helper:
- Panel Helper Reference
- ======================
- .. kernel-doc:: drivers/gpu/drm/drm_panel.c
- :doc: drm panel
- .. kernel-doc:: include/drm/drm_panel.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_panel.c
- :export:
- .. kernel-doc:: drivers/gpu/drm/drm_panel_orientation_quirks.c
- :export:
- Panel Self Refresh Helper Reference
- ===================================
- .. kernel-doc:: drivers/gpu/drm/drm_self_refresh_helper.c
- :doc: overview
- .. kernel-doc:: drivers/gpu/drm/drm_self_refresh_helper.c
- :export:
- HDCP Helper Functions Reference
- ===============================
- .. kernel-doc:: drivers/gpu/drm/display/drm_hdcp_helper.c
- :export:
- Display Port Helper Functions Reference
- =======================================
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_helper.c
- :doc: dp helpers
- .. kernel-doc:: include/drm/display/drm_dp.h
- :internal:
- .. kernel-doc:: include/drm/display/drm_dp_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_helper.c
- :export:
- Display Port CEC Helper Functions Reference
- ===========================================
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_cec.c
- :doc: dp cec helpers
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_cec.c
- :export:
- Display Port Dual Mode Adaptor Helper Functions Reference
- =========================================================
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_dual_mode_helper.c
- :doc: dp dual mode helpers
- .. kernel-doc:: include/drm/display/drm_dp_dual_mode_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_dual_mode_helper.c
- :export:
- Display Port MST Helpers
- ========================
- Overview
- --------
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_mst_topology.c
- :doc: dp mst helper
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_mst_topology.c
- :doc: Branch device and port refcounting
- Functions Reference
- -------------------
- .. kernel-doc:: include/drm/display/drm_dp_mst_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_mst_topology.c
- :export:
- Topology Lifetime Internals
- ---------------------------
- These functions aren't exported to drivers, but are documented here to help make
- the MST topology helpers easier to understand
- .. kernel-doc:: drivers/gpu/drm/display/drm_dp_mst_topology.c
- :functions: drm_dp_mst_topology_try_get_mstb drm_dp_mst_topology_get_mstb
- drm_dp_mst_topology_put_mstb
- drm_dp_mst_topology_try_get_port drm_dp_mst_topology_get_port
- drm_dp_mst_topology_put_port
- drm_dp_mst_get_mstb_malloc drm_dp_mst_put_mstb_malloc
- MIPI DBI Helper Functions Reference
- ===================================
- .. kernel-doc:: drivers/gpu/drm/drm_mipi_dbi.c
- :doc: overview
- .. kernel-doc:: include/drm/drm_mipi_dbi.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_mipi_dbi.c
- :export:
- MIPI DSI Helper Functions Reference
- ===================================
- .. kernel-doc:: drivers/gpu/drm/drm_mipi_dsi.c
- :doc: dsi helpers
- .. kernel-doc:: include/drm/drm_mipi_dsi.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_mipi_dsi.c
- :export:
- Display Stream Compression Helper Functions Reference
- =====================================================
- .. kernel-doc:: drivers/gpu/drm/display/drm_dsc_helper.c
- :doc: dsc helpers
- .. kernel-doc:: include/drm/display/drm_dsc.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/display/drm_dsc_helper.c
- :export:
- Output Probing Helper Functions Reference
- =========================================
- .. kernel-doc:: drivers/gpu/drm/drm_probe_helper.c
- :doc: output probing helper overview
- .. kernel-doc:: drivers/gpu/drm/drm_probe_helper.c
- :export:
- EDID Helper Functions Reference
- ===============================
- .. kernel-doc:: include/drm/drm_edid.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_edid.c
- :export:
- SCDC Helper Functions Reference
- ===============================
- .. kernel-doc:: drivers/gpu/drm/display/drm_scdc_helper.c
- :doc: scdc helpers
- .. kernel-doc:: include/drm/display/drm_scdc_helper.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/display/drm_scdc_helper.c
- :export:
- HDMI Infoframes Helper Reference
- ================================
- Strictly speaking this is not a DRM helper library but generally useable
- by any driver interfacing with HDMI outputs like v4l or alsa drivers.
- But it nicely fits into the overall topic of mode setting helper
- libraries and hence is also included here.
- .. kernel-doc:: include/linux/hdmi.h
- :internal:
- .. kernel-doc:: drivers/video/hdmi.c
- :export:
- Rectangle Utilities Reference
- =============================
- .. kernel-doc:: include/drm/drm_rect.h
- :doc: rect utils
- .. kernel-doc:: include/drm/drm_rect.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_rect.c
- :export:
- Flip-work Helper Reference
- ==========================
- .. kernel-doc:: include/drm/drm_flip_work.h
- :doc: flip utils
- .. kernel-doc:: include/drm/drm_flip_work.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_flip_work.c
- :export:
- Auxiliary Modeset Helpers
- =========================
- .. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c
- :doc: aux kms helpers
- .. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c
- :export:
- OF/DT Helpers
- =============
- .. kernel-doc:: drivers/gpu/drm/drm_of.c
- :doc: overview
- .. kernel-doc:: drivers/gpu/drm/drm_of.c
- :export:
- Legacy Plane Helper Reference
- =============================
- .. kernel-doc:: drivers/gpu/drm/drm_plane_helper.c
- :doc: overview
- .. kernel-doc:: drivers/gpu/drm/drm_plane_helper.c
- :export:
- Legacy CRTC/Modeset Helper Functions Reference
- ==============================================
- .. kernel-doc:: drivers/gpu/drm/drm_crtc_helper.c
- :doc: overview
- .. kernel-doc:: drivers/gpu/drm/drm_crtc_helper.c
- :export:
- Privacy-screen class
- ====================
- .. kernel-doc:: drivers/gpu/drm/drm_privacy_screen.c
- :doc: overview
- .. kernel-doc:: include/drm/drm_privacy_screen_driver.h
- :internal:
- .. kernel-doc:: include/drm/drm_privacy_screen_machine.h
- :internal:
- .. kernel-doc:: drivers/gpu/drm/drm_privacy_screen.c
- :export:
|