On Tue, 12 May 2026, Ville Syrjala <[email protected]> wrote:
> From: Ville Syrjälä <[email protected]>
>
> Respect the user's choice of depth/bpp for the fbdev framebuffer
> and throw out the fb we inherited from the BIOS if it doesn't
> match.

Seems reasonable, although I admit I might not be aware of all the
consequences here.

Reviewed-by: Jani Nikula <[email protected]>

>
> Signed-off-by: Ville Syrjälä <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_fbdev.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c 
> b/drivers/gpu/drm/i915/display/intel_fbdev.c
> index f9c135400453..3754810cc187 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
> @@ -268,6 +268,8 @@ static bool bios_fb_ok(const struct intel_framebuffer *fb,
>       struct intel_display *display = to_intel_display(fb->base.dev);
>       int width = fb->base.width;
>       int height = fb->base.height;
> +     int depth = fb->base.format->depth;
> +     int bpp = fb->base.format->cpp[0] * 8;
>  
>       if (sizes->fb_width > width || sizes->fb_height > height) {
>               drm_dbg_kms(display->drm,
> @@ -276,6 +278,13 @@ static bool bios_fb_ok(const struct intel_framebuffer 
> *fb,
>               return false;
>       }
>  
> +     if (sizes->surface_depth != depth || sizes->surface_bpp != bpp) {
> +             drm_dbg_kms(display->drm,
> +                         "BIOS fb using wrong depth/bpp (%d/%d), we require 
> (%d/%d), releasing it\n",
> +                         depth, bpp, sizes->surface_depth, 
> sizes->surface_bpp);
> +             return false;
> +     }
> +
>       return true;
>  }

-- 
Jani Nikula, Intel

Reply via email to