1============================= 2Mode Setting Helper Functions 3============================= 4 5The DRM subsystem aims for a strong separation between core code and helper 6libraries. Core code takes care of general setup and teardown and decoding 7userspace requests to kernel internal objects. Everything else is handled by a 8large set of helper libraries, which can be combined freely to pick and choose 9for each driver what fits, and avoid shared code where special behaviour is 10needed. 11 12This distinction between core code and helpers is especially strong in the 13modesetting code, where there's a shared userspace ABI for all drivers. This is 14in contrast to the render side, where pretty much everything (with very few 15exceptions) can be considered optional helper code. 16 17There are a few areas these helpers can grouped into: 18 19* Helpers to implement modesetting. The important ones here are the atomic 20 helpers. Old drivers still often use the legacy CRTC helpers. They both share 21 the same set of common helper vtables. For really simple drivers (anything 22 that would have been a great fit in the deprecated fbdev subsystem) there's 23 also the simple display pipe helpers. 24 25* There's a big pile of helpers for handling outputs. First the generic bridge 26 helpers for handling encoder and transcoder IP blocks. Second the panel helpers 27 for handling panel-related information and logic. Plus then a big set of 28 helpers for the various sink standards (DisplayPort, HDMI, MIPI DSI). Finally 29 there's also generic helpers for handling output probing, and for dealing with 30 EDIDs. 31 32* The last group of helpers concerns itself with the frontend side of a display 33 pipeline: Planes, handling rectangles for visibility checking and scissoring, 34 flip queues and assorted bits. 35 36Modeset Helper Reference for Common Vtables 37=========================================== 38 39.. kernel-doc:: include/drm/drm_modeset_helper_vtables.h 40 :doc: overview 41 42.. kernel-doc:: include/drm/drm_modeset_helper_vtables.h 43 :internal: 44 45.. _drm_atomic_helper: 46 47Atomic Modeset Helper Functions Reference 48========================================= 49 50Overview 51-------- 52 53.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c 54 :doc: overview 55 56Implementing Asynchronous Atomic Commit 57--------------------------------------- 58 59.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c 60 :doc: implementing nonblocking commit 61 62Atomic State Reset and Initialization 63------------------------------------- 64 65.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c 66 :doc: atomic state reset and initialization 67 68Helper Functions Reference 69-------------------------- 70 71.. kernel-doc:: include/drm/drm_atomic_helper.h 72 :internal: 73 74.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c 75 :export: 76 77Simple KMS Helper Reference 78=========================== 79 80.. kernel-doc:: drivers/gpu/drm/drm_simple_kms_helper.c 81 :doc: overview 82 83.. kernel-doc:: include/drm/drm_simple_kms_helper.h 84 :internal: 85 86.. kernel-doc:: drivers/gpu/drm/drm_simple_kms_helper.c 87 :export: 88 89fbdev Helper Functions Reference 90================================ 91 92.. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c 93 :doc: fbdev helpers 94 95.. kernel-doc:: include/drm/drm_fb_helper.h 96 :internal: 97 98.. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c 99 :export: 100 101Framebuffer CMA Helper Functions Reference 102========================================== 103 104.. kernel-doc:: drivers/gpu/drm/drm_fb_cma_helper.c 105 :doc: framebuffer cma helper functions 106 107.. kernel-doc:: drivers/gpu/drm/drm_fb_cma_helper.c 108 :export: 109 110.. _drm_bridges: 111 112Bridges 113======= 114 115Overview 116-------- 117 118.. kernel-doc:: drivers/gpu/drm/drm_bridge.c 119 :doc: overview 120 121Default bridge callback sequence 122-------------------------------- 123 124.. kernel-doc:: drivers/gpu/drm/drm_bridge.c 125 :doc: bridge callbacks 126 127 128Bridge Helper Reference 129------------------------- 130 131.. kernel-doc:: include/drm/drm_bridge.h 132 :internal: 133 134.. kernel-doc:: drivers/gpu/drm/drm_bridge.c 135 :export: 136 137Panel-Bridge Helper Reference 138----------------------------- 139 140.. kernel-doc:: drivers/gpu/drm/bridge/panel.c 141 :export: 142 143.. _drm_panel_helper: 144 145Panel Helper Reference 146====================== 147 148.. kernel-doc:: drivers/gpu/drm/drm_panel.c 149 :doc: drm panel 150 151.. kernel-doc:: include/drm/drm_panel.h 152 :internal: 153 154.. kernel-doc:: drivers/gpu/drm/drm_panel.c 155 :export: 156 157.. kernel-doc:: drivers/gpu/drm/drm_panel_orientation_quirks.c 158 :export: 159 160Display Port Helper Functions Reference 161======================================= 162 163.. kernel-doc:: drivers/gpu/drm/drm_dp_helper.c 164 :doc: dp helpers 165 166.. kernel-doc:: include/drm/drm_dp_helper.h 167 :internal: 168 169.. kernel-doc:: drivers/gpu/drm/drm_dp_helper.c 170 :export: 171 172Display Port Dual Mode Adaptor Helper Functions Reference 173========================================================= 174 175.. kernel-doc:: drivers/gpu/drm/drm_dp_dual_mode_helper.c 176 :doc: dp dual mode helpers 177 178.. kernel-doc:: include/drm/drm_dp_dual_mode_helper.h 179 :internal: 180 181.. kernel-doc:: drivers/gpu/drm/drm_dp_dual_mode_helper.c 182 :export: 183 184Display Port MST Helper Functions Reference 185=========================================== 186 187.. kernel-doc:: drivers/gpu/drm/drm_dp_mst_topology.c 188 :doc: dp mst helper 189 190.. kernel-doc:: include/drm/drm_dp_mst_helper.h 191 :internal: 192 193.. kernel-doc:: drivers/gpu/drm/drm_dp_mst_topology.c 194 :export: 195 196MIPI DSI Helper Functions Reference 197=================================== 198 199.. kernel-doc:: drivers/gpu/drm/drm_mipi_dsi.c 200 :doc: dsi helpers 201 202.. kernel-doc:: include/drm/drm_mipi_dsi.h 203 :internal: 204 205.. kernel-doc:: drivers/gpu/drm/drm_mipi_dsi.c 206 :export: 207 208Output Probing Helper Functions Reference 209========================================= 210 211.. kernel-doc:: drivers/gpu/drm/drm_probe_helper.c 212 :doc: output probing helper overview 213 214.. kernel-doc:: drivers/gpu/drm/drm_probe_helper.c 215 :export: 216 217EDID Helper Functions Reference 218=============================== 219 220.. kernel-doc:: include/drm/drm_edid.h 221 :internal: 222 223.. kernel-doc:: drivers/gpu/drm/drm_edid.c 224 :export: 225 226SCDC Helper Functions Reference 227=============================== 228 229.. kernel-doc:: drivers/gpu/drm/drm_scdc_helper.c 230 :doc: scdc helpers 231 232.. kernel-doc:: include/drm/drm_scdc_helper.h 233 :internal: 234 235.. kernel-doc:: drivers/gpu/drm/drm_scdc_helper.c 236 :export: 237 238Rectangle Utilities Reference 239============================= 240 241.. kernel-doc:: include/drm/drm_rect.h 242 :doc: rect utils 243 244.. kernel-doc:: include/drm/drm_rect.h 245 :internal: 246 247.. kernel-doc:: drivers/gpu/drm/drm_rect.c 248 :export: 249 250HDMI Infoframes Helper Reference 251================================ 252 253Strictly speaking this is not a DRM helper library but generally useable 254by any driver interfacing with HDMI outputs like v4l or alsa drivers. 255But it nicely fits into the overall topic of mode setting helper 256libraries and hence is also included here. 257 258.. kernel-doc:: include/linux/hdmi.h 259 :internal: 260 261.. kernel-doc:: drivers/video/hdmi.c 262 :export: 263 264Flip-work Helper Reference 265========================== 266 267.. kernel-doc:: include/drm/drm_flip_work.h 268 :doc: flip utils 269 270.. kernel-doc:: include/drm/drm_flip_work.h 271 :internal: 272 273.. kernel-doc:: drivers/gpu/drm/drm_flip_work.c 274 :export: 275 276Auxiliary Modeset Helpers 277========================= 278 279.. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c 280 :doc: aux kms helpers 281 282.. kernel-doc:: drivers/gpu/drm/drm_modeset_helper.c 283 :export: 284 285Framebuffer GEM Helper Reference 286================================ 287 288.. kernel-doc:: drivers/gpu/drm/drm_gem_framebuffer_helper.c 289 :doc: overview 290 291.. kernel-doc:: drivers/gpu/drm/drm_gem_framebuffer_helper.c 292 :export: 293 294Legacy Plane Helper Reference 295============================= 296 297.. kernel-doc:: drivers/gpu/drm/drm_plane_helper.c 298 :doc: overview 299 300.. kernel-doc:: drivers/gpu/drm/drm_plane_helper.c 301 :export: 302 303Legacy CRTC/Modeset Helper Functions Reference 304============================================== 305 306.. kernel-doc:: drivers/gpu/drm/drm_crtc_helper.c 307 :doc: overview 308 309.. kernel-doc:: drivers/gpu/drm/drm_crtc_helper.c 310 :export: 311