From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH 09/11] drm/i915: Add rotation property for sprites Date: Wed, 18 Jun 2014 17:24:56 +0530 Message-ID: <53A17E10.5020908@intel.com> References: <1403081847-4364-1-git-send-email-sonika.jindal@intel.com> <1403081847-4364-10-git-send-email-sonika.jindal@intel.com> <20140618111251.GC18833@strange.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id AD7926E4EE for ; Wed, 18 Jun 2014 04:54:59 -0700 (PDT) In-Reply-To: <20140618111251.GC18833@strange.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Damien Lespiau Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On 6/18/2014 4:42 PM, Damien Lespiau wrote: > On Wed, Jun 18, 2014 at 02:27:25PM +0530, sonika.jindal@intel.com wrote: >> From: Ville Syrj=E4l=E4 >> >> 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 >> Cc: Jani Nikula >> Cc: David Airlie >> Cc: dri-devel at lists.freedesktop.org >> Cc: linux-kernel at vger.kernel.org >> Signed-off-by: Ville Syrj=E4l=E4 >> --- >> 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 =3D plane->dev->dev_private; >> + struct intel_plane *intel_plane =3D to_intel_plane(plane); >> + uint64_t old_val; >> + int ret =3D -ENOENT; >> + >> + if (prop =3D=3D 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?