[Intel-gfx] [PATCH 2/6] drm: introduce color correction properties

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Jan 22 02:20:08 PST 2016


On 21/01/16 19:20, Matt Roper wrote:
> On Thu, Jan 21, 2016 at 03:03:49PM +0000, Lionel Landwerlin wrote:
> ...
>> diff --git a/Documentation/DocBook/gpu.tmpl b/Documentation/DocBook/gpu.tmpl
>> index 351e801..d2f682c 100644
>> --- a/Documentation/DocBook/gpu.tmpl
>> +++ b/Documentation/DocBook/gpu.tmpl
>> @@ -2092,6 +2092,54 @@ void intel_crt_init(struct drm_device *dev)
>>   	<td valign="top" >TBD</td>
>>   	</tr>
>>   	<tr>
>> +	<td valign="top" >“DEGAMMA_LUT”</td>
>> +	<td valign="top" >BLOB</td>
>> +	<td valign="top" ></td>
>> +	<td valign="top" >CRTC</td>
>> +	<td valign="top" >DRM property to set the degamma 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.</td>
>> +	</tr>
>> +	<tr>
>> +	<td valign="top" >“DEGAMMA_LUT_SIZE”</td>
>> +	<td valign="top" >IMMUTABLE</td>
> IMMUTABLE by itself isn't a property type, just a flag that you can
> apply in addition to the type.  You probably want "RANGE | IMMUTABLE"
> here (and also on GAMMA_LUT_SIZE below).
>
> ...snip...
>> +	<td valign="top" >“GAMMA_LUT_SIZE”</td>
>> +	<td valign="top" >IMMUTABLE</td>
>> +	<td valign="top" ></td>
>> +	<td valign="top" >CRTC</td>
>> +	<td valign="top" >DRM property to gives the size of the LUT to
>> +		be set on the GAMMA_LUT property (the size depends on the
>> +		underlying hardware).</td>
>> +	</tr>
>> +	<tr>
>>   	<td rowspan="20" valign="top" >i915</td>
>>   	<td rowspan="2" valign="top" >Generic</td>
>>   	<td valign="top" >"Broadcast RGB"</td>
> ...snip...
>> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
>> index d40bab2..6f96c04 100644
>> --- a/drivers/gpu/drm/drm_crtc.c
>> +++ b/drivers/gpu/drm/drm_crtc.c
>> @@ -1542,6 +1542,41 @@ static int drm_mode_create_standard_properties(struct drm_device *dev)
>>   		return -ENOMEM;
>>   	dev->mode_config.prop_mode_id = prop;
>>   
>> +	prop = drm_property_create(dev,
>> +			DRM_MODE_PROP_BLOB,
>> +			"DEGAMMA_LUT", 0);
>> +	if (!prop)
>> +		return -ENOMEM;
>> +	dev->mode_config.degamma_lut_property = prop;
>> +
>> +	prop = drm_property_create(dev,
>> +			DRM_MODE_PROP_IMMUTABLE,
> As noted above, you still need to OR in a valid property type (in this
> case DRM_MODE_PROP_RANGE); otherwise you'll trip over the the check in
> drm_property_type_valid() that gets called at the end of
> drm_property_create().
>
>
> Matt
>

Thanks Matt,

Just realized that yesterday while talking to Damien.
Will fix in v2.

-
Lionel


More information about the Intel-gfx mailing list