[Intel-gfx] [PATCH 09/11] drm/i915: Add rotation property for sprites

Jindal, Sonika sonika.jindal at intel.com
Wed Jun 18 13:54:56 CEST 2014



On 6/18/2014 4:42 PM, Damien Lespiau wrote:
> On Wed, Jun 18, 2014 at 02:27:25PM +0530, sonika.jindal at intel.com wrote:
>> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>>
>> Sprite planes support 180 degree rotation. The lower layers are now in
>> place, so hook in the standard rotation property to expose the feature
>> to the users.
>>
>> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
>> Cc: Jani Nikula <jani.nikula at linux.intel.com>
>> Cc: David Airlie <airlied at linux.ie>
>> Cc: dri-devel at lists.freedesktop.org
>> Cc: linux-kernel at vger.kernel.org
>> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_drv.h     |    1 +
>>   drivers/gpu/drm/i915/intel_sprite.c |   42 ++++++++++++++++++++++++++++++++++-
>>   2 files changed, 42 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 0640071..b56a1a5 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -1514,6 +1514,7 @@ struct drm_i915_private {
>>
>>   	struct drm_property *broadcast_rgb_property;
>>   	struct drm_property *force_audio_property;
>> +	struct drm_property *rotation_property;
>>
>>   	uint32_t hw_context_size;
>>   	struct list_head context_list;
>> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
>> index cbad738..b9af256 100644
>> --- a/drivers/gpu/drm/i915/intel_sprite.c
>> +++ b/drivers/gpu/drm/i915/intel_sprite.c
>> @@ -1202,6 +1202,30 @@ out_unlock:
>>   	return ret;
>>   }
>>
>> +static int intel_plane_set_property(struct drm_plane *plane,
>> +				    struct drm_property *prop,
>> +				    uint64_t val)
>> +{
>> +	struct drm_i915_private *dev_priv = plane->dev->dev_private;
>> +	struct intel_plane *intel_plane = to_intel_plane(plane);
>> +	uint64_t old_val;
>> +	int ret = -ENOENT;
>> +
>> +	if (prop == dev_priv->rotation_property) {
>
> Shouldn't we add a:
> 	
> 		if (val & (BIT(DRM_ROTATE_0) | BIT(DRM_ROTATE_180)))
> 			return -EINVAL;
>
> To ensure userspace doesn't send garbage in the upper bits so we can
> reuse them down the road?
>
But we are checking if more than one bit is set, we return EINVAL.
So we only care for one rotation angle being sent from user.
Shouldn't that suffice?



More information about the Intel-gfx mailing list