Re: [PATCH 02/12] drm: Create Color Management DRM properties

Malladi, Kausal
2015-07-08T04:27:33Z

Thanks for your review, Matt! Our responses inline...

Kausal

On Wednesday 08 July 2015 04:53 AM, Matt Roper wrote:
> 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@intel.com>
>> Signed-off-by: Kausal Malladi <Kausal.Malladi@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?
Oops, it was an oversight. Thanks for bringing it to notice.
>
>
> 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
>>