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> </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 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><foo> 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><foo> 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><foo> 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> </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-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> 149