1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struct drm_connector</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux GPU Driver Developer's Guide"><link rel="up" href="drm-kms-init.html#id-1.3.4.8.10" 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> </td><th width="60%" align="center">KMS Data Structures</th><td width="20%" align="right"> <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 — 
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  bool edid_corrupt;
41  struct dentry * debugfs_entry;
42  struct drm_connector_state * state;
43  bool has_tile;
44  struct drm_tile_group * tile_group;
45  bool tile_is_single_monitor;
46  uint8_t num_h_tile;
47  uint8_t num_v_tile;
48  uint8_t tile_h_loc;
49  uint8_t tile_v_loc;
50  uint16_t tile_h_size;
51  uint16_t tile_v_size;
52};  </pre></div><div class="refsect1"><a name="id-1.3.4.8.10.9.5"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">dev</span></dt><dd><p>
53   parent DRM device
54      </p></dd><dt><span class="term">kdev</span></dt><dd><p>
55   kernel device for sysfs attributes
56      </p></dd><dt><span class="term">attr</span></dt><dd><p>
57   sysfs attributes
58      </p></dd><dt><span class="term">head</span></dt><dd><p>
59   list management
60      </p></dd><dt><span class="term">base</span></dt><dd><p>
61   base KMS object
62      </p></dd><dt><span class="term">name</span></dt><dd><p>
63   connector name
64      </p></dd><dt><span class="term">connector_type</span></dt><dd><p>
65   one of the <code class="constant">DRM_MODE_CONNECTOR_</code>&lt;foo&gt; types from drm_mode.h
66      </p></dd><dt><span class="term">connector_type_id</span></dt><dd><p>
67   index into connector type enum
68      </p></dd><dt><span class="term">interlace_allowed</span></dt><dd><p>
69   can this connector handle interlaced modes?
70      </p></dd><dt><span class="term">doublescan_allowed</span></dt><dd><p>
71   can this connector handle doublescan?
72      </p></dd><dt><span class="term">stereo_allowed</span></dt><dd><p>
73   can this connector handle stereo modes?
74      </p></dd><dt><span class="term">modes</span></dt><dd><p>
75   modes available on this connector (from <code class="function">fill_modes</code> + user)
76      </p></dd><dt><span class="term">status</span></dt><dd><p>
77   one of the drm_connector_status enums (connected, not, or unknown)
78      </p></dd><dt><span class="term">probed_modes</span></dt><dd><p>
79   list of modes derived directly from the display
80      </p></dd><dt><span class="term">display_info</span></dt><dd><p>
81   information about attached display (e.g. from EDID)
82      </p></dd><dt><span class="term">funcs</span></dt><dd><p>
83   connector control functions
84      </p></dd><dt><span class="term">edid_blob_ptr</span></dt><dd><p>
85   DRM property containing EDID if present
86      </p></dd><dt><span class="term">properties</span></dt><dd><p>
87   property tracking for this connector
88      </p></dd><dt><span class="term">path_blob_ptr</span></dt><dd><p>
89   DRM blob property data for the DP MST path property
90      </p></dd><dt><span class="term">polled</span></dt><dd><p>
91   a <code class="constant">DRM_CONNECTOR_POLL_</code>&lt;foo&gt; value for core driven polling
92      </p></dd><dt><span class="term">dpms</span></dt><dd><p>
93   current dpms state
94      </p></dd><dt><span class="term">helper_private</span></dt><dd><p>
95   mid-layer private data
96      </p></dd><dt><span class="term">cmdline_mode</span></dt><dd><p>
97   mode line parsed from the kernel cmdline for this connector
98      </p></dd><dt><span class="term">force</span></dt><dd><p>
99   a <code class="constant">DRM_FORCE_</code>&lt;foo&gt; state for forced mode sets
100      </p></dd><dt><span class="term">override_edid</span></dt><dd><p>
101   has the EDID been overwritten through debugfs for testing?
102      </p></dd><dt><span class="term">encoder_ids[DRM_CONNECTOR_MAX_ENCODER]</span></dt><dd><p>
103   valid encoders for this connector
104      </p></dd><dt><span class="term">encoder</span></dt><dd><p>
105   encoder driving this connector, if any
106      </p></dd><dt><span class="term">eld[MAX_ELD_BYTES]</span></dt><dd><p>
107   EDID-like data, if present
108      </p></dd><dt><span class="term">dvi_dual</span></dt><dd><p>
109   dual link DVI, if found
110      </p></dd><dt><span class="term">max_tmds_clock</span></dt><dd><p>
111   max clock rate, if found
112      </p></dd><dt><span class="term">latency_present[2]</span></dt><dd><p>
113   AV delay info from ELD, if found
114      </p></dd><dt><span class="term">video_latency[2]</span></dt><dd><p>
115   video latency info from ELD, if found
116      </p></dd><dt><span class="term">audio_latency[2]</span></dt><dd><p>
117   audio latency info from ELD, if found
118      </p></dd><dt><span class="term">null_edid_counter</span></dt><dd><p>
119   track sinks that give us all zeros for the EDID
120      </p></dd><dt><span class="term">bad_edid_counter</span></dt><dd><p>
121   track sinks that give us an EDID with invalid checksum
122      </p></dd><dt><span class="term">edid_corrupt</span></dt><dd><p>
123   indicates whether the last read EDID was corrupt
124      </p></dd><dt><span class="term">debugfs_entry</span></dt><dd><p>
125   debugfs directory for this connector
126      </p></dd><dt><span class="term">state</span></dt><dd><p>
127   current atomic state for this connector
128      </p></dd><dt><span class="term">has_tile</span></dt><dd><p>
129   is this connector connected to a tiled monitor
130      </p></dd><dt><span class="term">tile_group</span></dt><dd><p>
131   tile group for the connected monitor
132      </p></dd><dt><span class="term">tile_is_single_monitor</span></dt><dd><p>
133   whether the tile is one monitor housing
134      </p></dd><dt><span class="term">num_h_tile</span></dt><dd><p>
135   number of horizontal tiles in the tile group
136      </p></dd><dt><span class="term">num_v_tile</span></dt><dd><p>
137   number of vertical tiles in the tile group
138      </p></dd><dt><span class="term">tile_h_loc</span></dt><dd><p>
139   horizontal location of this tile
140      </p></dd><dt><span class="term">tile_v_loc</span></dt><dd><p>
141   vertical location of this tile
142      </p></dd><dt><span class="term">tile_h_size</span></dt><dd><p>
143   horizontal size of this tile.
144      </p></dd><dt><span class="term">tile_v_size</span></dt><dd><p>
145   vertical size of this tile.
146      </p></dd></dl></div></div><div class="refsect1"><a name="id-1.3.4.8.10.9.6"></a><h2>Description</h2><p>
147   Each connector may be connected to one or more CRTCs, or may be clonable by
148   another connector if they can share a CRTC.  Each connector also has a specific
149   position in the broader display (referred to as a 'screen' though it could
150   span multiple monitors).
151</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> </td><td width="20%" align="center"><a accesskey="u" href="drm-kms-init.html#id-1.3.4.8.10">Up</a></td><td width="40%" align="right"> <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> </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_plane_state</span></td></tr></table></div></body></html>
152