[RFC] drm: expose connector status values in uapi
Simon Ser
contact at emersion.fr
Fri Jun 26 07:55:12 UTC 2020
Right now user-space doesn't have access to connector status definitions.
This means user-space needs to maintain a separate enum for these, and
makes it difficult to document the uapi.
Introduce defines in drm_mode.h, and copy over the docs. Keep using the
drm_connector_status enum in drivers, because it allows for nice things
when using the enum as a type.
Signed-off-by: Simon Ser <contact at emersion.fr>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Cc: Pekka Paalanen <pekka.paalanen at collabora.com>
---
- Would something like this be desirable?
- Docs are just copied over for now, not improved
- Same applies to e.g. the subpixel field
include/drm/drm_connector.h | 30 ++++--------------------------
include/uapi/drm/drm_mode.h | 27 ++++++++++++++++++++++++++-
2 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index fd543d1db9b2..f48f8072aa89 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -53,34 +53,12 @@ enum drm_connector_force {
/**
* enum drm_connector_status - status for a &drm_connector
*
- * This enum is used to track the connector status. There are no separate
- * #defines for the uapi!
+ * This enum is used to track the connector status. See the uapi docs.
*/
enum drm_connector_status {
- /**
- * @connector_status_connected: The connector is definitely connected to
- * a sink device, and can be enabled.
- */
- connector_status_connected = 1,
- /**
- * @connector_status_disconnected: The connector isn't connected to a
- * sink device which can be autodetect. For digital outputs like DP or
- * HDMI (which can be realiable probed) this means there's really
- * nothing there. It is driver-dependent whether a connector with this
- * status can be lit up or not.
- */
- connector_status_disconnected = 2,
- /**
- * @connector_status_unknown: The connector's status could not be
- * reliably detected. This happens when probing would either cause
- * flicker (like load-detection when the connector is in use), or when a
- * hardware resource isn't available (like when load-detection needs a
- * free CRTC). It should be possible to light up the connector with one
- * of the listed fallback modes. For default configuration userspace
- * should only try to light up connectors with unknown status when
- * there's not connector with @connector_status_connected.
- */
- connector_status_unknown = 3,
+ connector_status_connected = DRM_MODE_STATUS_CONNECTED,
+ connector_status_disconnected = DRM_MODE_STATUS_DISCONNECTED,
+ connector_status_unknown = DRM_MODE_STATUS_UNKNOWN,
};
/**
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 735c8cfdaaa1..0deffda35487 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -363,6 +363,31 @@ enum drm_mode_subconnector {
#define DRM_MODE_CONNECTOR_WRITEBACK 18
#define DRM_MODE_CONNECTOR_SPI 19
+/**
+ * @DRM_MODE_STATUS_CONNECTED: The connector is definitely connected to
+ * a sink device, and can be enabled.
+ */
+#define DRM_MODE_STATUS_CONNECTED 1
+/**
+ * @DRM_MODE_STATUS_DISCONNECTED: The connector isn't connected to a
+ * sink device which can be autodetect. For digital outputs like DP or
+ * HDMI (which can be realiable probed) this means there's really
+ * nothing there. It is driver-dependent whether a connector with this
+ * status can be lit up or not.
+ */
+#define DRM_MODE_STATUS_DISCONNECTED 2
+/**
+ * @DRM_MODE_STATUS_UNKNOWN: The connector's status could not be
+ * reliably detected. This happens when probing would either cause
+ * flicker (like load-detection when the connector is in use), or when a
+ * hardware resource isn't available (like when load-detection needs a
+ * free CRTC). It should be possible to light up the connector with one
+ * of the listed fallback modes. For default configuration userspace
+ * should only try to light up connectors with unknown status when
+ * there's not connector with @connector_status_connected.
+ */
+#define DRM_MODE_STATUS_UNKNOWN 3
+
struct drm_mode_get_connector {
__u64 encoders_ptr;
@@ -379,7 +404,7 @@ struct drm_mode_get_connector {
__u32 connector_type;
__u32 connector_type_id;
- __u32 connection;
+ __u32 connection; /**< see DRM_MODE_STATUS_* */
__u32 mm_width; /**< width in millimeters */
__u32 mm_height; /**< height in millimeters */
__u32 subpixel;
--
2.27.0
More information about the dri-devel
mailing list