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>&#160;</td><th width="60%" align="center">KMS Data Structures</th><td width="20%" align="right">&#160;<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 &#8212; 
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>&#160;</td><td width="20%" align="center"><a accesskey="u" href="drm-kms-init.html#idp1124538092">Up</a></td><td width="40%" align="right">&#160;<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>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">struct drm_connector_state</span></td></tr></table></div></body></html>
87