summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2026-05-12 00:41:10 +0300
committerMaarten Lankhorst <dev@lankhorst.se>2026-07-14 15:16:33 +0200
commitb2a2c620404ecb3b9a9706bf438d788ca87a41ac (patch)
treef5264ebb04834830933baeb8e3105697cd5e4b81
parent466fa6902e6a6f52e9693f6fb3102179e4272cc1 (diff)
drm/i915/fbdev: Extract bios_fb_ok()
Pull the "is the BIOS FB OK?" checks to a helper function. We'll add other relevant checks there later. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Link: https://patch.msgid.link/20260511214122.8468-3-ville.syrjala@linux.intel.com Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
-rw-r--r--drivers/gpu/drm/i915/display/intel_fbdev.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index c8d4e3a5ce6b..bc267776106e 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -262,6 +262,23 @@ err:
}
+static bool bios_fb_ok(const struct intel_framebuffer *fb,
+ const struct drm_fb_helper_surface_size *sizes)
+{
+ struct intel_display *display = to_intel_display(fb->base.dev);
+ int width = fb->base.width;
+ int height = fb->base.height;
+
+ if (sizes->fb_width > width || sizes->fb_height > height) {
+ drm_dbg_kms(display->drm,
+ "BIOS fb too small (%dx%d), we require (%dx%d), releasing it\n",
+ width, height, sizes->fb_width, sizes->fb_height);
+ return false;
+ }
+
+ return true;
+}
+
int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
struct drm_fb_helper_surface_size *sizes)
{
@@ -279,14 +296,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
ifbdev->fb = NULL;
- if (fb &&
- (sizes->fb_width > fb->base.width ||
- sizes->fb_height > fb->base.height)) {
- drm_dbg_kms(display->drm,
- "BIOS fb too small (%dx%d), we require (%dx%d),"
- " releasing it\n",
- fb->base.width, fb->base.height,
- sizes->fb_width, sizes->fb_height);
+ if (fb && !bios_fb_ok(fb, sizes)) {
drm_framebuffer_put(&fb->base);
fb = NULL;
}