Re: [PATCH 10/10] drm/i915: Reject BIOS FB rotation in common code

Jani Nikula
2026-04-10T16:01:34Z

On Fri, 10 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Reject 90/270 degree rotated BIOS framebuffers in common
> code. Currently skl_get_initial_plane_config() already rejects
> these, but we may want to implement the missing parts there
> so that skl_get_initial_plane_config() could be reused for
> general plane state verification purposes.
>
> 90/270 degree rotated framebuffers require two completely
> separate GGTT mappings (0 degree for the CPU, 270 degree
> for the display engine), and the rest of the BIOS FB
> takeover code is not prepared for that.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
> drivers/gpu/drm/i915/display/intel_initial_plane.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_initial_plane.c b/drivers/gpu/drm/i915/display/intel_initial_plane.c
> index e3d1b2d1669c..0e5cd45f01cc 100644
> --- a/drivers/gpu/drm/i915/display/intel_initial_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_initial_plane.c
> @@ -3,6 +3,7 @@
>
> #include <linux/iopoll.h>
>
> +#include <drm/drm_blend.h>
> #include <drm/drm_print.h>
> #include <drm/intel/display_parent_interface.h>
>
> @@ -101,6 +102,15 @@ intel_alloc_initial_plane_obj(struct intel_display *display,
> return NULL;
> }
>
> + /*
> + * Would need to preserve the 270 degree rotated
> + * GGTT mapping used by the display hardware.
> + */
> + if (drm_rotation_90_or_270(plane_config->rotation)) {
> + drm_dbg_kms(display->drm, "90/270 degree rotation not supported for initial FB\n");
> + return NULL;
> + }
> +
> return display->parent->initial_plane->alloc_obj(display->drm, plane_config);
> }

--
Jani Nikula, Intel