drm: document standard connector properties
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 17 Nov 2016 08:56:48 +0000 (09:56 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 18 Nov 2016 08:45:07 +0000 (09:45 +0100)
There's a really big pile of additional connector properties, a lot of
them standardized. But they're all for specific outputs (panels, TV,
scaling, ...) so I left them out for now since this is enough for a
start.

I typed this to give Manasi a place to add her new link status
property documentation.

v2: forgot to git add all the bits (Manasi).

v3: Be more epxlicit about integrated tiled panels (Archit)

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Archit Taneja <architt@codeaurora.org>
Reviewed-by: Archit Taneja <architt@codeaurora.org>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161117085648.26646-1-daniel.vetter@ffwll.ch
Documentation/gpu/drm-kms.rst
drivers/gpu/drm/drm_connector.c

index 568f3c2b6e46eed7bf31fd22bfeeba0597bfbb1b..f19757b1736a4b721f5dcdc82e0ae89cc8febe9f 100644 (file)
@@ -260,6 +260,12 @@ Property Types and Blob Property Support
 .. kernel-doc:: drivers/gpu/drm/drm_property.c
    :export:
 
+Standard Connector Properties
+-----------------------------
+
+.. kernel-doc:: drivers/gpu/drm/drm_connector.c
+   :doc: standard connector properties
+
 Plane Composition Properties
 ----------------------------
 
index b5c6a8ee831eb18a4b4fc43d6abd46cf943778b2..5a452628939272969c54239498b9a1ca86cd4a67 100644 (file)
@@ -588,6 +588,50 @@ static const struct drm_prop_enum_list drm_tv_subconnector_enum_list[] = {
 DRM_ENUM_NAME_FN(drm_get_tv_subconnector_name,
                 drm_tv_subconnector_enum_list)
 
+/**
+ * DOC: standard connector properties
+ *
+ * DRM connectors have a few standardized properties:
+ *
+ * EDID:
+ *     Blob property which contains the current EDID read from the sink. This
+ *     is useful to parse sink identification information like vendor, model
+ *     and serial. Drivers should update this property by calling
+ *     drm_mode_connector_update_edid_property(), usually after having parsed
+ *     the EDID using drm_add_edid_modes(). Userspace cannot change this
+ *     property.
+ * DPMS:
+ *     Legacy property for setting the power state of the connector. For atomic
+ *     drivers this is only provided for backwards compatibility with existing
+ *     drivers, it remaps to controlling the "ACTIVE" property on the CRTC the
+ *     connector is linked to. Drivers should never set this property directly,
+ *     it is handled by the DRM core by calling the ->dpms() callback in
+ *     &drm_connector_funcs. Atomic drivers should implement this hook using
+ *     drm_atomic_helper_connector_dpms(). This is the only property standard
+ *     connector property that userspace can change.
+ * PATH:
+ *     Connector path property to identify how this sink is physically
+ *     connected. Used by DP MST. This should be set by calling
+ *     drm_mode_connector_set_path_property(), in the case of DP MST with the
+ *     path property the MST manager created. Userspace cannot change this
+ *     property.
+ * TILE:
+ *     Connector tile group property to indicate how a set of DRM connector
+ *     compose together into one logical screen. This is used by both high-res
+ *     external screens (often only using a single cable, but exposing multiple
+ *     DP MST sinks), or high-res integrated panels (like dual-link DSI) which
+ *     are not gen-locked. Note that for tiled panels which are genlocked, like
+ *     dual-link LVDS or dual-link DSI, the driver should try to not expose the
+ *     tiling and virtualize both &drm_crtc and &drm_plane if needed. Drivers
+ *     should update this value using drm_mode_connector_set_tile_property().
+ *     Userspace cannot change this property.
+ *
+ * Connectors also have one standardized atomic property:
+ *
+ * CRTC_ID:
+ *     Mode object ID of the &drm_crtc this connector should be connected to.
+ */
+
 int drm_connector_create_standard_properties(struct drm_device *dev)
 {
        struct drm_property *prop;