On Fri, 10 May 2024, Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Change intel_fbdev_fb_alloc() to return struct intel_fb instead > of struct drm_framebuffer. Let's us eliminate some annoying > aliasing variables in the fbdev setup code. > > v2: Assing the results to the correct variable (Jani) > Fix xe's copy > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_fbdev.c | 9 ++++----- > drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 6 +++--- > drivers/gpu/drm/i915/display/intel_fbdev_fb.h | 4 ++-- > drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 9 +++++---- > 4 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c > index bda702c2cab8..4bbbf481bb3a 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev.c > +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c > @@ -207,13 +207,12 @@ static int intelfb_create(struct drm_fb_helper *helper, > intel_fb = ifbdev->fb = NULL; > } > if (!intel_fb || drm_WARN_ON(dev, !intel_fb_obj(&intel_fb->base))) { > - struct drm_framebuffer *fb; > drm_dbg_kms(&dev_priv->drm, > "no BIOS fb, allocating a new one\n"); > - fb = intel_fbdev_fb_alloc(helper, sizes); > - if (IS_ERR(fb)) > - return PTR_ERR(fb); > - intel_fb = ifbdev->fb = to_intel_framebuffer(fb); > + intel_fb = intel_fbdev_fb_alloc(helper, sizes); > + if (IS_ERR(intel_fb)) > + return PTR_ERR(intel_fb); > + ifbdev->fb = intel_fb; > } else { > drm_dbg_kms(&dev_priv->drm, "re-using BIOS fb\n"); > prealloc = true; > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > index 0665f943f65f..497525ef9668 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > @@ -11,8 +11,8 @@ > #include "intel_display_types.h" > #include "intel_fbdev_fb.h" > > -struct drm_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > +struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > + struct drm_fb_helper_surface_size *sizes) > { > struct drm_framebuffer *fb; > struct drm_device *dev = helper->dev; > @@ -63,7 +63,7 @@ struct drm_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > fb = intel_framebuffer_create(obj, &mode_cmd); > i915_gem_object_put(obj); > > - return fb; > + return to_intel_framebuffer(fb); > } > > int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info *info, > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > index a395b2c65d33..4832fe688fbf 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > @@ -13,8 +13,8 @@ struct drm_i915_private; > struct fb_info; > struct i915_vma; > > -struct drm_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes); > +struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > + struct drm_fb_helper_surface_size *sizes); > int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info *info, > struct drm_i915_gem_object *obj, struct i915_vma *vma); > > diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c > index 9e4bcfdbc7e5..f6bf5896ff1b 100644 > --- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c > +++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c > @@ -13,8 +13,8 @@ > #include "i915_drv.h" > #include "intel_display_types.h" > > -struct drm_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > - struct drm_fb_helper_surface_size *sizes) > +struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > + struct drm_fb_helper_surface_size *sizes) > { > struct drm_framebuffer *fb; > struct drm_device *dev = helper->dev; > @@ -70,10 +70,11 @@ struct drm_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper, > } > > drm_gem_object_put(intel_bo_to_drm_bo(obj)); > - return fb; > + > + return to_intel_framebuffer(fb); > > err: > - return fb; > + return ERR_CAST(fb); > } > > int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info *info, -- Jani Nikula, Intel