[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