[Intel-gfx] [PATCH 07/10] drm/i915: Consolidate plane 'cleanup' operations (v2)

Ander Conselvan de Oliveira conselvan2 at gmail.com
Tue Dec 2 06:10:03 PST 2014


On 12/02/2014 01:40 AM, Matt Roper wrote:
> All plane update functions need to unpin the old framebuffer when
> flipping to a new one.  Pull this logic into a separate function to ease
> the integration with atomic plane helpers.
>
> v2: Don't wait for vblank if we don't have an old fb to cleanup (Ander)
>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
>   drivers/gpu/drm/i915/intel_display.c | 59 ++++++++++++++++++++++++------------
>   drivers/gpu/drm/i915/intel_drv.h     |  2 ++
>   drivers/gpu/drm/i915/intel_sprite.c  | 27 ++++++-----------
>   3 files changed, 51 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f48faaa..98e4fbf 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c

[...]

> @@ -12120,6 +12134,13 @@ intel_cursor_plane_update(struct drm_plane *plane, struct drm_crtc *crtc,
>
>   	intel_commit_cursor_plane(plane, &state);
>
> +	if (fb != old_fb) {
> +		if (intel_crtc->active)
> +			intel_wait_for_vblank(dev, intel_crtc->pipe);
> +		if (old_fb)
> +			intel_cleanup_plane_fb(plane, old_fb);
> +	}
> +
>   	return 0;
>   }
>

We're still waiting for vblank when obj is NULL here.

[...]

> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 5d8c2e0..152a32d 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c

[...]

> @@ -1390,6 +1373,14 @@ intel_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
>   	}
>
>   	intel_commit_sprite_plane(plane, &state);
> +
> +	if (fb != old_fb) {
> +		if (intel_crtc->active)
> +			intel_wait_for_vblank(dev, intel_crtc->pipe);
> +		if (old_fb)
> +			intel_cleanup_plane_fb(plane, old_fb);
> +	}
> +

And also here.




More information about the Intel-gfx mailing list