On 6/18/2014 4:42 PM, Damien Lespiau wrote:
On Wed, Jun 18, 2014 at 02:27:25PM +0530, sonika.jin...@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?
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to