]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/i915: Use intel_plane_state in prepare and cleanup plane_fb
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fri, 4 Oct 2019 11:34:55 +0000 (13:34 +0200)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 10 Oct 2019 14:01:03 +0000 (16:01 +0200)
We need to look at the hw fb in the plane split, so replace all the places
that use drm_plane_state with intel_plane_state.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191004113514.17064-6-maarten.lankhorst@linux.intel.com
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
[mlankhorst: Fix line wraps (Matt Roper)]
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index 1a533ccdb54f34db11e46f3a385b3bfce8491128..23dc7ae1243ac33ce6c4a39b866335a5a6a7ea06 100644 (file)
@@ -14358,12 +14358,14 @@ static void fb_obj_bump_render_priority(struct drm_i915_gem_object *obj)
  */
 int
 intel_prepare_plane_fb(struct drm_plane *plane,
-                      struct drm_plane_state *new_state)
+                      struct drm_plane_state *_new_plane_state)
 {
+       struct intel_plane_state *new_plane_state =
+               to_intel_plane_state(_new_plane_state);
        struct intel_atomic_state *intel_state =
-               to_intel_atomic_state(new_state->state);
+               to_intel_atomic_state(new_plane_state->base.state);
        struct drm_i915_private *dev_priv = to_i915(plane->dev);
-       struct drm_framebuffer *fb = new_state->fb;
+       struct drm_framebuffer *fb = new_plane_state->base.fb;
        struct drm_i915_gem_object *obj = intel_fb_obj(fb);
        struct drm_i915_gem_object *old_obj = intel_fb_obj(plane->state->fb);
        int ret;
@@ -14394,9 +14396,9 @@ intel_prepare_plane_fb(struct drm_plane *plane,
                }
        }
 
-       if (new_state->fence) { /* explicit fencing */
+       if (new_plane_state->base.fence) { /* explicit fencing */
                ret = i915_sw_fence_await_dma_fence(&intel_state->commit_ready,
-                                                   new_state->fence,
+                                                   new_plane_state->base.fence,
                                                    I915_FENCE_TIMEOUT,
                                                    GFP_KERNEL);
                if (ret < 0)
@@ -14410,7 +14412,7 @@ intel_prepare_plane_fb(struct drm_plane *plane,
        if (ret)
                return ret;
 
-       ret = intel_plane_pin_fb(to_intel_plane_state(new_state));
+       ret = intel_plane_pin_fb(new_plane_state);
 
        i915_gem_object_unpin_pages(obj);
        if (ret)
@@ -14419,7 +14421,7 @@ intel_prepare_plane_fb(struct drm_plane *plane,
        fb_obj_bump_render_priority(obj);
        intel_frontbuffer_flush(obj->frontbuffer, ORIGIN_DIRTYFB);
 
-       if (!new_state->fence) { /* implicit fencing */
+       if (!new_plane_state->base.fence) { /* implicit fencing */
                struct dma_fence *fence;
 
                ret = i915_sw_fence_await_reservation(&intel_state->commit_ready,
@@ -14431,11 +14433,13 @@ intel_prepare_plane_fb(struct drm_plane *plane,
 
                fence = dma_resv_get_excl_rcu(obj->base.resv);
                if (fence) {
-                       add_rps_boost_after_vblank(new_state->crtc, fence);
+                       add_rps_boost_after_vblank(new_plane_state->base.crtc,
+                                                  fence);
                        dma_fence_put(fence);
                }
        } else {
-               add_rps_boost_after_vblank(new_state->crtc, new_state->fence);
+               add_rps_boost_after_vblank(new_plane_state->base.crtc,
+                                          new_plane_state->base.fence);
        }
 
        /*
@@ -14463,10 +14467,12 @@ intel_prepare_plane_fb(struct drm_plane *plane,
  */
 void
 intel_cleanup_plane_fb(struct drm_plane *plane,
-                      struct drm_plane_state *old_state)
+                      struct drm_plane_state *_old_plane_state)
 {
+       struct intel_plane_state *old_plane_state =
+               to_intel_plane_state(_old_plane_state);
        struct intel_atomic_state *intel_state =
-               to_intel_atomic_state(old_state->state);
+               to_intel_atomic_state(old_plane_state->base.state);
        struct drm_i915_private *dev_priv = to_i915(plane->dev);
 
        if (intel_state->rps_interactive) {
@@ -14475,7 +14481,7 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
        }
 
        /* Should only be called after a successful intel_prepare_plane_fb()! */
-       intel_plane_unpin_fb(to_intel_plane_state(old_state));
+       intel_plane_unpin_fb(old_plane_state);
 }
 
 int