Hi
Am 16.08.25 um 17:34 schrieb Yao Zi:
Currently the driver matches the platform framebuffer device registered
by sysfb through driver name, "vesa-framebuffer", this is a little
confusing since this driver registers a DRM device, instead of a
framebuffer.
Moreover, we have a driver with the same name, enabled by
CONFIG_FB_VESA, that acts as a consumer of vesa-framebuffer as well.
They cannot be both loaded into the kernel.
That is intentional and desired. Please pick one of the drivers and use
that. Vesafb is obsolete, but it's slightly smaller footprint might make
s difference on ancient systems. For anything new, vesadrm is a better
choice.
Making these two drivers coexist is sometimes useful, e.g., a
distribution may want to build fbcon into the kernel image for debugging
purpose, but keep the whole DRM subsystem enabled as module. In such
case vesadrm could serve as a solution for running DRM-specific
userspace programs on platforms with only VESA VBIOS available.
You can do debugging with vesadrm as well. We also have DRM-based panic
output if you just want the stack trace. If that's not enough, please
build better debugging infrastructure for DRM.
Let's rename the driver as "vesa-display" to avoid possible confusion.
A platform_device_id table is introduced to match "vesa-framebuffer"
devices.
NAK.
Best regards
Thomas
Signed-off-by: Yao Zi <zi...@disroot.org>
---
drivers/gpu/drm/sysfb/vesadrm.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/vesadrm.c b/drivers/gpu/drm/sysfb/vesadrm.c
index 90615e9ac86b..16635dc3d5cc 100644
--- a/drivers/gpu/drm/sysfb/vesadrm.c
+++ b/drivers/gpu/drm/sysfb/vesadrm.c
@@ -3,6 +3,7 @@
#include <linux/aperture.h>
#include <linux/ioport.h>
#include <linux/limits.h>
+#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/screen_info.h>
@@ -517,10 +518,17 @@ static void vesadrm_remove(struct platform_device *pdev)
drm_dev_unplug(dev);
}
+static const struct platform_device_id vesadrm_platform_id[] = {
+ { "vesa-framebuffer" },
+ { },
+};
+MODULE_DEVICE_TABLE(platform, vesadrm_platform_id);
+
static struct platform_driver vesadrm_platform_driver = {
.driver = {
- .name = "vesa-framebuffer",
+ .name = "vesa-display",
},
+ .id_table = vesadrm_platform_id,
.probe = vesadrm_probe,
.remove = vesadrm_remove,
};
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)