Lines Matching full:connector
55 DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */
61 * This enum is used to track the connector status. There are no separate
66 * @connector_status_connected: The connector is definitely connected to
71 * @connector_status_disconnected: The connector isn't connected to a
74 * nothing there. It is driver-dependent whether a connector with this
79 * @connector_status_unknown: The connector's status could not be
81 * flicker (like load-detection when the connector is in use), or when a
83 * free CRTC). It should be possible to light up the connector with one
86 * there's not connector with @connector_status_connected.
95 * This enum is used to track the status of initializing a connector and
101 * @DRM_CONNECTOR_INITIALIZING: The connector has just been created,
103 * additional restrictions to how the state of this connector may be
109 * @DRM_CONNECTOR_REGISTERED: The connector has been fully initialized
112 * state of this connector may be modified.
117 * @DRM_CONNECTOR_UNREGISTERED: The connector has either been exposed
119 * userspace, or the connector was unregistered before it had a chance
121 * @DRM_CONNECTOR_INITIALIZING state). When a connector is
125 * - An unregistered connector may only have its DPMS changed from
130 * disabling a CRTC on an unregistered connector is OK, but enabling
132 * - Removing a CRTC from an unregistered connector is OK, but new
133 * CRTCs may never be assigned to an unregistered connector.
152 * connector.
155 * "TV mode" connector property.
335 * enum drm_link_status - connector's link_status property value
337 * This enum is used as the connector's link status property value.
359 * orientation" connector prop will not be
705 * @panel_orientation: Read only connector property for built-in panels,
861 * struct drm_connector_tv_margins - TV connector related margins
889 * struct drm_tv_connector_state - TV connector related states
936 * @broadcast_rgb: Connector property to pass the
993 * struct drm_connector_state - mutable connector state
996 /** @connector: backpointer to the connector */
997 struct drm_connector *connector; member
1000 * @crtc: CRTC to connect connector to, NULL if disabled.
1026 * @link_status: Connector link_status to keep track of whether link is
1041 /** @tv: TV connector state */
1047 * This tracks whether a connector is aware of the self refresh state.
1048 * It should be set to true for those connector implementations which
1059 * @picture_aspect_ratio: Connector property to control the
1068 * @content_type: Connector property to control the
1076 * @hdcp_content_type: Connector property to pass the type of
1082 * @scaling_mode: Connector property to control the
1088 * @content_protection: Connector property to request content
1094 * @colorspace: State variable for Connector property to request
1103 * Holds the framebuffer and out-fence for a writeback connector. As
1114 * @max_requested_bpc: Connector property to limit the maximum bit
1120 * @max_bpc: Connector max_bpc based on the requested max_bpc property
1121 * and the connector bpc limitations obtained from edid.
1126 * @privacy_screen_sw_state: See :ref:`Standard Connector
1163 (*tmds_char_rate_valid)(const struct drm_connector *connector,
1181 int (*clear_infoframe)(struct drm_connector *connector,
1198 int (*write_infoframe)(struct drm_connector *connector,
1214 * Legacy entry point to set the per-connector DPMS state. Legacy DPMS
1215 * is exposed as a standard property on the connector, but diverted to
1217 * implement the 4 level DPMS support on the connector any more, but
1227 int (*dpms)(struct drm_connector *connector, int mode);
1232 * Reset connector hardware and software state to off. This function isn't
1239 void (*reset)(struct drm_connector *connector);
1244 * Check to see if anything is attached to the connector. The parameter
1246 * connector due to a user request. force can be used by the driver to
1249 * This callback is optional, if not implemented the connector will be
1256 * core entry point to probe connector state is @fill_modes.
1264 * state the connector is in. Drivers that need the underlying
1270 * drm_connector_status indicating the connector's status.
1272 enum drm_connector_status (*detect)(struct drm_connector *connector,
1279 * connector is forced to a certain state by userspace, either through
1287 * core entry point to probe connector state is @fill_modes.
1289 void (*force)(struct drm_connector *connector);
1304 * received for this output connector->edid must be NULL.
1314 int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
1320 * connector.
1330 int (*set_property)(struct drm_connector *connector, struct drm_property *property,
1337 * interfaces attached to the connector, light backlight control, i2c,
1340 * core drm connector interfaces. Everything added from this callback
1349 int (*late_register)(struct drm_connector *connector);
1355 * userspace interfaces attached to the connector from
1362 void (*early_unregister)(struct drm_connector *connector);
1367 * Clean up connector resources. This is called at driver unload time
1369 * when a connector is being hot-unplugged for drivers that support
1370 * connector hotplugging (e.g. DisplayPort MST).
1372 void (*destroy)(struct drm_connector *connector);
1377 * Duplicate the current atomic state for this connector and return it.
1405 struct drm_connector_state *(*atomic_duplicate_state)(struct drm_connector *connector);
1415 void (*atomic_destroy_state)(struct drm_connector *connector,
1455 * asks for properties attached to this connector). No other validation
1460 int (*atomic_set_property)(struct drm_connector *connector,
1481 * properties attached to this connector).
1483 int (*atomic_get_property)(struct drm_connector *connector,
1503 * This will get called when a hotplug-event for a drm-connector
1506 void (*oob_hotplug_event)(struct drm_connector *connector,
1512 * Allows connectors to create connector-specific debugfs files.
1514 void (*debugfs_init)(struct drm_connector *connector, struct dentry *root);
1520 * Each connector can have an initial mode with additional options
1622 * Ignore the hotplug state of the connector, and force its
1640 * drm-connector "panel orientation" property override value,
1664 * struct drm_connector_hdmi - DRM Connector HDMI-related structure
1686 * @funcs: HDMI connector Control Functions
1691 * @infoframes: Current Infoframes output by the connector
1709 * struct drm_connector - central DRM connector control structure
1711 * Each connector may be connected to one or more CRTCs, or may be clonable by
1712 * another connector if they can share a CRTC. Each connector also has a specific
1726 * Drivers can set this to associate a fwnode with a connector, drivers
1745 * Connector entry in the global connector-list, used by
1757 * @mutex: Lock for general connector state, but currently only protects
1758 * @registered. Most of the connector state is still protected by
1764 * @index: Compacted connector index, which matches the position inside
1767 * connector.
1776 /** @connector_type_id: index into connector type enum */
1780 * Can this connector handle interlaced modes? Only used by
1786 * Can this connector handle doublescan? Only used by
1792 * Can this connector handle stereo modes? Only used by
1798 * @ycbcr_420_allowed : This bool indicates if this connector is
1806 * @registration_state: Is this connector initializing, exposed
1815 * Modes available on this connector (from fill_modes() + user).
1846 /** @funcs: connector control functions */
1860 /** @properties: property tracking for this connector */
1871 * query hardware support for variable refresh rate on a connector.
1872 * connector. Drivers can add the property to a connector by
1881 * @colorspace_property: Connector property to set the suitable
1895 * @max_bpc: Maximum bits per color channel the connector supports.
1900 * @max_bpc_property: Default connector property for the max bpc to be
1901 * driven out of the connector.
1905 /** @privacy_screen: drm_privacy_screen for this connector, or NULL. */
1913 * connector to control the integrated privacy screen.
1919 * connector to report the actual integrated privacy screen state.
1924 * @broadcast_rgb_property: Connector property to set the
1936 * Connector polling mode, a combination of
1939 * The connector generates hotplug events and doesn't need to be
1944 * Periodically poll the connector for connection.
1947 * Periodically poll the connector for disconnection, without
1948 * causing flickering even when the connector is in use. DACs should
1967 /** @cmdline_mode: mode line parsed from the kernel cmdline for this connector */
1985 /** @epoch_counter: used to detect any other changes in connector, besides status */
1990 * connector, drm_encoder_index() determines the index into the bitfield
1996 * @encoder: Currently bound encoder driving this connector, if any.
2021 * A connector usually has its associated ddc adapter. If a driver uses
2022 * this field, then an appropriate symbolic link is created in connector
2052 /** @debugfs_entry: debugfs directory for this connector */
2058 * Current atomic state for this connector.
2061 * nonblocking atomic commits access the current connector state without
2088 /** @has_tile: is this connector connected to a tiled monitor */
2109 * connector from any context, in conjunction with
2126 struct drm_connector *connector,
2130 struct drm_connector *connector,
2135 struct drm_connector *connector,
2140 struct drm_connector *connector,
2148 void drm_connector_attach_edid_property(struct drm_connector *connector);
2149 int drm_connector_register(struct drm_connector *connector);
2150 void drm_connector_unregister(struct drm_connector *connector);
2151 int drm_connector_attach_encoder(struct drm_connector *connector,
2154 void drm_connector_cleanup(struct drm_connector *connector);
2156 static inline unsigned int drm_connector_index(const struct drm_connector *connector) in drm_connector_index() argument
2158 return connector->index; in drm_connector_index()
2161 static inline u32 drm_connector_mask(const struct drm_connector *connector) in drm_connector_mask() argument
2163 return 1 << connector->index; in drm_connector_mask()
2167 * drm_connector_lookup - lookup connector object
2170 * @id: connector object id
2172 * This function looks up the connector object specified by id
2185 * drm_connector_get - acquire a connector reference
2186 * @connector: DRM connector
2188 * This function increments the connector's refcount.
2190 static inline void drm_connector_get(struct drm_connector *connector) in drm_connector_get() argument
2192 drm_mode_object_get(&connector->base); in drm_connector_get()
2196 * drm_connector_put - release a connector reference
2197 * @connector: DRM connector
2199 * This function decrements the connector's reference count and frees the
2202 static inline void drm_connector_put(struct drm_connector *connector) in drm_connector_put() argument
2204 drm_mode_object_put(&connector->base); in drm_connector_put()
2208 * drm_connector_is_unregistered - has the connector been unregistered from
2210 * @connector: DRM connector
2212 * Checks whether or not @connector has been unregistered from userspace.
2215 * True if the connector was unregistered, false if the connector is
2219 drm_connector_is_unregistered(struct drm_connector *connector) in drm_connector_is_unregistered() argument
2221 return READ_ONCE(connector->registration_state) == in drm_connector_is_unregistered()
2243 void drm_connector_attach_dp_subconnector_property(struct drm_connector *connector);
2254 int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
2257 struct drm_connector *connector);
2258 int drm_connector_attach_broadcast_rgb_property(struct drm_connector *connector);
2259 int drm_connector_attach_colorspace_property(struct drm_connector *connector);
2260 int drm_connector_attach_hdr_output_metadata_property(struct drm_connector *connector);
2264 int drm_mode_create_hdmi_colorspace_property(struct drm_connector *connector,
2266 int drm_mode_create_dp_colorspace_property(struct drm_connector *connector,
2271 int drm_connector_set_path_property(struct drm_connector *connector,
2273 int drm_connector_set_tile_property(struct drm_connector *connector);
2274 int drm_connector_update_edid_property(struct drm_connector *connector,
2276 void drm_connector_set_link_status_property(struct drm_connector *connector,
2279 struct drm_connector *connector, bool capable);
2281 struct drm_connector *connector,
2284 struct drm_connector *connector,
2288 struct drm_connector *connector,
2290 int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
2295 struct drm_connector *connector, struct drm_privacy_screen *priv);
2333 * drm_connector_list_iter_end() call. If you want to use the connector later,
2348 bool drm_connector_has_possible_encoder(struct drm_connector *connector,
2354 * @connector: &struct drm_connector pointer used as cursor
2357 * Note that @connector is only valid within the list body, if you want to use
2358 * @connector after calling drm_connector_list_iter_end() then you need to grab
2361 #define drm_for_each_connector_iter(connector, iter) \ argument
2362 while ((connector = drm_connector_list_iter_next(iter)))
2365 * drm_connector_for_each_possible_encoder - iterate connector's possible encoders
2366 * @connector: &struct drm_connector pointer
2369 #define drm_connector_for_each_possible_encoder(connector, encoder) \ argument
2370 drm_for_each_encoder_mask(encoder, (connector)->dev, \
2371 (connector)->possible_encoders)