summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2025-12-15 17:28:27 +0200
committerJani Nikula <jani.nikula@intel.com>2025-12-22 15:09:23 +0200
commit5bad00377ec844d93947fd4c081abd2000a63dfc (patch)
treebdbfe2c36aac6f96275fee8edb8d3e8966076027
parentdcff3266cfc49000b95b461a41031db3cfc55c62 (diff)
drm/{i915, xe}: pass struct drm_plane_state instead of struct drm_crtc to ->setup
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>
-rw-r--r--drivers/gpu/drm/i915/display/intel_initial_plane.c2
-rw-r--r--drivers/gpu/drm/i915/i915_initial_plane.c10
-rw-r--r--drivers/gpu/drm/xe/display/xe_initial_plane.c8
-rw-r--r--include/drm/intel/display_parent_interface.h3
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 @@ 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);
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 @@ 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,
diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h
index f0f379ae912d..129e2b9e9a21 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);
};