diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2025-12-15 17:28:27 +0200 |
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2025-12-22 15:09:23 +0200 |
| commit | 5bad00377ec844d93947fd4c081abd2000a63dfc (patch) | |
| tree | bdbfe2c36aac6f96275fee8edb8d3e8966076027 | |
| parent | dcff3266cfc49000b95b461a41031db3cfc55c62 (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.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_initial_plane.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/xe/display/xe_initial_plane.c | 8 | ||||
| -rw-r--r-- | 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 @@ 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); }; |
