On Fri, Jul 03, 2015 at 09:01:37AM +0530, Kausal Malladi wrote:
> Color Management is an extension to Kernel display framework. It allows
> abstraction of hardware color correction and enhancement capabilities by
> virtue of DRM properties.
> 
> This patch initializes color management framework by :
> 1. Introducing new pointers in DRM mode_config structure to
>    carry CTM and Palette color correction properties.
> 2. Creating these DRM properties in DRM standard properties creation
>    sequence.
> 
> Signed-off-by: Shashank Sharma <shashank.sharma at intel.com>
> Signed-off-by: Kausal Malladi <Kausal.Malladi at intel.com>
> ---
>  drivers/gpu/drm/drm_crtc.c | 24 ++++++++++++++++++++++++
>  include/drm/drm_crtc.h     |  6 ++++++
>  2 files changed, 30 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 2d57fc5..5d12ea9 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -1462,6 +1462,30 @@ static int drm_mode_create_standard_properties(struct 
> drm_device *dev)
>               return -ENOMEM;
>       dev->mode_config.prop_mode_id = prop;
>  
> +     /* Color Management properties */
> +     prop = drm_property_create(dev,
> +                     DRM_MODE_PROP_BLOB | DRM_MODE_PROP_IMMUTABLE,
> +                     "COLOR_CAPABILITIES", 0);

Is there a specific reason you don't check for NULL on this property
like you do on all the others, or is this just an oversight?


Matt

> +     dev->mode_config.prop_color_capabilities = prop;
> +
> +     prop = drm_property_create(dev,
> +                     DRM_MODE_PROP_BLOB, "PALETTE_AFTER_CTM", 0);
> +     if (!prop)
> +             return -ENOMEM;
> +     dev->mode_config.prop_palette_after_ctm = prop;
> +
> +     prop = drm_property_create(dev,
> +                     DRM_MODE_PROP_BLOB, "PALETTE_BEFORE_CTM", 0);
> +     if (!prop)
> +             return -ENOMEM;
> +     dev->mode_config.prop_palette_before_ctm = prop;
> +
> +     prop = drm_property_create(dev,
> +                     DRM_MODE_PROP_BLOB, "CTM", 0);
> +     if (!prop)
> +             return -ENOMEM;
> +     dev->mode_config.prop_ctm = prop;
> +
>       return 0;
>  }
>  
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 57ca8cc..408d39a 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -1178,6 +1178,12 @@ struct drm_mode_config {
>       struct drm_property *suggested_x_property;
>       struct drm_property *suggested_y_property;
>  
> +     /* Color Management Properties */
> +     struct drm_property *prop_color_capabilities;
> +     struct drm_property *prop_palette_before_ctm;
> +     struct drm_property *prop_palette_after_ctm;
> +     struct drm_property *prop_ctm;
> +
>       /* dumb ioctl parameters */
>       uint32_t preferred_depth, prefer_shadow;
>  
> -- 
> 2.4.5
> 

-- 
Matt Roper
Graphics Software Engineer
IoTG Platform Enabling & Development
Intel Corporation
(916) 356-2795

Reply via email to