summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2026-02-17 16:56:21 +0100
committerThomas Zimmermann <tzimmermann@suse.de>2026-02-20 14:38:24 +0100
commita29a1f0ec8d69ee917a9d4c84b844df0decff0ef (patch)
tree991d11fc4d9e50cff28951fd79bbb09105413562 /include/linux
parentb3728905dca29ea4e00c0587f27c3a637b13b2d8 (diff)
drm/sysfb: corebootdrm: Add DRM driver for coreboot framebuffers
Add corebootdrm, a DRM driver for coreboot framebuffers. The driver supports a pre-initialized framebuffer with various packed RGB formats. The driver code is fairly small and uses the same logic as the other sysfb drivers. Most of the implementation comes from existing sysfb helpers. Until now, coreboot relied on simpledrm or simplefb for boot-up graphics output. Initialize the platform device for corebootdrm in the same place in framebuffer_probe(). With a later commit, the simple-framebuffer should be removed. v4: - sort include statements (Tzung-Bi) v3: - comment on _HAS_LFB semantics (Tzung-Bi) - fix typo in commit description (Tzung-Bi) - comment on simple-framebuffer being obsolete for coreboot v2: - reimplement as platform driver - limit resources and mappings to known framebuffer memory; no page alignment - create corebootdrm device from coreboot framebuffer code Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Acked-by: Julius Werner <jwerner@chromium.org> Acked-by: Tzung-Bi Shih <tzungbi@kernel.org> # coreboot Link: https://patch.msgid.link/20260217155836.96267-12-tzimmermann@suse.de
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/coreboot.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/coreboot.h b/include/linux/coreboot.h
index 5746b99a070d..885da106fee3 100644
--- a/include/linux/coreboot.h
+++ b/include/linux/coreboot.h
@@ -13,6 +13,7 @@
#define _LINUX_COREBOOT_H
#include <linux/compiler_attributes.h>
+#include <linux/stddef.h>
#include <linux/types.h>
typedef __aligned(4) u64 cb_u64;
@@ -66,4 +67,11 @@ struct lb_framebuffer {
u8 reserved_mask_size;
};
+/*
+ * True if the coreboot-provided data is large enough to hold information
+ * on the linear framebuffer. False otherwise.
+ */
+#define LB_FRAMEBUFFER_HAS_LFB(__fb) \
+ ((__fb)->size >= offsetofend(struct lb_framebuffer, reserved_mask_size))
+
#endif /* _LINUX_COREBOOT_H */