* [PATCH 1/2] drm/vesadrm: Match framebuffer device by id instead of driver name
@ 2025-08-16 15:34 Yao Zi
2025-08-16 15:34 ` [PATCH 2/2] drm/efidrm: " Yao Zi
2025-08-18 7:17 ` [PATCH 1/2] drm/vesadrm: " Thomas Zimmermann
0 siblings, 2 replies; 4+ messages in thread
From: Yao Zi @ 2025-08-16 15:34 UTC (permalink / raw)
To: Thomas Zimmermann, Javier Martinez Canillas, Maarten Lankhorst,
Maxime Ripard, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel, 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.
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.
Let's rename the driver as "vesa-display" to avoid possible confusion.
A platform_device_id table is introduced to match "vesa-framebuffer"
devices.
Signed-off-by: Yao Zi <ziyao@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,
};
--
2.50.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] drm/efidrm: Match framebuffer device by id instead of driver name
2025-08-16 15:34 [PATCH 1/2] drm/vesadrm: Match framebuffer device by id instead of driver name Yao Zi
@ 2025-08-16 15:34 ` Yao Zi
2025-08-18 7:19 ` Thomas Zimmermann
2025-08-18 7:17 ` [PATCH 1/2] drm/vesadrm: " Thomas Zimmermann
1 sibling, 1 reply; 4+ messages in thread
From: Yao Zi @ 2025-08-16 15:34 UTC (permalink / raw)
To: Thomas Zimmermann, Javier Martinez Canillas, Maarten Lankhorst,
Maxime Ripard, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel, Yao Zi
Currently the driver matches the platform framebuffer device registered
by sysfb through driver name, "efi-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_EFI,
that acts as a consumer of efi-framebuffer as well. They cannot be both
loaded into the kernel.
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 efidrm could serve as a solution for running DRM-specific userspace
programs on platforms with only UEFI framebuffer supplied.
Let's rename the driver as "efi-display" to avoid possible confusion.
A platform_device_id table is introduced to match "efi-framebuffer"
devices.
Signed-off-by: Yao Zi <ziyao@disroot.org>
---
drivers/gpu/drm/sysfb/efidrm.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sysfb/efidrm.c b/drivers/gpu/drm/sysfb/efidrm.c
index 1883c4a8604c..7f76e8961788 100644
--- a/drivers/gpu/drm/sysfb/efidrm.c
+++ b/drivers/gpu/drm/sysfb/efidrm.c
@@ -3,6 +3,7 @@
#include <linux/aperture.h>
#include <linux/efi.h>
#include <linux/limits.h>
+#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/screen_info.h>
@@ -375,10 +376,17 @@ static void efidrm_remove(struct platform_device *pdev)
drm_dev_unplug(dev);
}
+static const struct platform_device_id efidrm_platform_id[] = {
+ { "efi-framebuffer" },
+ { },
+};
+MODULE_DEVICE_TABLE(platform, efidrm_platform_id);
+
static struct platform_driver efidrm_platform_driver = {
.driver = {
- .name = "efi-framebuffer",
+ .name = "efi-display",
},
+ .id_table = efidrm_platform_id,
.probe = efidrm_probe,
.remove = efidrm_remove,
};
--
2.50.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] drm/vesadrm: Match framebuffer device by id instead of driver name
2025-08-16 15:34 [PATCH 1/2] drm/vesadrm: Match framebuffer device by id instead of driver name Yao Zi
2025-08-16 15:34 ` [PATCH 2/2] drm/efidrm: " Yao Zi
@ 2025-08-18 7:17 ` Thomas Zimmermann
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Zimmermann @ 2025-08-18 7:17 UTC (permalink / raw)
To: Yao Zi, Javier Martinez Canillas, Maarten Lankhorst,
Maxime Ripard, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel
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 <ziyao@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)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] drm/efidrm: Match framebuffer device by id instead of driver name
2025-08-16 15:34 ` [PATCH 2/2] drm/efidrm: " Yao Zi
@ 2025-08-18 7:19 ` Thomas Zimmermann
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Zimmermann @ 2025-08-18 7:19 UTC (permalink / raw)
To: Yao Zi, Javier Martinez Canillas, Maarten Lankhorst,
Maxime Ripard, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel
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, "efi-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_EFI,
> that acts as a consumer of efi-framebuffer as well. They cannot be both
> loaded into the kernel.
>
> 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 efidrm could serve as a solution for running DRM-specific userspace
> programs on platforms with only UEFI framebuffer supplied.
>
> Let's rename the driver as "efi-display" to avoid possible confusion.
> A platform_device_id table is introduced to match "efi-framebuffer"
> devices.
NAK, please see the rsp vesa-framebuffer patch for the rational
https://lore.kernel.org/dri-devel/d74f16f0-9615-4816-a49c-efa35b9ab344@suse.de/
Best regards
Thomas
>
> Signed-off-by: Yao Zi <ziyao@disroot.org>
> ---
> drivers/gpu/drm/sysfb/efidrm.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/sysfb/efidrm.c b/drivers/gpu/drm/sysfb/efidrm.c
> index 1883c4a8604c..7f76e8961788 100644
> --- a/drivers/gpu/drm/sysfb/efidrm.c
> +++ b/drivers/gpu/drm/sysfb/efidrm.c
> @@ -3,6 +3,7 @@
> #include <linux/aperture.h>
> #include <linux/efi.h>
> #include <linux/limits.h>
> +#include <linux/mod_devicetable.h>
> #include <linux/platform_device.h>
> #include <linux/screen_info.h>
>
> @@ -375,10 +376,17 @@ static void efidrm_remove(struct platform_device *pdev)
> drm_dev_unplug(dev);
> }
>
> +static const struct platform_device_id efidrm_platform_id[] = {
> + { "efi-framebuffer" },
> + { },
> +};
> +MODULE_DEVICE_TABLE(platform, efidrm_platform_id);
> +
> static struct platform_driver efidrm_platform_driver = {
> .driver = {
> - .name = "efi-framebuffer",
> + .name = "efi-display",
> },
> + .id_table = efidrm_platform_id,
> .probe = efidrm_probe,
> .remove = efidrm_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)
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-08-18 7:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-16 15:34 [PATCH 1/2] drm/vesadrm: Match framebuffer device by id instead of driver name Yao Zi
2025-08-16 15:34 ` [PATCH 2/2] drm/efidrm: " Yao Zi
2025-08-18 7:19 ` Thomas Zimmermann
2025-08-18 7:17 ` [PATCH 1/2] drm/vesadrm: " Thomas Zimmermann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).