diff mbox

drm: document standard connector properties

Message ID 20161117085648.26646-1-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Nov. 17, 2016, 8:56 a.m. UTC
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>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 Documentation/gpu/drm-kms.rst   |  6 ++++++
 drivers/gpu/drm/drm_connector.c | 44 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+)

Comments

Archit Taneja Nov. 17, 2016, 9:19 a.m. UTC | #1
On 11/17/2016 02:26 PM, Daniel Vetter wrote:
> 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.

Reviewed-by: Archit Taneja <architt@codeaurora.org>

>
> 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>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  Documentation/gpu/drm-kms.rst   |  6 ++++++
>  drivers/gpu/drm/drm_connector.c | 44 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 50 insertions(+)
>
> diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> index 568f3c2b6e46..f19757b1736a 100644
> --- a/Documentation/gpu/drm-kms.rst
> +++ b/Documentation/gpu/drm-kms.rst
> @@ -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
>  ----------------------------
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b5c6a8ee831e..5a4526289392 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -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;
>
Navare, Manasi Nov. 18, 2016, 6:36 a.m. UTC | #2
On Thu, Nov 17, 2016 at 09:56:48AM +0100, Daniel Vetter wrote:
> 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)
>

  Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> 
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Archit Taneja <architt@codeaurora.org>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  Documentation/gpu/drm-kms.rst   |  6 ++++++
>  drivers/gpu/drm/drm_connector.c | 44 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 50 insertions(+)
> 
> diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> index 568f3c2b6e46..f19757b1736a 100644
> --- a/Documentation/gpu/drm-kms.rst
> +++ b/Documentation/gpu/drm-kms.rst
> @@ -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
>  ----------------------------
>  
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index b5c6a8ee831e..5a4526289392 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -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;
> -- 
> 2.10.2
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Vetter Nov. 18, 2016, 8:45 a.m. UTC | #3
On Thu, Nov 17, 2016 at 10:36:12PM -0800, Manasi Navare wrote:
> On Thu, Nov 17, 2016 at 09:56:48AM +0100, Daniel Vetter wrote:
> > 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)
> >
> 
>   Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> 

Thanks for the review, patch applied to drm-misc.
-Daniel

> > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > Cc: Archit Taneja <architt@codeaurora.org>
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> >  Documentation/gpu/drm-kms.rst   |  6 ++++++
> >  drivers/gpu/drm/drm_connector.c | 44 +++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 50 insertions(+)
> > 
> > diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> > index 568f3c2b6e46..f19757b1736a 100644
> > --- a/Documentation/gpu/drm-kms.rst
> > +++ b/Documentation/gpu/drm-kms.rst
> > @@ -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
> >  ----------------------------
> >  
> > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> > index b5c6a8ee831e..5a4526289392 100644
> > --- a/drivers/gpu/drm/drm_connector.c
> > +++ b/drivers/gpu/drm/drm_connector.c
> > @@ -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;
> > -- 
> > 2.10.2
> > 
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
index 568f3c2b6e46..f19757b1736a 100644
--- a/Documentation/gpu/drm-kms.rst
+++ b/Documentation/gpu/drm-kms.rst
@@ -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
 ----------------------------
 
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index b5c6a8ee831e..5a4526289392 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -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;