video: Add helpers for decoding screen_info
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 12 Feb 2024 09:06:09 +0000 (10:06 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 14 Feb 2024 09:09:13 +0000 (10:09 +0100)
commit75fa9b7e375e35739663cde0252d31e586c6314a
treebc45e1a78af8af4e11e661af408c751bf3618f47
parent6b1f93ea345947c94bf3a7a6e668a2acfd310918
video: Add helpers for decoding screen_info

The plain values as stored in struct screen_info need to be decoded
before being used. Add helpers that decode the type of video output
and the framebuffer I/O aperture.

Old or non-x86 systems may not set the type of video directly, but
only indicate the presence by storing 0x01 in orig_video_isVGA. The
decoding logic in screen_info_video_type() takes this into account.
It then follows similar code in vgacon's vgacon_startup() to detect
the video type from the given values.

A call to screen_info_resources() returns all known resources of the
given screen_info. The resources' values have been taken from existing
code in vgacon and vga16fb. These drivers can later be converted to
use the new interfaces.

v2:
* return ssize_t from screen_info_resources()
* don't call __screen_info_has_lfb() unnecessarily

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240212090736.11464-2-tzimmermann@suse.de
drivers/firmware/Kconfig
drivers/video/Kconfig
drivers/video/Makefile
drivers/video/screen_info_generic.c [new file with mode: 0644]
include/linux/screen_info.h