On Thu, Sep 18, 2025 at 11:40:58AM +0300, Jani Nikula wrote: > With the bo creation helper in place, we can lift > intel_framebuffer_create() part to common code. > > Signed-off-by: Jani Nikula <jani.nik...@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com> > --- > drivers/gpu/drm/i915/display/intel_fbdev.c | 31 ++++++++++++++-- > drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 34 ------------------ > drivers/gpu/drm/i915/display/intel_fbdev_fb.h | 2 -- > drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 35 ------------------- > 4 files changed, 28 insertions(+), 74 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c > b/drivers/gpu/drm/i915/display/intel_fbdev.c > index e46c08762b84..4bc9a053ca40 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev.c > +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c > @@ -227,13 +227,38 @@ __intel_fbdev_fb_alloc(struct intel_display *display, > struct drm_fb_helper_surface_size *sizes) > { > struct drm_mode_fb_cmd2 mode_cmd = {}; > - struct intel_framebuffer *fb; > + struct drm_framebuffer *fb; > + struct drm_gem_object *obj; > + int size; > > intel_fbdev_fill_mode_cmd(sizes, &mode_cmd); > > - fb = intel_fbdev_fb_alloc(display->drm, &mode_cmd); > + size = mode_cmd.pitches[0] * mode_cmd.height; > + size = PAGE_ALIGN(size); > + > + obj = intel_fbdev_fb_bo_create(display->drm, size); > + if (IS_ERR(obj)) { > + fb = ERR_CAST(obj); > + goto err; > + } > + > + fb = intel_framebuffer_create(obj, > + drm_get_format_info(display->drm, > + mode_cmd.pixel_format, > + mode_cmd.modifier[0]), > + &mode_cmd); > + if (IS_ERR(fb)) { > + intel_fbdev_fb_bo_destroy(obj); > + goto err; > + } > + > + drm_gem_object_put(obj); > + > + return to_intel_framebuffer(fb); > + > +err: > + return ERR_CAST(fb); > > - return fb; > } > > int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > index a7dab8cd3aa2..c802a4b2bfc7 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > @@ -10,7 +10,6 @@ > #include "i915_drv.h" > #include "intel_display_core.h" > #include "intel_display_types.h" > -#include "intel_fb.h" > #include "intel_fbdev_fb.h" > > struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int > size) > @@ -51,39 +50,6 @@ void intel_fbdev_fb_bo_destroy(struct drm_gem_object *obj) > drm_gem_object_put(obj); > } > > -struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_device *drm, > - struct drm_mode_fb_cmd2 > *mode_cmd) > -{ > - struct drm_framebuffer *fb; > - struct drm_gem_object *obj; > - int size; > - > - size = mode_cmd->pitches[0] * mode_cmd->height; > - size = PAGE_ALIGN(size); > - > - obj = intel_fbdev_fb_bo_create(drm, size); > - if (IS_ERR(obj)) { > - fb = ERR_CAST(obj); > - goto err; > - } > - > - fb = intel_framebuffer_create(obj, > - drm_get_format_info(drm, > - > mode_cmd->pixel_format, > - > mode_cmd->modifier[0]), > - mode_cmd); > - if (IS_ERR(fb)) { > - intel_fbdev_fb_bo_destroy(obj); > - goto err; > - } > - > - drm_gem_object_put(obj); > - > - return to_intel_framebuffer(fb); > -err: > - return ERR_CAST(fb); > -} > - > int intel_fbdev_fb_fill_info(struct intel_display *display, struct fb_info > *info, > struct drm_gem_object *_obj, struct i915_vma *vma) > { > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > index 8b6214b0ad0e..3b7b59d664b5 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > @@ -15,8 +15,6 @@ struct intel_display; > > struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int > size); > void intel_fbdev_fb_bo_destroy(struct drm_gem_object *obj); > -struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_device *drm, > - struct drm_mode_fb_cmd2 > *mode_cmd); > int intel_fbdev_fb_fill_info(struct intel_display *display, struct fb_info > *info, > struct drm_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 defbab3df55b..37681503edb1 100644 > --- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c > +++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c > @@ -7,7 +7,6 @@ > > #include "intel_display_core.h" > #include "intel_display_types.h" > -#include "intel_fb.h" > #include "intel_fbdev_fb.h" > #include "xe_bo.h" > #include "xe_ttm_stolen_mgr.h" > @@ -54,40 +53,6 @@ void intel_fbdev_fb_bo_destroy(struct drm_gem_object *obj) > xe_bo_unpin_map_no_vm(gem_to_xe_bo(obj)); > } > > -struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_device *drm, > - struct drm_mode_fb_cmd2 > *mode_cmd) > -{ > - struct drm_framebuffer *fb; > - struct drm_gem_object *obj; > - int size; > - > - size = mode_cmd->pitches[0] * mode_cmd->height; > - size = PAGE_ALIGN(size); > - > - obj = intel_fbdev_fb_bo_create(drm, size); > - if (IS_ERR(obj)) { > - fb = ERR_CAST(obj); > - goto err; > - } > - > - fb = intel_framebuffer_create(obj, > - drm_get_format_info(drm, > - > mode_cmd->pixel_format, > - > mode_cmd->modifier[0]), > - mode_cmd); > - if (IS_ERR(fb)) { > - intel_fbdev_fb_bo_destroy(obj); > - goto err; > - } > - > - drm_gem_object_put(obj); > - > - return to_intel_framebuffer(fb); > - > -err: > - return ERR_CAST(fb); > -} > - > int intel_fbdev_fb_fill_info(struct intel_display *display, struct fb_info > *info, > struct drm_gem_object *_obj, struct i915_vma *vma) > { > -- > 2.47.3 -- Ville Syrjälä Intel