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