[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250620024943.3415685-8-superm1@kernel.org>
Date: Thu, 19 Jun 2025 21:49:43 -0500
From: Mario Limonciello <superm1@...nel.org>
To: Bjorn Helgaas <bhelgaas@...gle.com>
Cc: Alex Deucher <alexander.deucher@....com>,
Christian König <christian.koenig@....com>,
David Airlie <airlied@...il.com>,
Simona Vetter <simona@...ll.ch>,
Lukas Wunner <lukas@...ner.de>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Woodhouse <dwmw2@...radead.org>,
Lu Baolu <baolu.lu@...ux.intel.com>,
Joerg Roedel <joro@...tes.org>,
Will Deacon <will@...nel.org>,
Robin Murphy <robin.murphy@....com>,
Alex Williamson <alex.williamson@...hat.com>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
dri-devel@...ts.freedesktop.org (open list:DRM DRIVERS),
linux-kernel@...r.kernel.org (open list),
iommu@...ts.linux.dev (open list:INTEL IOMMU (VT-d)),
linux-pci@...r.kernel.org (open list:PCI SUBSYSTEM),
kvm@...r.kernel.org (open list:VFIO DRIVER),
linux-sound@...r.kernel.org (open list:SOUND),
Daniel Dadap <ddadap@...dia.com>,
Mario Limonciello <mario.limonciello@....com>
Subject: [PATCH v3 7/7] fbcon: Make a symlink to the device selected as primary
From: Mario Limonciello <mario.limonciello@....com>
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@....com>
---
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
@@ -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)
--
2.43.0
Powered by blists - more mailing lists