[Intel-gfx] [PATCH 09/10] drm/i915: Switch plane properties to full atomic helper.

Ander Conselvan de Oliveira conselvan2 at gmail.com
Thu Jan 22 09:16:12 PST 2015


Reviewed-by: Ander Conselvan de Oliveira <conselvan2 at gmail.com>

On 01/22/2015 02:35 AM, Matt Roper wrote:
> This will exercise our atomic pipeline for legacy property updates.
>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>   drivers/gpu/drm/i915/intel_atomic_plane.c |  9 +++++++++
>   drivers/gpu/drm/i915/intel_display.c      |  3 ++-
>   drivers/gpu/drm/i915/intel_sprite.c       | 26 --------------------------
>   3 files changed, 11 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
> index 4a3914f..9e6f727 100644
> --- a/drivers/gpu/drm/i915/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
> @@ -118,6 +118,15 @@ static int intel_plane_atomic_check(struct drm_plane *plane,
>   	intel_crtc = to_intel_crtc(crtc);
>
>   	/*
> +	 * Both crtc and plane->crtc could be NULL if we're updating a
> +	 * property while the plane is disabled.  We don't actually have
> +	 * anything driver-specific we need to test in that case, so
> +	 * just return success.
> +	 */
> +	if (!crtc)
> +		return 0;
> +
> +	/*
>   	 * The original src/dest coordinates are stored in state->base, but
>   	 * we want to keep another copy internal to our driver that we can
>   	 * clip/modify ourselves.
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index db20773..90b788a 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -37,6 +37,7 @@
>   #include <drm/i915_drm.h>
>   #include "i915_drv.h"
>   #include "i915_trace.h"
> +#include <drm/drm_atomic_helper.h>
>   #include <drm/drm_dp_helper.h>
>   #include <drm/drm_crtc_helper.h>
>   #include <drm/drm_plane_helper.h>
> @@ -12055,7 +12056,7 @@ const struct drm_plane_funcs intel_plane_funcs = {
>   	.update_plane = drm_plane_helper_update,
>   	.disable_plane = drm_plane_helper_disable,
>   	.destroy = intel_plane_destroy,
> -	.set_property = intel_plane_set_property,
> +	.set_property = drm_atomic_helper_plane_set_property,
>   	.atomic_get_property = intel_plane_atomic_get_property,
>   	.atomic_set_property = intel_plane_atomic_set_property,
>   	.atomic_duplicate_state = intel_plane_duplicate_state,
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 50683d4..0a52c44 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -1362,32 +1362,6 @@ out_unlock:
>   	return ret;
>   }
>
> -int intel_plane_set_property(struct drm_plane *plane,
> -			     struct drm_property *prop,
> -			     uint64_t val)
> -{
> -	struct drm_device *dev = plane->dev;
> -	uint64_t old_val;
> -	int ret = -ENOENT;
> -
> -	if (prop == dev->mode_config.rotation_property) {
> -		/* exactly one rotation angle please */
> -		if (hweight32(val & 0xf) != 1)
> -			return -EINVAL;
> -
> -		if (plane->state->rotation == val)
> -			return 0;
> -
> -		old_val = plane->state->rotation;
> -		plane->state->rotation = val;
> -		ret = intel_plane_restore(plane);
> -		if (ret)
> -			plane->state->rotation = old_val;
> -	}
> -
> -	return ret;
> -}
> -
>   int intel_plane_restore(struct drm_plane *plane)
>   {
>   	if (!plane->crtc || !plane->fb)
>



More information about the Intel-gfx mailing list