The initial plane parent interface ->setup hook no longer needs the crtc
for anything. Pass the struct drm_plane_state instead.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_initial_plane.c |  2 +-
 drivers/gpu/drm/i915/i915_initial_plane.c          | 10 +++-------
 drivers/gpu/drm/xe/display/xe_initial_plane.c      |  8 ++------
 include/drm/intel/display_parent_interface.h       |  3 ++-
 4 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_initial_plane.c 
b/drivers/gpu/drm/i915/display/intel_initial_plane.c
index 6e7bd6c3c02d..e4d6aa438e66 100644
--- a/drivers/gpu/drm/i915/display/intel_initial_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_initial_plane.c
@@ -106,7 +106,7 @@ intel_find_initial_plane_obj(struct intel_crtc *crtc,
        intel_fb_fill_view(to_intel_framebuffer(fb),
                           plane_state->uapi.rotation, &plane_state->view);
 
-       ret = display->parent->initial_plane->setup(&crtc->base, plane_config, 
fb, vma);
+       ret = display->parent->initial_plane->setup(plane->base.state, 
plane_config, fb, vma);
        if (ret)
                goto nofb;
 
diff --git a/drivers/gpu/drm/i915/i915_initial_plane.c 
b/drivers/gpu/drm/i915/i915_initial_plane.c
index 5fe96b52d2cd..40d4f990f23c 100644
--- a/drivers/gpu/drm/i915/i915_initial_plane.c
+++ b/drivers/gpu/drm/i915/i915_initial_plane.c
@@ -264,17 +264,13 @@ i915_alloc_initial_plane_obj(struct drm_crtc *_crtc,
 }
 
 static int
-i915_initial_plane_setup(struct drm_crtc *_crtc,
+i915_initial_plane_setup(struct drm_plane_state *_plane_state,
                         struct intel_initial_plane_config *plane_config,
                         struct drm_framebuffer *fb,
                         struct i915_vma *vma)
 {
-       struct intel_crtc *crtc = to_intel_crtc(_crtc);
-       struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-       struct intel_plane *plane =
-               to_intel_plane(crtc->base.primary);
-       struct intel_plane_state *plane_state =
-               to_intel_plane_state(plane->base.state);
+       struct intel_plane_state *plane_state = 
to_intel_plane_state(_plane_state);
+       struct drm_i915_private *dev_priv = to_i915(_plane_state->plane->dev);
 
        __i915_vma_pin(vma);
        plane_state->ggtt_vma = i915_vma_get(vma);
diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c 
b/drivers/gpu/drm/xe/display/xe_initial_plane.c
index 45513fd79766..9999bc07743b 100644
--- a/drivers/gpu/drm/xe/display/xe_initial_plane.c
+++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c
@@ -158,16 +158,12 @@ xe_alloc_initial_plane_obj(struct drm_crtc *_crtc,
 }
 
 static int
-xe_initial_plane_setup(struct drm_crtc *_crtc,
+xe_initial_plane_setup(struct drm_plane_state *_plane_state,
                       struct intel_initial_plane_config *plane_config,
                       struct drm_framebuffer *fb,
                       struct i915_vma *_unused)
 {
-       struct intel_crtc *crtc = to_intel_crtc(_crtc);
-       struct intel_plane *plane =
-               to_intel_plane(crtc->base.primary);
-       struct intel_plane_state *plane_state =
-               to_intel_plane_state(plane->base.state);
+       struct intel_plane_state *plane_state = 
to_intel_plane_state(_plane_state);
        struct i915_vma *vma;
 
        vma = intel_fb_pin_to_ggtt(fb, &plane_state->view.gtt,
diff --git a/include/drm/intel/display_parent_interface.h 
b/include/drm/intel/display_parent_interface.h
index 164f3d473e3a..040a014b49ce 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -11,6 +11,7 @@ struct drm_crtc;
 struct drm_device;
 struct drm_framebuffer;
 struct drm_gem_object;
+struct drm_plane_state;
 struct drm_scanout_buffer;
 struct i915_vma;
 struct intel_hdcp_gsc_context;
@@ -33,7 +34,7 @@ struct intel_display_hdcp_interface {
 struct intel_display_initial_plane_interface {
        void (*vblank_wait)(struct drm_crtc *crtc);
        struct drm_gem_object *(*alloc_obj)(struct drm_crtc *crtc, struct 
intel_initial_plane_config *plane_config);
-       int (*setup)(struct drm_crtc *crtc, struct intel_initial_plane_config 
*plane_config,
+       int (*setup)(struct drm_plane_state *plane_state, struct 
intel_initial_plane_config *plane_config,
                     struct drm_framebuffer *fb, struct i915_vma *vma);
        void (*config_fini)(struct intel_initial_plane_config *plane_configs);
 };
-- 
2.47.3

Reply via email to