Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: ville.syrjala@linux.intel.com
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v2 3/6] drm: RIP mode_config->rotation_property
Date: Sat, 22 Oct 2016 10:42:52 +0200	[thread overview]
Message-ID: <20161022084252.GR20761@phenom.ffwll.local> (raw)
In-Reply-To: <1477077768-4274-4-git-send-email-ville.syrjala@linux.intel.com>

On Fri, Oct 21, 2016 at 10:22:45PM +0300, ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Now that all drivers have been converted over to the per-plane rotation
> property, we can just nuke the global rotation property.
> 
> v2: Rebase due to BIT(),__builtin_ffs() & co.
>     Deal with superfluous code shuffling
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Merged up to this patch. I think it's better to land the follow-up i915
patches through drm-intel. I'll do backmerges next week anyway, you won't
need to wait long.

Thanks, Daniel
> ---
>  drivers/gpu/drm/drm_atomic.c    |  6 ++----
>  drivers/gpu/drm/drm_blend.c     | 32 ++++----------------------------
>  drivers/gpu/drm/drm_fb_helper.c |  7 +------
>  include/drm/drm_blend.h         |  2 --
>  include/drm/drm_crtc.h          |  5 -----
>  5 files changed, 7 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index f81706387889..1b5a32df9a9a 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -705,8 +705,7 @@ int drm_atomic_plane_set_property(struct drm_plane *plane,
>  		state->src_w = val;
>  	} else if (property == config->prop_src_h) {
>  		state->src_h = val;
> -	} else if (property == config->rotation_property ||
> -		   property == plane->rotation_property) {
> +	} else if (property == plane->rotation_property) {
>  		if (!is_power_of_2(val & DRM_ROTATE_MASK))
>  			return -EINVAL;
>  		state->rotation = val;
> @@ -766,8 +765,7 @@ drm_atomic_plane_get_property(struct drm_plane *plane,
>  		*val = state->src_w;
>  	} else if (property == config->prop_src_h) {
>  		*val = state->src_h;
> -	} else if (property == config->rotation_property ||
> -		   property == plane->rotation_property) {
> +	} else if (property == plane->rotation_property) {
>  		*val = state->rotation;
>  	} else if (property == plane->zpos_property) {
>  		*val = state->zpos;
> diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c
> index e52aece30900..1f2412c7ccfd 100644
> --- a/drivers/gpu/drm/drm_blend.c
> +++ b/drivers/gpu/drm/drm_blend.c
> @@ -89,7 +89,7 @@
>   * On top of this basic transformation additional properties can be exposed by
>   * the driver:
>   *
> - * - Rotation is set up with drm_mode_create_rotation_property(). It adds a
> + * - Rotation is set up with drm_plane_create_rotation_property(). It adds a
>   *   rotation and reflection step between the source and destination rectangles.
>   *   Without this property the rectangle is only scaled, but not rotated or
>   *   reflected.
> @@ -105,18 +105,12 @@
>   */
>  
>  /**
> - * drm_mode_create_rotation_property - create a new rotation property
> - * @dev: DRM device
> + * drm_plane_create_rotation_property - create a new rotation property
> + * @plane: drm plane
> + * @rotation: initial value of the rotation property
>   * @supported_rotations: bitmask of supported rotations and reflections
>   *
>   * This creates a new property with the selected support for transformations.
> - * The resulting property should be stored in @rotation_property in
> - * &drm_mode_config. It then must be attached to each plane which supports
> - * rotations using drm_object_attach_property().
> - *
> - * FIXME: Probably better if the rotation property is created on each plane,
> - * like the zpos property. Otherwise it's not possible to allow different
> - * rotation modes on different planes.
>   *
>   * Since a rotation by 180° degress is the same as reflecting both along the x
>   * and the y axis the rotation property is somewhat redundant. Drivers can use
> @@ -144,24 +138,6 @@
>   * rotation. After reflection, the rotation is applied to the image sampled from
>   * the source rectangle, before scaling it to fit the destination rectangle.
>   */
> -struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
> -						       unsigned int supported_rotations)
> -{
> -	static const struct drm_prop_enum_list props[] = {
> -		{ __builtin_ffs(DRM_ROTATE_0) - 1,   "rotate-0" },
> -		{ __builtin_ffs(DRM_ROTATE_90) - 1,  "rotate-90" },
> -		{ __builtin_ffs(DRM_ROTATE_180) - 1, "rotate-180" },
> -		{ __builtin_ffs(DRM_ROTATE_270) - 1, "rotate-270" },
> -		{ __builtin_ffs(DRM_REFLECT_X) - 1,  "reflect-x" },
> -		{ __builtin_ffs(DRM_REFLECT_Y) - 1,  "reflect-y" },
> -	};
> -
> -	return drm_property_create_bitmask(dev, 0, "rotation",
> -					   props, ARRAY_SIZE(props),
> -					   supported_rotations);
> -}
> -EXPORT_SYMBOL(drm_mode_create_rotation_property);
> -
>  int drm_plane_create_rotation_property(struct drm_plane *plane,
>  				       unsigned int rotation,
>  				       unsigned int supported_rotations)
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index e0d428f9d1cb..83dbae0fabcf 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -392,15 +392,10 @@ static int restore_fbdev_mode(struct drm_fb_helper *fb_helper)
>  		if (plane->type != DRM_PLANE_TYPE_PRIMARY)
>  			drm_plane_force_disable(plane);
>  
> -		if (plane->rotation_property) {
> +		if (plane->rotation_property)
>  			drm_mode_plane_set_obj_prop(plane,
>  						    plane->rotation_property,
>  						    DRM_ROTATE_0);
> -		} else if (dev->mode_config.rotation_property) {
> -			drm_mode_plane_set_obj_prop(plane,
> -						    dev->mode_config.rotation_property,
> -						    DRM_ROTATE_0);
> -		}
>  	}
>  
>  	for (i = 0; i < fb_helper->crtc_count; i++) {
> diff --git a/include/drm/drm_blend.h b/include/drm/drm_blend.h
> index fd351924e1c5..13221cf9b3eb 100644
> --- a/include/drm/drm_blend.h
> +++ b/include/drm/drm_blend.h
> @@ -52,8 +52,6 @@ static inline bool drm_rotation_90_or_270(unsigned int rotation)
>  	return rotation & (DRM_ROTATE_90 | DRM_ROTATE_270);
>  }
>  
> -struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
> -						       unsigned int supported_rotations);
>  int drm_plane_create_rotation_property(struct drm_plane *plane,
>  				       unsigned int rotation,
>  				       unsigned int supported_rotations);
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 284c1b3aec10..bc860cfc67ca 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -1156,11 +1156,6 @@ struct drm_mode_config {
>  	 */
>  	struct drm_property *plane_type_property;
>  	/**
> -	 * @rotation_property: Optional property for planes or CRTCs to specifiy
> -	 * rotation.
> -	 */
> -	struct drm_property *rotation_property;
> -	/**
>  	 * @prop_src_x: Default atomic plane property for the plane source
>  	 * position in the connected &drm_framebuffer.
>  	 */
> -- 
> 2.7.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2016-10-22  8:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-21 19:22 [PATCH v3 0/6] drm: Per-plane rotation etc ville.syrjala
2016-10-21 19:22 ` [PATCH v2 1/6] drm/msm/mdp5: Use per-plane rotation property ville.syrjala
2016-10-24 10:03   ` Archit Taneja
2016-10-24 10:15     ` Ville Syrjälä
2016-10-24 10:22       ` Archit Taneja
2016-10-24 10:25         ` Ville Syrjälä
2016-10-24 10:31           ` Archit Taneja
2016-10-21 19:22 ` [PATCH v2 2/6] drm/msm/mdp5: Advertize 180 degree rotation ville.syrjala
2016-10-21 19:22 ` [PATCH v2 3/6] drm: RIP mode_config->rotation_property ville.syrjala
2016-10-22  8:42   ` Daniel Vetter [this message]
2016-10-21 19:22 ` [PATCH v2 4/6] drm/i915: Use & instead if == to check for rotations ville.syrjala
2016-10-21 19:22 ` [PATCH v2 5/6] drm/i915: Clean up rotation DSPCNTR/DVSCNTR/etc. setup ville.syrjala
2016-10-21 19:22 ` [PATCH v3 6/6] drm/i915: Add horizontal mirroring support for CHV pipe B planes ville.syrjala

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161022084252.GR20761@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox