Lines Matching +full:dp +full:- +full:connector

54 	DRM_FORCE_ON_DIGITAL, /* for DVI-I use digital connector */
58 * enum drm_connector_status - status for a &drm_connector
60 * This enum is used to track the connector status. There are no separate
65 * @connector_status_connected: The connector is definitely connected to
70 * @connector_status_disconnected: The connector isn't connected to a
71 * sink device which can be autodetect. For digital outputs like DP or
73 * nothing there. It is driver-dependent whether a connector with this
78 * @connector_status_unknown: The connector's status could not be
80 * flicker (like load-detection when the connector is in use), or when a
81 * hardware resource isn't available (like when load-detection needs a
82 * free CRTC). It should be possible to light up the connector with one
85 * there's not connector with @connector_status_connected.
91 * enum drm_connector_registration_state - userspace registration status for
94 * This enum is used to track the status of initializing a connector and
100 * @DRM_CONNECTOR_INITIALIZING: The connector has just been created,
102 * additional restrictions to how the state of this connector may be
108 * @DRM_CONNECTOR_REGISTERED: The connector has been fully initialized
111 * state of this connector may be modified.
116 * @DRM_CONNECTOR_UNREGISTERED: The connector has either been exposed
118 * userspace, or the connector was unregistered before it had a chance
120 * @DRM_CONNECTOR_INITIALIZING state). When a connector is
124 * - An unregistered connector may only have its DPMS changed from
125 * On->Off. Once DPMS is changed to Off, it may not be switched back
127 * - Modesets are not allowed on unregistered connectors, unless they
129 * disabling a CRTC on an unregistered connector is OK, but enabling
131 * - Removing a CRTC from an unregistered connector is OK, but new
132 * CRTCs may never be assigned to an unregistered connector.
148 * enum drm_connector_tv_mode - Analog TV output mode
151 * connector.
154 * "TV mode" connector property.
158 * @DRM_MODE_TV_MODE_NTSC: CCIR System M (aka 525-lines)
184 * @DRM_MODE_TV_MODE_PAL_M: CCIR System M (aka 525-lines)
226 * struct drm_scdc - Information about scdc capabilities of a HDMI 2.0 sink
247 * struct drm_hdmi_dsc_cap - DSC capabilities of HDMI sink
288 * struct drm_hdmi_info - runtime information about the connected HDMI sink
291 * This information is available in CEA-861-F extension blocks (like HF-VSDB).
300 * defined by the CEA-861-G spec is 219, so the size is 256 bits to map
308 * the CEA-861-G spec is 219, so the size is 256 bits to map up to 256
327 * enum drm_link_status - connector's link_status property value
329 * This enum is used as the connector's link status property value.
332 * @DRM_LINK_STATUS_GOOD: DP Link is Good as a result of successful
334 * @DRM_LINK_STATUS_BAD: DP Link is BAD as a result of link training
343 * enum drm_panel_orientation - panel_orientation info for &drm_display_info
351 * orientation" connector prop will not be
357 * the panel is mounted upside-down.
364 DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1,
372 * struct drm_monitor_range_info - Panel's Monitor range in EDID for
389 * struct drm_luminance_range_info - Panel's luminance range for
405 * enum drm_privacy_screen_status - privacy screen status
408 * screen present on some display panels, via the "privacy-screen sw-state"
409 * and "privacy-screen hw-state" properties. Note the _LOCKED enum values
410 * are only valid for the "privacy-screen hw-state" property.
413 * The privacy-screen on the panel is disabled
415 * The privacy-screen on the panel is enabled
417 * The privacy-screen on the panel is disabled and locked (cannot be changed)
419 * The privacy-screen on the panel is enabled and locked (cannot be changed)
429 * enum drm_colorspace - color space
432 * DP protocol standard. The respective connectors will register
438 * DP definitions come from the DP v2.0 spec
439 * HDMI definitions come from the CTA-861-H spec
457 * (HDMI, DP)
458 * ITU-R BT.709 colorimetry format
460 * (HDMI, DP)
463 * (HDMI, DP)
466 * (HDMI, DP)
469 * (HDMI, DP)
472 * (HDMI, DP)
475 * (HDMI, DP)
476 * ITU-R BT.2020 Y'c C'bc C'rc (constant luminance) colorimetry format
478 * (HDMI, DP)
479 * ITU-R BT.2020 R' G' B' colorimetry format
481 * (HDMI, DP)
482 * ITU-R BT.2020 Y' C'b C'r colorimetry format
490 * (DP)
493 * (DP)
495 * (scRGB (IEC 61966-2-2)) colorimetry format
497 * (DP)
498 * ITU-R BT.601 colorimetry format
499 * The DP spec does not say whether this is the 525 or the 625
523 /* Additional Colorimetry Options added for DP 1.4a VSC Colorimetry Format */
531 * enum drm_bus_flags - bus_flags info for &drm_display_info
636 * Set if the Sharp-specific signals (SPL, CLS, PS, REV) must be used
642 * struct drm_display_info - runtime data about the connected sink
645 * fixed display sinks like built-in panels there's not much difference between
664 * @bpc: Maximum bits per color channel. Used by HDMI and DP outputs.
679 * @panel_orientation: Read only connector property for built-in panels,
720 * @dvi_dual: Dual-link DVI sink?
789 * @mso_stream_count: eDP Multi-SST Operation (MSO) stream count from
790 * the DisplayID VESA vendor block. 0 for conventional Single-Stream
796 * @mso_pixel_overlap: eDP MSO segment pixel overlap, 0-8 pixels.
823 * Vendor-Specific Data Block, for CEC usage.
835 * struct drm_connector_tv_margins - TV connector related margins
863 * struct drm_tv_connector_state - TV connector related states
891 * struct drm_connector_state - mutable connector state
894 /** @connector: backpointer to the connector */
895 struct drm_connector *connector; member
898 * @crtc: CRTC to connect connector to, NULL if disabled.
924 * @link_status: Connector link_status to keep track of whether link is
933 * @commit: Tracks the pending commit to prevent use-after-free conditions.
939 /** @tv: TV connector state */
945 * This tracks whether a connector is aware of the self refresh state.
946 * It should be set to true for those connector implementations which
957 * @picture_aspect_ratio: Connector property to control the
966 * @content_type: Connector property to control the
974 * @hdcp_content_type: Connector property to pass the type of
980 * @scaling_mode: Connector property to control the
981 * upscaling, mostly used for built-in panels.
986 * @content_protection: Connector property to request content
992 * @colorspace: State variable for Connector property to request
1001 * Holds the framebuffer and out-fence for a writeback connector. As
1012 * @max_requested_bpc: Connector property to limit the maximum bit
1018 * @max_bpc: Connector max_bpc based on the requested max_bpc property
1019 * and the connector bpc limitations obtained from edid.
1024 * @privacy_screen_sw_state: See :ref:`Standard Connector
1037 * struct drm_connector_funcs - control connectors on a given device
1047 * Legacy entry point to set the per-connector DPMS state. Legacy DPMS
1048 * is exposed as a standard property on the connector, but diverted to
1050 * implement the 4 level DPMS support on the connector any more, but
1060 int (*dpms)(struct drm_connector *connector, int mode);
1065 * Reset connector hardware and software state to off. This function isn't
1072 void (*reset)(struct drm_connector *connector);
1077 * Check to see if anything is attached to the connector. The parameter
1079 * connector due to a user request. force can be used by the driver to
1082 * This callback is optional, if not implemented the connector will be
1089 * core entry point to probe connector state is @fill_modes.
1097 * state the connector is in. Drivers that need the underlying
1103 * drm_connector_status indicating the connector's status.
1105 enum drm_connector_status (*detect)(struct drm_connector *connector,
1112 * connector is forced to a certain state by userspace, either through
1120 * core entry point to probe connector state is @fill_modes.
1122 void (*force)(struct drm_connector *connector);
1137 * received for this output connector->edid must be NULL.
1147 int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
1153 * connector.
1156 * driver-private properties. For atomic drivers it is not used because
1163 int (*set_property)(struct drm_connector *connector, struct drm_property *property,
1170 * interfaces attached to the connector, light backlight control, i2c,
1171 * DP aux or similar interfaces. It is called late in the driver load
1173 * core drm connector interfaces. Everything added from this callback
1182 int (*late_register)(struct drm_connector *connector);
1188 * userspace interfaces attached to the connector from
1195 void (*early_unregister)(struct drm_connector *connector);
1200 * Clean up connector resources. This is called at driver unload time
1202 * when a connector is being hot-unplugged for drivers that support
1203 * connector hotplugging (e.g. DisplayPort MST).
1205 void (*destroy)(struct drm_connector *connector);
1210 * Duplicate the current atomic state for this connector and return it.
1221 * state structure to extend it with driver-private state should use
1238 struct drm_connector_state *(*atomic_duplicate_state)(struct drm_connector *connector);
1248 void (*atomic_destroy_state)(struct drm_connector *connector,
1254 * Decode a driver-private property value and store the decoded value
1255 * into the passed-in state structure. Since the atomic core decodes all
1260 * Such driver-private properties should really only be implemented for
1269 * driver-private atomic properties.
1286 * 0 if the property has been found, -EINVAL if the property isn't
1288 * asks for properties attached to this connector). No other validation
1293 int (*atomic_set_property)(struct drm_connector *connector,
1301 * Reads out the decoded driver-private property. This is used to
1308 * driver-private atomic properties.
1312 * 0 on success, -EINVAL if the property isn't implemented by the
1314 * properties attached to this connector).
1316 int (*atomic_get_property)(struct drm_connector *connector,
1336 * This will get called when a hotplug-event for a drm-connector
1339 void (*oob_hotplug_event)(struct drm_connector *connector,
1345 * Allows connectors to create connector-specific debugfs files.
1347 void (*debugfs_init)(struct drm_connector *connector, struct dentry *root);
1351 * struct drm_cmdline_mode - DRM Mode passed through the kernel command-line
1353 * Each connector can have an initial mode with additional options
1355 * express those parameters and will be filled by the command-line
1369 * Has a mode been read from the command-line?
1455 * Ignore the hotplug state of the connector, and force its
1473 * drm-connector "panel orientation" property override value,
1497 * struct drm_connector - central DRM connector control structure
1499 * Each connector may be connected to one or more CRTCs, or may be clonable by
1500 * another connector if they can share a CRTC. Each connector also has a specific
1514 * Drivers can set this to associate a fwnode with a connector, drivers
1533 * Connector entry in the global connector-list, used by
1545 * @mutex: Lock for general connector state, but currently only protects
1546 * @registered. Most of the connector state is still protected by
1552 * @index: Compacted connector index, which matches the position inside
1553 * the mode_config.list for drivers not supporting hot-add/removing. Can
1555 * connector.
1564 /** @connector_type_id: index into connector type enum */
1568 * Can this connector handle interlaced modes? Only used by
1574 * Can this connector handle doublescan? Only used by
1580 * Can this connector handle stereo modes? Only used by
1586 * @ycbcr_420_allowed : This bool indicates if this connector is
1594 * @registration_state: Is this connector initializing, exposed
1603 * Modes available on this connector (from fill_modes() + user).
1625 * when a display is detected. For non hot-pluggable displays such as
1634 /** @funcs: connector control functions */
1644 /** @properties: property tracking for this connector */
1655 * query hardware support for variable refresh rate on a connector.
1656 * connector. Drivers can add the property to a connector by
1665 * @colorspace_property: Connector property to set the suitable
1673 * DRM blob property data for the DP MST path property. This should only
1679 * @max_bpc_property: Default connector property for the max bpc to be
1680 * driven out of the connector.
1684 /** @privacy_screen: drm_privacy_screen for this connector, or NULL. */
1687 /** @privacy_screen_notifier: privacy-screen notifier_block */
1692 * connector to control the integrated privacy screen.
1698 * connector to report the actual integrated privacy screen state.
1709 * Connector polling mode, a combination of
1712 * The connector generates hotplug events and doesn't need to be
1717 * Periodically poll the connector for connection.
1720 * Periodically poll the connector for disconnection, without
1721 * causing flickering even when the connector is in use. DACs should
1737 /** @helper_private: mid-layer private data */
1740 /** @cmdline_mode: mode line parsed from the kernel cmdline for this connector */
1758 /** @epoch_counter: used to detect any other changes in connector, besides status */
1763 * connector, drm_encoder_index() determines the index into the bitfield
1769 * @encoder: Currently bound encoder driving this connector, if any.
1770 * Only really meaningful for non-atomic drivers. Atomic drivers should
1777 /** @eld: EDID-like data, if present */
1794 * A connector usually has its associated ddc adapter. If a driver uses
1795 * this field, then an appropriate symbolic link is created in connector
1814 * in Displayport compliance testing - Displayport Link CTS Core 1.2
1825 /** @debugfs_entry: debugfs directory for this connector */
1831 * Current atomic state for this connector.
1834 * nonblocking atomic commits access the current connector state without
1849 * DRM blob property data for the tile property (used mostly by DP MST).
1853 * dual-link LVDS or dual-link DSI, the driver should try to not expose
1861 /** @has_tile: is this connector connected to a tiled monitor */
1882 * connector from any context, in conjunction with
1894 struct drm_connector *connector,
1898 struct drm_connector *connector,
1903 struct drm_connector *connector,
1907 void drm_connector_attach_edid_property(struct drm_connector *connector);
1908 int drm_connector_register(struct drm_connector *connector);
1909 void drm_connector_unregister(struct drm_connector *connector);
1910 int drm_connector_attach_encoder(struct drm_connector *connector,
1913 void drm_connector_cleanup(struct drm_connector *connector);
1915 static inline unsigned int drm_connector_index(const struct drm_connector *connector) in drm_connector_index() argument
1917 return connector->index; in drm_connector_index()
1920 static inline u32 drm_connector_mask(const struct drm_connector *connector) in drm_connector_mask() argument
1922 return 1 << connector->index; in drm_connector_mask()
1926 * drm_connector_lookup - lookup connector object
1929 * @id: connector object id
1931 * This function looks up the connector object specified by id
1944 * drm_connector_get - acquire a connector reference
1945 * @connector: DRM connector
1947 * This function increments the connector's refcount.
1949 static inline void drm_connector_get(struct drm_connector *connector) in drm_connector_get() argument
1951 drm_mode_object_get(&connector->base); in drm_connector_get()
1955 * drm_connector_put - release a connector reference
1956 * @connector: DRM connector
1958 * This function decrements the connector's reference count and frees the
1961 static inline void drm_connector_put(struct drm_connector *connector) in drm_connector_put() argument
1963 drm_mode_object_put(&connector->base); in drm_connector_put()
1967 * drm_connector_is_unregistered - has the connector been unregistered from
1969 * @connector: DRM connector
1971 * Checks whether or not @connector has been unregistered from userspace.
1974 * True if the connector was unregistered, false if the connector is
1978 drm_connector_is_unregistered(struct drm_connector *connector) in drm_connector_is_unregistered() argument
1980 return READ_ONCE(connector->registration_state) == in drm_connector_is_unregistered()
2002 void drm_connector_attach_dp_subconnector_property(struct drm_connector *connector);
2013 int drm_connector_attach_scaling_mode_property(struct drm_connector *connector,
2016 struct drm_connector *connector);
2017 int drm_connector_attach_colorspace_property(struct drm_connector *connector);
2018 int drm_connector_attach_hdr_output_metadata_property(struct drm_connector *connector);
2022 int drm_mode_create_hdmi_colorspace_property(struct drm_connector *connector,
2024 int drm_mode_create_dp_colorspace_property(struct drm_connector *connector,
2029 int drm_connector_set_path_property(struct drm_connector *connector,
2031 int drm_connector_set_tile_property(struct drm_connector *connector);
2032 int drm_connector_update_edid_property(struct drm_connector *connector,
2034 void drm_connector_set_link_status_property(struct drm_connector *connector,
2037 struct drm_connector *connector, bool capable);
2039 struct drm_connector *connector,
2042 struct drm_connector *connector,
2046 struct drm_connector *connector,
2048 int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
2053 struct drm_connector *connector, struct drm_privacy_screen *priv);
2057 * struct drm_tile_group - Tile group metadata
2061 * @group_data: Sink-private data identifying this group
2081 * struct drm_connector_list_iter - connector_list iterator
2091 * drm_connector_list_iter_end() call. If you want to use the connector later,
2106 bool drm_connector_has_possible_encoder(struct drm_connector *connector,
2111 * drm_for_each_connector_iter - connector_list iterator macro
2112 * @connector: &struct drm_connector pointer used as cursor
2115 * Note that @connector is only valid within the list body, if you want to use
2116 * @connector after calling drm_connector_list_iter_end() then you need to grab
2119 #define drm_for_each_connector_iter(connector, iter) \ argument
2120 while ((connector = drm_connector_list_iter_next(iter)))
2123 * drm_connector_for_each_possible_encoder - iterate connector's possible encoders
2124 * @connector: &struct drm_connector pointer
2127 #define drm_connector_for_each_possible_encoder(connector, encoder) \ argument
2128 drm_for_each_encoder_mask(encoder, (connector)->dev, \
2129 (connector)->possible_encoders)