On Thu, Sep 18, 2025 at 11:40:55AM +0300, Jani Nikula wrote: > Separate fbdev bo creation into a separate function > intel_fbdev_fb_bo_create(). > > 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_fb.c | 33 +++++++++++++------ > drivers/gpu/drm/i915/display/intel_fbdev_fb.h | 1 + > 2 files changed, 24 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > index 685612e6afc5..bfd05fd34348 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c > @@ -13,17 +13,11 @@ > #include "intel_fb.h" > #include "intel_fbdev_fb.h" > > -struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_device *drm, > - struct drm_mode_fb_cmd2 > *mode_cmd) > +struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int > size) > { > struct intel_display *display = to_intel_display(drm); > struct drm_i915_private *dev_priv = to_i915(drm); > - struct drm_framebuffer *fb; > struct drm_i915_gem_object *obj; > - int size; > - > - size = mode_cmd->pitches[0] * mode_cmd->height; > - size = PAGE_ALIGN(size); > > obj = ERR_PTR(-ENODEV); > if (HAS_LMEM(dev_priv)) { > @@ -49,17 +43,36 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct > drm_device *drm, > return ERR_PTR(-ENOMEM); > } > > - fb = intel_framebuffer_create(intel_bo_to_drm_bo(obj), > + return &obj->base; > +} > + > +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)) { > - i915_gem_object_put(obj); > + drm_gem_object_put(obj); > goto err; > } > > - i915_gem_object_put(obj); > + drm_gem_object_put(obj); > > return to_intel_framebuffer(fb); > err: > diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > index 83454ffbf79c..6a4ba40d5831 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h > @@ -13,6 +13,7 @@ struct fb_info; > struct i915_vma; > struct intel_display; > > +struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int > size); > 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, > -- > 2.47.3 -- Ville Syrjälä Intel