1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>struct drm_connector</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-encoder.html" title="struct drm_encoder"><link rel="next" href="API-struct-drm-plane-state.html" title="struct drm_plane_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_connector</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-drm-encoder.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-plane-state.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-drm-connector"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct drm_connector &#8212; 
2     central DRM connector control structure
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct drm_connector {
5  struct drm_device * dev;
6  struct device * kdev;
7  struct device_attribute * attr;
8  struct list_head head;
9  struct drm_mode_object base;
10  char * name;
11  int connector_type;
12  int connector_type_id;
13  bool interlace_allowed;
14  bool doublescan_allowed;
15  bool stereo_allowed;
16  struct list_head modes;
17  enum drm_connector_status status;
18  struct list_head probed_modes;
19  struct drm_display_info display_info;
20  const struct drm_connector_funcs * funcs;
21  struct drm_property_blob * edid_blob_ptr;
22  struct drm_object_properties properties;
23  struct drm_property_blob * path_blob_ptr;
24  uint8_t polled;
25  int dpms;
26  const void * helper_private;
27  struct drm_cmdline_mode cmdline_mode;
28  enum drm_connector_force force;
29  bool override_edid;
30  uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
31  struct drm_encoder * encoder;
32  uint8_t eld[MAX_ELD_BYTES];
33  bool dvi_dual;
34  int max_tmds_clock;
35  bool latency_present[2];
36  int video_latency[2];
37  int audio_latency[2];
38  int null_edid_counter;
39  unsigned bad_edid_counter;
40  struct dentry * debugfs_entry;
41  struct drm_connector_state * state;
42  bool has_tile;
43  struct drm_tile_group * tile_group;
44  bool tile_is_single_monitor;
45  uint8_t num_h_tile;
46  uint8_t num_v_tile;
47  uint8_t tile_h_loc;
48  uint8_t tile_v_loc;
49  uint16_t tile_h_size;
50  uint16_t tile_v_size;
51};  </pre></div><div class="refsect1"><a name="idp1124648508"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">dev</span></dt><dd><p>
52   parent DRM device
53      </p></dd><dt><span class="term">kdev</span></dt><dd><p>
54   kernel device for sysfs attributes
55      </p></dd><dt><span class="term">attr</span></dt><dd><p>
56   sysfs attributes
57      </p></dd><dt><span class="term">head</span></dt><dd><p>
58   list management
59      </p></dd><dt><span class="term">base</span></dt><dd><p>
60   base KMS object
61      </p></dd><dt><span class="term">name</span></dt><dd><p>
62   connector name
63      </p></dd><dt><span class="term">connector_type</span></dt><dd><p>
64   one of the <code class="constant">DRM_MODE_CONNECTOR_</code>&lt;foo&gt; types from drm_mode.h
65      </p></dd><dt><span class="term">connector_type_id</span></dt><dd><p>
66   index into connector type enum
67      </p></dd><dt><span class="term">interlace_allowed</span></dt><dd><p>
68   can this connector handle interlaced modes?
69      </p></dd><dt><span class="term">doublescan_allowed</span></dt><dd><p>
70   can this connector handle doublescan?
71      </p></dd><dt><span class="term">stereo_allowed</span></dt><dd><p>
72   can this connector handle stereo modes?
73      </p></dd><dt><span class="term">modes</span></dt><dd><p>
74   modes available on this connector (from <code class="function">fill_modes</code> + user)
75      </p></dd><dt><span class="term">status</span></dt><dd><p>
76   one of the drm_connector_status enums (connected, not, or unknown)
77      </p></dd><dt><span class="term">probed_modes</span></dt><dd><p>
78   list of modes derived directly from the display
79      </p></dd><dt><span class="term">display_info</span></dt><dd><p>
80   information about attached display (e.g. from EDID)
81      </p></dd><dt><span class="term">funcs</span></dt><dd><p>
82   connector control functions
83      </p></dd><dt><span class="term">edid_blob_ptr</span></dt><dd><p>
84   DRM property containing EDID if present
85      </p></dd><dt><span class="term">properties</span></dt><dd><p>
86   property tracking for this connector
87      </p></dd><dt><span class="term">path_blob_ptr</span></dt><dd><p>
88   DRM blob property data for the DP MST path property
89      </p></dd><dt><span class="term">polled</span></dt><dd><p>
90   a <code class="constant">DRM_CONNECTOR_POLL_</code>&lt;foo&gt; value for core driven polling
91      </p></dd><dt><span class="term">dpms</span></dt><dd><p>
92   current dpms state
93      </p></dd><dt><span class="term">helper_private</span></dt><dd><p>
94   mid-layer private data
95      </p></dd><dt><span class="term">cmdline_mode</span></dt><dd><p>
96   mode line parsed from the kernel cmdline for this connector
97      </p></dd><dt><span class="term">force</span></dt><dd><p>
98   a <code class="constant">DRM_FORCE_</code>&lt;foo&gt; state for forced mode sets
99      </p></dd><dt><span class="term">override_edid</span></dt><dd><p>
100   has the EDID been overwritten through debugfs for testing?
101      </p></dd><dt><span class="term">encoder_ids[DRM_CONNECTOR_MAX_ENCODER]</span></dt><dd><p>
102   valid encoders for this connector
103      </p></dd><dt><span class="term">encoder</span></dt><dd><p>
104   encoder driving this connector, if any
105      </p></dd><dt><span class="term">eld[MAX_ELD_BYTES]</span></dt><dd><p>
106   EDID-like data, if present
107      </p></dd><dt><span class="term">dvi_dual</span></dt><dd><p>
108   dual link DVI, if found
109      </p></dd><dt><span class="term">max_tmds_clock</span></dt><dd><p>
110   max clock rate, if found
111      </p></dd><dt><span class="term">latency_present[2]</span></dt><dd><p>
112   AV delay info from ELD, if found
113      </p></dd><dt><span class="term">video_latency[2]</span></dt><dd><p>
114   video latency info from ELD, if found
115      </p></dd><dt><span class="term">audio_latency[2]</span></dt><dd><p>
116   audio latency info from ELD, if found
117      </p></dd><dt><span class="term">null_edid_counter</span></dt><dd><p>
118   track sinks that give us all zeros for the EDID
119      </p></dd><dt><span class="term">bad_edid_counter</span></dt><dd><p>
120   track sinks that give us an EDID with invalid checksum
121      </p></dd><dt><span class="term">debugfs_entry</span></dt><dd><p>
122   debugfs directory for this connector
123      </p></dd><dt><span class="term">state</span></dt><dd><p>
124   current atomic state for this connector
125      </p></dd><dt><span class="term">has_tile</span></dt><dd><p>
126   is this connector connected to a tiled monitor
127      </p></dd><dt><span class="term">tile_group</span></dt><dd><p>
128   tile group for the connected monitor
129      </p></dd><dt><span class="term">tile_is_single_monitor</span></dt><dd><p>
130   whether the tile is one monitor housing
131      </p></dd><dt><span class="term">num_h_tile</span></dt><dd><p>
132   number of horizontal tiles in the tile group
133      </p></dd><dt><span class="term">num_v_tile</span></dt><dd><p>
134   number of vertical tiles in the tile group
135      </p></dd><dt><span class="term">tile_h_loc</span></dt><dd><p>
136   horizontal location of this tile
137      </p></dd><dt><span class="term">tile_v_loc</span></dt><dd><p>
138   vertical location of this tile
139      </p></dd><dt><span class="term">tile_h_size</span></dt><dd><p>
140   horizontal size of this tile.
141      </p></dd><dt><span class="term">tile_v_size</span></dt><dd><p>
142   vertical size of this tile.
143      </p></dd></dl></div></div><div class="refsect1"><a name="idp1124683164"></a><h2>Description</h2><p>
144   Each connector may be connected to one or more CRTCs, or may be clonable by
145   another connector if they can share a CRTC.  Each connector also has a specific
146   position in the broader display (referred to as a 'screen' though it could
147   span multiple monitors).
148</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-encoder.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-plane-state.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct drm_encoder</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_plane_state</span></td></tr></table></div></body></html>
149