On Wed, Aug 31, 2016 at 12:09 PM, Daniel Vetter <daniel.vetter at ffwll.ch> 
wrote:
> Again move it from the unmaintainable csv into DOC free-form overview
> sections.
>
> Cc: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>

A few more comment nits, after those are fixed,

Reviewed-by: Sean Paul <seanpaul at chromium.org>

> ---
>  Documentation/gpu/drm-kms.rst        | 12 +++++++++
>  Documentation/gpu/kms-properties.csv |  5 ----
>  drivers/gpu/drm/drm_color_mgmt.c     | 48 
> ++++++++++++++++++++++++++++++++++++
>  include/drm/drm_color_mgmt.h         | 11 ++++++---
>  4 files changed, 68 insertions(+), 8 deletions(-)
>
> diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> index 6be8d3359620..53b872c105d2 100644
> --- a/Documentation/gpu/drm-kms.rst
> +++ b/Documentation/gpu/drm-kms.rst
> @@ -296,6 +296,18 @@ Plane Composition Properties
>  .. kernel-doc:: drivers/gpu/drm/drm_blend.c
>     :export:
>
> +Color Management Properties
> +---------------------------
> +
> +.. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c
> +   :doc: overview
> +
> +.. kernel-doc:: include/drm/drm_color_mgmt.h
> +   :internal:
> +
> +.. kernel-doc:: drivers/gpu/drm/drm_color_mgmt.c
> +   :export:
> +
>  Existing KMS Properties
>  -----------------------
>
> diff --git a/Documentation/gpu/kms-properties.csv 
> b/Documentation/gpu/kms-properties.csv
> index 1aa2493d1ef9..1a5729c4af65 100644
> --- a/Documentation/gpu/kms-properties.csv
> +++ b/Documentation/gpu/kms-properties.csv
> @@ -24,11 +24,6 @@ Owner Module/Drivers,Group,Property Name,Type,Property 
> Values,Object attached,De
>  ,,“suggested Y”,RANGE,"Min=0, Max=0xffffffff",Connector,property to 
> suggest an Y offset for a connector
>  ,Optional,"""aspect ratio""",ENUM,"{ ""None"", ""4:3"", ""16:9"" 
> }",Connector,TDB
>  ,,“dirty”,ENUM | IMMUTABLE,"{ ""Off"", ""On"", ""Annotate"" 
> }",Connector,TBD
> -,,“DEGAMMA_LUT”,BLOB,0,CRTC,DRM property to set the degamma lookup table 
> (LUT) mapping pixel data from the framebuffer before it is given to the 
> transformation matrix. The data is an interpreted as an array of struct 
> drm_color_lut elements. Hardware might choose not to use the full precision 
> of the LUT elements nor use all the elements of the LUT (for example the 
> hardware might choose to interpolate between LUT[0] and LUT[4]).
> -,,“DEGAMMA_LUT_SIZE”,RANGE | IMMUTABLE,"Min=0, Max=UINT_MAX",CRTC,DRM 
> property to gives the size of the lookup table to be set on the DEGAMMA_LUT 
> property (the size depends on the underlying hardware).
> -,,“CTM”,BLOB,0,CRTC,DRM property to set the current transformation 
> matrix (CTM) apply to pixel data after the lookup through the degamma LUT and 
> before the lookup through the gamma LUT. The data is an interpreted as a 
> struct drm_color_ctm.
> -,,“GAMMA_LUT”,BLOB,0,CRTC,DRM property to set the gamma lookup table 
> (LUT) mapping pixel data after to the transformation matrix to data sent to 
> the connector. The data is an interpreted as an array of struct drm_color_lut 
> elements. Hardware might choose not to use the full precision of the LUT 
> elements nor use all the elements of the LUT (for example the hardware might 
> choose to interpolate between LUT[0] and LUT[4]).
> -,,“GAMMA_LUT_SIZE”,RANGE | IMMUTABLE,"Min=0, Max=UINT_MAX",CRTC,DRM 
> property to gives the size of the lookup table to be set on the GAMMA_LUT 
> property (the size depends on the underlying hardware).
>  i915,Generic,"""Broadcast RGB""",ENUM,"{ ""Automatic"", ""Full"", ""Limited 
> 16:235"" }",Connector,"When this property is set to Limited 16:235 and CTM is 
> set, the hardware will be programmed with the result of the multiplication of 
> CTM by the limited range matrix to ensure the pixels normaly in the range 
> 0..1.0 are remapped to the range 16/255..235/255."
>  ,,“audio”,ENUM,"{ ""force-dvi"", ""off"", ""auto"", ""on"" 
> }",Connector,TBD
>  ,SDVO-TV,“mode”,ENUM,"{ ""NTSC_M"", ""NTSC_J"", ""NTSC_443"", ""PAL_B"" 
> } etc.",Connector,TBD
> diff --git a/drivers/gpu/drm/drm_color_mgmt.c 
> b/drivers/gpu/drm/drm_color_mgmt.c
> index aca1b7a6397c..23b792746cfd 100644
> --- a/drivers/gpu/drm/drm_color_mgmt.c
> +++ b/drivers/gpu/drm/drm_color_mgmt.c
> @@ -26,6 +26,54 @@
>
>  #include "drm_crtc_internal.h"
>
> +/**
> + * DOC: overview
> + *
> + * Color management or color space adjustements is supported through a set 
> of 5

s/adjustements/adjustments/

> + * properties on the &drm_crtc object. They are set up by calling
> + * drm_crtc_enable_color_mgmt().
> + *
> + * "DEGAMMA_LUT”:
> + *     Blob property to set the degamma lookup table (LUT) mapping pixel data
> + *     from the framebuffer before it is given to the transformation matrix.
> + *     The data is an interpreted as an array of struct &drm_color_lut 
> elements.
> + *     Hardware might choose not to use the full precision of the LUT 
> elements
> + *     nor use all the elements of the LUT (for example the hardware might
> + *     choose to interpolate between LUT[0] and LUT[4]).
> + *
> + * “DEGAMMA_LUT_SIZE”:
> + *     Unsinged range property to gives the size of the lookup table to be 
> set

s/to gives/to give/

s/Unsinged/Unsigned/

> + *     on the DEGAMMA_LUT property (the size depends on the underlying
> + *     hardware). If drivers support multiple LUT sizes then they should
> + *     publish the largest size, and sub-sample smaller sized LUTs (e.g. for
> + *     split-gamma modes) appropriately.
> + *
> + * “CTM”:
> + *     Blob property to set the current transformation matrix (CTM) apply to
> + *     pixel data after the lookup through the degamma LUT and before the
> + *     lookup through the gamma LUT. The data is an interpreted as a struct

s/an interpreted/interpreted/

> + *     &drm_color_ctm.
> + *
> + * “GAMMA_LUT”:
> + *     Blob property to set the gamma lookup table (LUT) mapping pixel data
> + *     after to the transformation matrix to data sent to the connector. The
> + *     data is an interpreted as an array of struct &drm_color_lut elements.

s/an interpreted/interpreted/

> + *     Hardware might choose not to use the full precision of the LUT 
> elements
> + *     nor use all the elements of the LUT (for example the hardware might
> + *     choose to interpolate between LUT[0] and LUT[4]).
> + *
> + * “GAMMA_LUT_SIZE”:
> + *     Unsigned range property to gives the size of the lookup table to be 
> set

s/to gives/to give/

> + *     on the GAMMA_LUT property (the size depends on the underlying 
> hardware).
> + *     If drivers support multiple LUT sizes then they should publish the
> + *     largest size, and sub-sample smaller sized LUTs (e.g. for split-gamma
> + *     modes) appropriately.
> + *
> + * There is also support for a legacy gamma table, which is set up by calling
> + * drm_mode_crtc_set_gamma_size(). Drivers which support both should use
> + * drm_atomic_helper_legacy_gamma_set() to alias the legacy gamma ramp with 
> the
> + * "GAMMA_LUT" property above.
> + */
>
>  /**
>   * drm_crtc_enable_color_mgmt - enable color management properties
> diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h
> index 1e01c58bbe81..c767238ac9d5 100644
> --- a/include/drm/drm_color_mgmt.h
> +++ b/include/drm/drm_color_mgmt.h
> @@ -33,9 +33,14 @@ void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc,
>  int drm_mode_crtc_set_gamma_size(struct drm_crtc *crtc,
>                                  int gamma_size);
>
> -/*
> - * Extract a degamma/gamma LUT value provided by user and round it to the
> - * precision supported by the hardware.
> +/**
> + * drm_color_lut_extract - clamp&round LUT entries
> + * @user_input: input value
> + * @bit_precision: number of bits the hw LUT supports
> + *
> + * Extract a degamma/gamma LUT value provided by user (in the form of
> + * &drm_color_lut entries) and round it to the precision supported by the
> + * hardware.
>   */
>  static inline uint32_t drm_color_lut_extract(uint32_t user_input,
>                                              uint32_t bit_precision)
> --
> 2.9.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to