1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>struct drm_crtc</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux DRM Developer's Guide"><link rel="up" href="drm-kms-init.html#idp1124538092" title="KMS Data Structures"><link rel="prev" href="API-struct-drm-crtc-funcs.html" title="struct drm_crtc_funcs"><link rel="next" href="API-struct-drm-connector-state.html" title="struct drm_connector_state"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct drm_crtc</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-drm-crtc-funcs.html">Prev</a> </td><th width="60%" align="center">KMS Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="API-struct-drm-connector-state.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-drm-crtc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct drm_crtc — 2 central CRTC control structure 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting"> 4struct drm_crtc { 5 struct drm_device * dev; 6 struct device_node * port; 7 struct list_head head; 8 struct drm_modeset_lock mutex; 9 struct drm_mode_object base; 10 struct drm_plane * primary; 11 struct drm_plane * cursor; 12 int cursor_x; 13 int cursor_y; 14 bool enabled; 15 struct drm_display_mode mode; 16 struct drm_display_mode hwmode; 17 bool invert_dimensions; 18 int x; 19 int y; 20 const struct drm_crtc_funcs * funcs; 21 uint32_t gamma_size; 22 uint16_t * gamma_store; 23 int framedur_ns; 24 int linedur_ns; 25 int pixeldur_ns; 26 const void * helper_private; 27 struct drm_object_properties properties; 28 struct drm_crtc_state * state; 29 struct drm_modeset_acquire_ctx * acquire_ctx; 30}; </pre></div><div class="refsect1"><a name="idp1124578820"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">dev</span></dt><dd><p> 31 parent DRM device 32 </p></dd><dt><span class="term">port</span></dt><dd><p> 33 OF node used by <code class="function">drm_of_find_possible_crtcs</code> 34 </p></dd><dt><span class="term">head</span></dt><dd><p> 35 list management 36 </p></dd><dt><span class="term">mutex</span></dt><dd><p> 37 per-CRTC locking 38 </p></dd><dt><span class="term">base</span></dt><dd><p> 39 base KMS object for ID tracking etc. 40 </p></dd><dt><span class="term">primary</span></dt><dd><p> 41 primary plane for this CRTC 42 </p></dd><dt><span class="term">cursor</span></dt><dd><p> 43 cursor plane for this CRTC 44 </p></dd><dt><span class="term">cursor_x</span></dt><dd><p> 45 current x position of the cursor, used for universal cursor planes 46 </p></dd><dt><span class="term">cursor_y</span></dt><dd><p> 47 current y position of the cursor, used for universal cursor planes 48 </p></dd><dt><span class="term">enabled</span></dt><dd><p> 49 is this CRTC enabled? 50 </p></dd><dt><span class="term">mode</span></dt><dd><p> 51 current mode timings 52 </p></dd><dt><span class="term">hwmode</span></dt><dd><p> 53 mode timings as programmed to hw regs 54 </p></dd><dt><span class="term">invert_dimensions</span></dt><dd><p> 55 for purposes of error checking crtc vs fb sizes, 56 invert the width/height of the crtc. This is used if the driver 57 is performing 90 or 270 degree rotated scanout 58 </p></dd><dt><span class="term">x</span></dt><dd><p> 59 x position on screen 60 </p></dd><dt><span class="term">y</span></dt><dd><p> 61 y position on screen 62 </p></dd><dt><span class="term">funcs</span></dt><dd><p> 63 CRTC control functions 64 </p></dd><dt><span class="term">gamma_size</span></dt><dd><p> 65 size of gamma ramp 66 </p></dd><dt><span class="term">gamma_store</span></dt><dd><p> 67 gamma ramp values 68 </p></dd><dt><span class="term">framedur_ns</span></dt><dd><p> 69 precise frame timing 70 </p></dd><dt><span class="term">linedur_ns</span></dt><dd><p> 71 precise line timing 72 </p></dd><dt><span class="term">pixeldur_ns</span></dt><dd><p> 73 precise pixel timing 74 </p></dd><dt><span class="term">helper_private</span></dt><dd><p> 75 mid-layer private data 76 </p></dd><dt><span class="term">properties</span></dt><dd><p> 77 property tracking for this CRTC 78 </p></dd><dt><span class="term">state</span></dt><dd><p> 79 current atomic state for this CRTC 80 </p></dd><dt><span class="term">acquire_ctx</span></dt><dd><p> 81 per-CRTC implicit acquire context used by atomic drivers for 82 legacy ioctls 83 </p></dd></dl></div></div><div class="refsect1"><a name="idp1124597484"></a><h2>Description</h2><p> 84 Each CRTC may have one or more connectors associated with it. This structure 85 allows the CRTC to be controlled. 86</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-drm-crtc-funcs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="drm-kms-init.html#idp1124538092">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-struct-drm-connector-state.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct drm_crtc_funcs</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">struct drm_connector_state</span></td></tr></table></div></body></html> 87