From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 04/10] drm/i915: Make plane_config->fb a struct drm_framebuffer*
Date: Tue, 14 Apr 2026 17:32:01 +0300 [thread overview]
Message-ID: <ad5P4XUVw3I6VGar@intel.com> (raw)
In-Reply-To: <fa77ccf73f2da60f4fcfc7275c03ce63907da8ba@intel.com>
On Fri, Apr 10, 2026 at 06:48:02PM +0300, Jani Nikula wrote:
> On Fri, 10 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > There's no need to use the intel specific struct intel_framebuffer*
> > type in the initial plane_config structure. Just make it a
> > struct drm_framebuffer*.
>
> I guess a few words on the "why?" would be nice. I mean they're still
> pointers to struct intel_framebuffer objects, and could be
> container_of'd back.
Yeah, meant to put something more sensible here. Basically I think the
less special types we expose in the interface (even if just pointers)
the better. At least then there is no need to change the interface
definition if we ever change the internal types. And I hope that the
existing examples will generally encourage people to not expose more
special types unless absolutely necessary.
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
>
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> > drivers/gpu/drm/i915/display/i9xx_plane.c | 2 +-
> > drivers/gpu/drm/i915/display/intel_display_types.h | 2 +-
> > drivers/gpu/drm/i915/display/intel_initial_plane.c | 10 +++++-----
> > drivers/gpu/drm/i915/display/skl_universal_plane.c | 2 +-
> > drivers/gpu/drm/i915/i915_initial_plane.c | 6 +++---
> > drivers/gpu/drm/xe/display/xe_initial_plane.c | 2 +-
> > 6 files changed, 12 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
> > index 9c16753a1f3b..70734d32a409 100644
> > --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> > @@ -1240,7 +1240,7 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc,
> > fb->width, fb->height, fb->format->cpp[0] * 8,
> > base, fb->pitches[0], plane_config->size);
> >
> > - plane_config->fb = intel_fb;
> > + plane_config->fb = &intel_fb->base;
> > }
> >
> > bool i9xx_fixup_initial_plane_config(struct intel_crtc *crtc,
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index eaa37b8d9584..82c7e03427ff 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -755,7 +755,7 @@ struct intel_plane_state {
> > };
> >
> > struct intel_initial_plane_config {
> > - struct intel_framebuffer *fb;
> > + struct drm_framebuffer *fb;
> > struct i915_vma *vma;
> > int size;
> > u32 base;
> > diff --git a/drivers/gpu/drm/i915/display/intel_initial_plane.c b/drivers/gpu/drm/i915/display/intel_initial_plane.c
> > index 4f51083dbd11..911d67dceba9 100644
> > --- a/drivers/gpu/drm/i915/display/intel_initial_plane.c
> > +++ b/drivers/gpu/drm/i915/display/intel_initial_plane.c
> > @@ -55,9 +55,9 @@ static struct drm_gem_object *
> > intel_alloc_initial_plane_obj(struct intel_display *display,
> > struct intel_initial_plane_config *plane_config)
> > {
> > - struct intel_framebuffer *fb = plane_config->fb;
> > + struct drm_framebuffer *fb = plane_config->fb;
> >
> > - switch (fb->base.modifier) {
> > + switch (fb->modifier) {
> > case DRM_FORMAT_MOD_LINEAR:
> > case I915_FORMAT_MOD_X_TILED:
> > case I915_FORMAT_MOD_Y_TILED:
> > @@ -65,7 +65,7 @@ intel_alloc_initial_plane_obj(struct intel_display *display,
> > break;
> > default:
> > drm_dbg_kms(display->drm, "Unsupported modifier for initial FB: 0x%llx\n",
> > - fb->base.modifier);
> > + fb->modifier);
> > return NULL;
> > }
> >
> > @@ -93,7 +93,7 @@ intel_find_initial_plane_obj(struct intel_crtc *crtc,
> > return;
> >
> > if (intel_alloc_initial_plane_obj(display, plane_config)) {
> > - fb = &plane_config->fb->base;
> > + fb = plane_config->fb;
> > vma = plane_config->vma;
> > } else {
> > const struct intel_plane_state *other_plane_state;
> > @@ -149,7 +149,7 @@ static void plane_config_fini(struct intel_display *display,
> > struct intel_initial_plane_config *plane_config)
> > {
> > if (plane_config->fb) {
> > - struct drm_framebuffer *fb = &plane_config->fb->base;
> > + struct drm_framebuffer *fb = plane_config->fb;
> >
> > /* We may only have the stub and not a full framebuffer */
> > if (drm_framebuffer_read_refcount(fb))
> > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > index 7a9d494334b5..00c863e378a1 100644
> > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > @@ -3206,7 +3206,7 @@ skl_get_initial_plane_config(struct intel_crtc *crtc,
> > fb->width, fb->height, fb->format->cpp[0] * 8,
> > base, fb->pitches[0], plane_config->size);
> >
> > - plane_config->fb = intel_fb;
> > + plane_config->fb = &intel_fb->base;
> > return;
> >
> > error:
> > diff --git a/drivers/gpu/drm/i915/i915_initial_plane.c b/drivers/gpu/drm/i915/i915_initial_plane.c
> > index 6df57db9b62a..5cb1adde67b6 100644
> > --- a/drivers/gpu/drm/i915/i915_initial_plane.c
> > +++ b/drivers/gpu/drm/i915/i915_initial_plane.c
> > @@ -137,7 +137,7 @@ initial_plane_vma(struct drm_i915_private *i915,
> > i915_gem_object_set_cache_coherency(obj, HAS_WT(i915) ?
> > I915_CACHE_WT : I915_CACHE_NONE);
> >
> > - tiling = intel_fb_modifier_to_tiling(plane_config->fb->base.modifier);
> > + tiling = intel_fb_modifier_to_tiling(plane_config->fb->modifier);
> >
> > switch (tiling) {
> > case I915_TILING_NONE:
> > @@ -145,7 +145,7 @@ initial_plane_vma(struct drm_i915_private *i915,
> > case I915_TILING_X:
> > case I915_TILING_Y:
> > obj->tiling_and_stride =
> > - plane_config->fb->base.pitches[0] |
> > + plane_config->fb->pitches[0] |
> > tiling;
> > break;
> > default:
> > @@ -223,7 +223,7 @@ i915_alloc_initial_plane_obj(struct drm_device *drm,
> > {
> > struct drm_i915_private *i915 = to_i915(drm);
> > struct drm_mode_fb_cmd2 mode_cmd = {};
> > - struct drm_framebuffer *fb = &plane_config->fb->base;
> > + struct drm_framebuffer *fb = plane_config->fb;
> > struct i915_vma *vma;
> >
> > vma = initial_plane_vma(i915, plane_config);
> > diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c b/drivers/gpu/drm/xe/display/xe_initial_plane.c
> > index 1c7a4e8c390c..8f2d0244c03f 100644
> > --- a/drivers/gpu/drm/xe/display/xe_initial_plane.c
> > +++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c
> > @@ -115,7 +115,7 @@ xe_alloc_initial_plane_obj(struct drm_device *drm,
> > {
> > struct xe_device *xe = to_xe_device(drm);
> > struct drm_mode_fb_cmd2 mode_cmd = { 0 };
> > - struct drm_framebuffer *fb = &plane_config->fb->base;
> > + struct drm_framebuffer *fb = plane_config->fb;
> > struct xe_bo *bo;
> >
> > mode_cmd.pixel_format = fb->format->format;
>
> --
> Jani Nikula, Intel
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2026-04-14 14:32 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-10 15:04 [PATCH 00/10] drm/i915: Some fixes/cleanups to the BIOS FB stuff Ville Syrjala
2026-04-10 15:04 ` [PATCH 01/10] drm/i915: Introduce sanity to the plane_config pointer vs. array thing Ville Syrjala
2026-04-10 15:40 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 02/10] drm/i915: Remove 'mem' and 'phy_base' from struct intel_initial_plane_config Ville Syrjala
2026-04-10 15:43 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 03/10] drm/i915: Don't pass the whole plane_config to initial_plane_phys() Ville Syrjala
2026-04-10 15:45 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 04/10] drm/i915: Make plane_config->fb a struct drm_framebuffer* Ville Syrjala
2026-04-10 15:48 ` Jani Nikula
2026-04-14 14:32 ` Ville Syrjälä [this message]
2026-04-14 15:53 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 05/10] drm/i915: Move initial plane vblank wait into display code Ville Syrjala
2026-04-10 15:53 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 06/10] drm/i915: Use a 1 second timeout for the polling vblank wait Ville Syrjala
2026-04-10 15:54 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 07/10] drm/i915: Reject tile4 BIOS FB Ville Syrjala
2026-04-10 15:55 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 08/10] drm/i915: Reject X/Y tiled BIOS FB if we don't have fenced regions Ville Syrjala
2026-04-10 15:56 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 09/10] drm/i915: Completely reject DPT BIOS FBs Ville Syrjala
2026-04-10 16:00 ` Jani Nikula
2026-04-10 15:04 ` [PATCH 10/10] drm/i915: Reject BIOS FB rotation in common code Ville Syrjala
2026-04-10 16:01 ` Jani Nikula
2026-04-10 15:12 ` ✓ CI.KUnit: success for drm/i915: Some fixes/cleanups to the BIOS FB stuff Patchwork
2026-04-10 16:41 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-11 3:46 ` ✓ Xe.CI.FULL: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ad5P4XUVw3I6VGar@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox