]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/cirrus-qemu: Stricter mode validation
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 28 Mar 2025 09:17:06 +0000 (10:17 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 1 Apr 2025 13:35:12 +0000 (15:35 +0200)
commit1eb4d744fb86199f0f6da9463d83ed3eec2f61bf
treec06aca14c80c75a4797a1490e77f5db384bb536e
parent4bfb389a0136a13f0802eeb5e97a0e76d88f77ae
drm/cirrus-qemu: Stricter mode validation

Implement strict checking of a display mode's minimum scanline
pitch in cirrus_mode_config_mode_valid(). Sort out all modes that
possibly overflow the maximum pitch.

The current validation only tests against a display mode's minimum
requirements for video memory. Only atomic_check later tests against
the pitch limit before programming the framebuffer.

The problem is that user-space compositors do not handle this
gracefully. If atomic_check fails to validate the scanline pitch
and returns an error, the compositor, namely Weston, does nothing
and the display remains stale.

Ruling out display modes that possibly overflow the pitch avoids
this problem. With only 4 MiB of video memory available, this
effectively limits horizontal resolution to 800 pixels. But with
cirrus-qemu being low-end and obsolete, this is probably not an
issue in practice. Better alternatives are available in qemu.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Link: https://lore.kernel.org/r/20250328091821.195061-3-tzimmermann@suse.de
drivers/gpu/drm/tiny/cirrus-qemu.c