]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/{i915, xe}: pass struct drm_plane_state instead of struct drm_crtc to ->setup
authorJani Nikula <jani.nikula@intel.com>
Mon, 15 Dec 2025 15:28:27 +0000 (17:28 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 22 Dec 2025 13:09:23 +0000 (15:09 +0200)
The initial plane parent interface ->setup hook no longer needs the crtc
for anything. Pass the struct drm_plane_state instead.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/c3db101ef5fd13c56cb3a9329adecf521a807abc.1765812266.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_initial_plane.c
drivers/gpu/drm/i915/i915_initial_plane.c
drivers/gpu/drm/xe/display/xe_initial_plane.c
include/drm/intel/display_parent_interface.h

index 6e7bd6c3c02dee1341109329fd497f35850bd23a..e4d6aa438e66118c02e6c1a25078afede39f794f 100644 (file)
@@ -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;
 
index 5fe96b52d2cd9de21a2f7c0ba37e3d4e4c493610..40d4f990f23c48039d13e8520a4081f82d12a50c 100644 (file)
@@ -264,17 +264,13 @@ err_vma:
 }
 
 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);
index 45513fd7976661d271c46a0e0733d79102de6134..9999bc07743beb325807494cc4a911a4e0777dfc 100644 (file)
@@ -158,16 +158,12 @@ err_bo:
 }
 
 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,
index f0f379ae912d9582aec7b1c7f90b4fc6f0bb12c5..129e2b9e9a211ba8bc8367fc17723e535988e9aa 100644 (file)
@@ -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);
 };