Re: [PATCH v3 7/7] fbcon: Make a symlink to the device selected as primary

From: Thomas Zimmermann
Date: Fri Jun 20 2025 - 04:47:53 EST


Hi

Am 20.06.25 um 04:49 schrieb Mario Limonciello:
From: Mario Limonciello <mario.limonciello@xxxxxxx>

Knowing which device is the primary device can be useful for userspace
to make decisions on which device to start a display server.

Create a link to that device called 'primary_device'.

Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
---
drivers/video/fbdev/core/fbcon.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 2df48037688d1..46f21570723e5 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c

You cannot rely on this, as fbcon might be disabled entirely.

Best regards
Thomas

@@ -2934,7 +2934,7 @@ static void fbcon_select_primary(struct fb_info *info)
{
if (!map_override && primary_device == -1 &&
video_is_primary_device(info->device)) {
- int i;
+ int i, r;
printk(KERN_INFO "fbcon: %s (fb%i) is primary device\n",
info->fix.id, info->node);
@@ -2949,6 +2949,10 @@ static void fbcon_select_primary(struct fb_info *info)
first_fb_vc + 1, last_fb_vc + 1);
info_idx = primary_device;
}
+ r = sysfs_create_link(&fbcon_device->kobj, &info->device->kobj,
+ "primary_device");
+ if (r)
+ pr_err("fbcon: Failed to link to primary device: %d\n", r);
}
}
@@ -3376,6 +3380,10 @@ void __init fb_console_init(void)
void __exit fb_console_exit(void)
{
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
+ if (primary_device != -1)
+ sysfs_remove_link(&fbcon_device->kobj, "primary_device");
+#endif
#ifdef CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER
console_lock();
if (deferred_takeover)

--
--
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)