]> git.ipfire.org Git - thirdparty/linux.git/commit
efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck
authorTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Mon, 8 Dec 2025 19:39:25 +0000 (20:39 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 16 Dec 2025 13:12:44 +0000 (14:12 +0100)
commitc7c7eb5ed5a3896e57019f7b33e3b7dcb4ab73b4
tree0bc729674c7e68c31a9b91514c5fc88971bc68d2
parent7f2f1fd6fc050be874afa9eb52a0ff974f379869
efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck

Valve Steam Deck has a 800x1280 portrait screen installed in a landscape
orientation. The firmware offers a software-rotated 1280x800 mode, which
GRUB can be made to switch to when displaying a boot menu. If this mode
was selected frame buffer drivers will see this fake mode and fbcon
rendering will be corrupted.

Let us therefore add a selective quirk inside the current "swap with and
height" handling, which will detect this exact mode and fix it up back to
the native one.

This will allow the DRM-based framebuffer drivers to detect the correct
mode, apply the existing panel orientation quirk, and render the console
in landscape mode with no corruption.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Melissa Wen <mwen@igalia.com>
Cc: linux-efi@vger.kernel.org
Tested-by: Melissa Wen <mwen@igalia.com> # v3
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
[ardb: use local var to refer to screen_info]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/sysfb_efi.c