[Intel-gfx] [PATCH 05/11] drm/i915: change dev_priv->fbc.plane to dev_priv->fbc.crtc
Rodrigo Vivi
rodrigo.vivi at gmail.com
Fri Dec 12 16:58:34 PST 2014
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
On Mon, Dec 8, 2014 at 8:09 AM, Paulo Zanoni <przanoni at gmail.com> wrote:
> From: Paulo Zanoni <paulo.r.zanoni at intel.com>
>
> Since the mapping from CRTCs to planes is fixed, looking at the CRTC
> is essentially the same as looking at the plane. Also, the next
> patches wil start using the frontbuffer_bits macros, and they take the
> pipe as the parameter instead of the plane, and this could differ on
> gens 2 and 3.
>
> Another nice thing is that we don't risk accidentally initializing
> things to PLANE_A if we don't set the value before it is used for the
> first time. But this shouldn't be a problem with the current code.
>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.h | 2 +-
> drivers/gpu/drm/i915/intel_display.c | 5 ++---
> drivers/gpu/drm/i915/intel_fbc.c | 6 +++---
> drivers/gpu/drm/i915/intel_sprite.c | 2 +-
> 4 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index b5260bf..9d694f1 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -689,7 +689,7 @@ struct i915_fbc {
> unsigned long size;
> unsigned threshold;
> unsigned int fb_id;
> - enum plane plane;
> + struct intel_crtc *crtc;
> int y;
>
> struct drm_mm_node compressed_fb;
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index e4789f4..88f3652 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4218,11 +4218,10 @@ static void intel_crtc_disable_planes(struct drm_crtc *crtc)
> struct drm_i915_private *dev_priv = dev->dev_private;
> struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> int pipe = intel_crtc->pipe;
> - int plane = intel_crtc->plane;
>
> intel_crtc_wait_for_pending_flips(crtc);
>
> - if (dev_priv->fbc.plane == plane)
> + if (dev_priv->fbc.crtc == intel_crtc)
> intel_fbc_disable(dev);
>
> hsw_disable_ips(intel_crtc);
> @@ -11813,7 +11812,7 @@ intel_commit_primary_plane(struct drm_plane *plane,
> */
> if (intel_crtc->primary_enabled &&
> INTEL_INFO(dev)->gen <= 4 && !IS_G4X(dev) &&
> - dev_priv->fbc.plane == intel_crtc->plane &&
> + dev_priv->fbc.crtc == intel_crtc &&
> intel_plane->rotation != BIT(DRM_ROTATE_0)) {
> intel_fbc_disable(dev);
> }
> diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
> index f3d5764..88d00d3 100644
> --- a/drivers/gpu/drm/i915/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/intel_fbc.c
> @@ -383,7 +383,7 @@ static void intel_fbc_work_fn(struct work_struct *__work)
> if (work->crtc->primary->fb == work->fb) {
> dev_priv->display.enable_fbc(work->crtc);
>
> - dev_priv->fbc.plane = to_intel_crtc(work->crtc)->plane;
> + dev_priv->fbc.crtc = to_intel_crtc(work->crtc);
> dev_priv->fbc.fb_id = work->crtc->primary->fb->base.id;
> dev_priv->fbc.y = work->crtc->y;
> }
> @@ -474,7 +474,7 @@ void intel_fbc_disable(struct drm_device *dev)
> return;
>
> dev_priv->display.disable_fbc(dev);
> - dev_priv->fbc.plane = -1;
> + dev_priv->fbc.crtc = NULL;
> }
>
> static bool set_no_fbc_reason(struct drm_i915_private *dev_priv,
> @@ -626,7 +626,7 @@ void intel_fbc_update(struct drm_device *dev)
> * cannot be unpinned (and have its GTT offset and fence revoked)
> * without first being decoupled from the scanout and FBC disabled.
> */
> - if (dev_priv->fbc.plane == intel_crtc->plane &&
> + if (dev_priv->fbc.crtc == intel_crtc &&
> dev_priv->fbc.fb_id == fb->base.id &&
> dev_priv->fbc.y == crtc->y)
> return;
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index c18e57d..942daca 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -1016,7 +1016,7 @@ intel_pre_disable_primary(struct drm_crtc *crtc)
> struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>
> mutex_lock(&dev->struct_mutex);
> - if (dev_priv->fbc.plane == intel_crtc->plane)
> + if (dev_priv->fbc.crtc == intel_crtc)
> intel_fbc_disable(dev);
> mutex_unlock(&dev->struct_mutex);
>
> --
> 2.1.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
More information about the Intel-gfx
mailing list