Re: [PATCH 03/10] drm/i915: Use the atomic state in intel_update_primary_planes.

Ville Syrjälä
2015-09-10T15:47:20Z

On Thu, Sep 10, 2015 at 04:07:58PM +0200, Maarten Lankhorst wrote:
> This function was still using the legacy state, convert it to atomic.
> While we're at it, fix the FIXME too and disable the primary plane.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 26 ++++++++++++--------------
> 1 file changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 33200403a5db..b68aa95c5460 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -3138,24 +3138,22 @@ static void intel_complete_page_flips(struct drm_device *dev)
>
> static void intel_update_primary_planes(struct drm_device *dev)
> {
> - struct drm_i915_private *dev_priv = dev->dev_private;
> struct drm_crtc *crtc;
>
> for_each_crtc(dev, crtc) {
> - struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> + struct intel_plane *plane = to_intel_plane(crtc->primary);
> + struct intel_plane_state *plane_state;
>
> - drm_modeset_lock(&crtc->mutex, NULL);
> - /*
> - * FIXME: Once we have proper support for primary planes (and
> - * disabling them without disabling the entire crtc) allow again
> - * a NULL crtc->primary->fb.
> - */
> - if (intel_crtc->active && crtc->primary->fb)
> - dev_priv->display.update_primary_plane(crtc,
> - crtc->primary->fb,
> - crtc->x,
> - crtc->y);
> - drm_modeset_unlock(&crtc->mutex);
> + drm_modeset_lock_crtc(crtc, &plane->base);
> +
> + plane_state = to_intel_plane_state(plane->base.state);
> +
> + if (plane_state->base.fb)
> + plane->commit_plane(&plane->base, plane_state);
> + else if (crtc->state->active)
> + plane->disable_plane(&plane->base, crtc);

That doesn't make sense. There's no way to disable a plane with a page
flip, so there's simply nothing to do here if the fb is NULL. If we can
trust the plane state to be sane we should just check 'visible' here and
commit the plane in that case.

> +
> + drm_modeset_unlock_crtc(crtc);
> }
> }
>
> --
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

--
Ville Syrjälä
Intel OTC