struct drm_connector — central DRM connector control structure
struct drm_connector { struct drm_device * dev; struct device * kdev; struct device_attribute * attr; struct list_head head; struct drm_mode_object base; char * name; int connector_type; int connector_type_id; bool interlace_allowed; bool doublescan_allowed; bool stereo_allowed; struct list_head modes; enum drm_connector_status status; struct list_head probed_modes; struct drm_display_info display_info; const struct drm_connector_funcs * funcs; struct drm_property_blob * edid_blob_ptr; struct drm_object_properties properties; struct drm_property_blob * path_blob_ptr; uint8_t polled; int dpms; const void * helper_private; struct drm_cmdline_mode cmdline_mode; enum drm_connector_force force; bool override_edid; uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; struct drm_encoder * encoder; uint8_t eld[MAX_ELD_BYTES]; bool dvi_dual; int max_tmds_clock; bool latency_present[2]; int video_latency[2]; int audio_latency[2]; int null_edid_counter; unsigned bad_edid_counter; struct dentry * debugfs_entry; struct drm_connector_state * state; bool has_tile; struct drm_tile_group * tile_group; bool tile_is_single_monitor; uint8_t num_h_tile; uint8_t num_v_tile; uint8_t tile_h_loc; uint8_t tile_v_loc; uint16_t tile_h_size; uint16_t tile_v_size; };
parent DRM device
kernel device for sysfs attributes
sysfs attributes
list management
base KMS object
connector name
one of the DRM_MODE_CONNECTOR_
<foo> types from drm_mode.h
index into connector type enum
can this connector handle interlaced modes?
can this connector handle doublescan?
can this connector handle stereo modes?
modes available on this connector (from fill_modes
+ user)
one of the drm_connector_status enums (connected, not, or unknown)
list of modes derived directly from the display
information about attached display (e.g. from EDID)
connector control functions
DRM property containing EDID if present
property tracking for this connector
DRM blob property data for the DP MST path property
a DRM_CONNECTOR_POLL_
<foo> value for core driven polling
current dpms state
mid-layer private data
mode line parsed from the kernel cmdline for this connector
a DRM_FORCE_
<foo> state for forced mode sets
has the EDID been overwritten through debugfs for testing?
valid encoders for this connector
encoder driving this connector, if any
EDID-like data, if present
dual link DVI, if found
max clock rate, if found
AV delay info from ELD, if found
video latency info from ELD, if found
audio latency info from ELD, if found
track sinks that give us all zeros for the EDID
track sinks that give us an EDID with invalid checksum
debugfs directory for this connector
current atomic state for this connector
is this connector connected to a tiled monitor
tile group for the connected monitor
whether the tile is one monitor housing
number of horizontal tiles in the tile group
number of vertical tiles in the tile group
horizontal location of this tile
vertical location of this tile
horizontal size of this tile.
vertical size of this tile.