Re: [PATCH 09/11] drm/i915: Add rotation property for sprites

Damien Lespiau
2014-06-18T11:12:54Z

On Wed, Jun 18, 2014 at 02:27:25PM +0530, sonika.jindal@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?

--
Damien