Linux-PCI Archive mirror
 help / color / mirror / Atom feed
From: "Mario Limonciello (AMD)" <superm1@kernel.org>
To: David Airlie <airlied@gmail.com>, Bjorn Helgaas <bhelgaas@google.com>
Cc: "Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Simona Vetter" <simona@ffwll.ch>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	dri-devel@lists.freedesktop.org (open list:DRM DRIVERS),
	linux-kernel@vger.kernel.org (open list),
	linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM),
	"Daniel Dadap" <ddadap@nvidia.com>,
	"Mario Limonciello" <superm1@kernel.org>
Subject: [PATCH v10 0/4] Adjust fbcon console device detection
Date: Mon, 11 Aug 2025 11:26:02 -0500	[thread overview]
Message-ID: <20250811162606.587759-1-superm1@kernel.org> (raw)

Systems with more than one GPU userspace doesn't know which one to be
used to treat as primary.  The concept of primary is important to be
able to decide which GPU is used for display and  which is used for
rendering.  If it's guessed wrong then both GPUs will be kept awake
burning a lot of power.

Historically it would use the "boot_vga" attribute but this isn't
present on modern GPUs.

This series started out as changes to VGA arbiter to try to handle a case
of a system with 2 GPUs that are not VGA devices and avoid changes to
userspace.  This was discussed but decided not to overload the VGA arbiter
for non VGA devices.

Instead move the x86 specific detection of framebuffer resources into x86
specific code that the fbcon can use to properly identify the primary
device. This code is still called from the VGA arbiter, and the logic does
not change there. To avoid regression default to VGA arbiter and only fall
back to looking up with x86 specific detection method.

In order for userspace to also be able to discover which device was the
primary video display device create a new sysfs file 'boot_display'.

A matching userspace implementation for this file is available here:
Link: https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/merge_requests/39
Link: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2038

Dave Airlie has been pinged for a comment on this approach.
Dave had suggested in the past [1]:

"
 But yes if that doesn't work, then maybe we need to make the boot_vga
 flag mean boot_display_gpu, and fix it in the kernel
"

This was one of the approached tried in earlier revisions and it was
rejected in favor of creating a new sysfs file (which is what this
version does).

As the dependendent symbols are in 6.17-rc1 this can merge through
drm-misc-next.

Link: https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/merge_requests/37#note_2938602 [1]

---
v10:
 * Add patches that didn't merge to v6.17-rc1 in
 * Move sysfs file to drm ownership

Mario Limonciello (AMD) (4):
  Fix access to video_is_primary_device() when compiled without
    CONFIG_VIDEO
  PCI/VGA: Replace vga_is_firmware_default() with a screen info check
  fbcon: Use screen info to find primary device
  DRM: Add a new 'boot_display' attribute

 Documentation/ABI/testing/sysfs-class-drm |  8 +++++
 arch/parisc/include/asm/video.h           |  2 +-
 arch/sparc/include/asm/video.h            |  2 ++
 arch/x86/include/asm/video.h              |  2 ++
 arch/x86/video/video-common.c             | 25 +++++++++++++-
 drivers/gpu/drm/drm_sysfs.c               | 41 +++++++++++++++++++++++
 drivers/pci/vgaarb.c                      | 31 +++--------------
 7 files changed, 83 insertions(+), 28 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-class-drm


base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
-- 
2.43.0


             reply	other threads:[~2025-08-11 16:26 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-11 16:26 Mario Limonciello (AMD) [this message]
2025-08-11 16:26 ` [PATCH v10 1/4] Fix access to video_is_primary_device() when compiled without CONFIG_VIDEO Mario Limonciello (AMD)
2025-08-11 16:26 ` [PATCH v10 2/4] PCI/VGA: Replace vga_is_firmware_default() with a screen info check Mario Limonciello (AMD)
2025-09-10 14:33   ` Thomas Zimmermann
2025-10-12 18:23   ` Eric Biggers
2025-10-12 18:37     ` Mario Limonciello
2025-10-12 18:47       ` Eric Biggers
2025-10-12 19:06         ` Mario Limonciello
2025-10-13  7:04           ` Thomas Zimmermann
2025-10-13 20:55     ` Bjorn Helgaas
2025-10-28 22:50       ` Bjorn Helgaas
2025-08-11 16:26 ` [PATCH v10 3/4] fbcon: Use screen info to find primary device Mario Limonciello (AMD)
2025-09-04 20:42   ` Bjorn Helgaas
2025-10-28 10:16   ` Aaron Erhardt
2025-10-28 13:15     ` Mario Limonciello
2025-10-28 16:50       ` Thomas Zimmermann
2025-10-28 21:25         ` Mario Limonciello
2025-08-11 16:26 ` [PATCH v10 4/4] DRM: Add a new 'boot_display' attribute Mario Limonciello (AMD)
2025-09-10 14:28   ` Thomas Zimmermann
2025-09-03  4:42 ` [PATCH v10 0/4] Adjust fbcon console device detection Mario Limonciello
2025-09-04 22:36 ` Mario Limonciello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250811162606.587759-1-superm1@kernel.org \
    --to=superm1@kernel.org \
    --cc=airlied@gmail.com \
    --cc=alexander.deucher@amd.com \
    --cc=bhelgaas@google.com \
    --cc=christian.koenig@amd.com \
    --cc=ddadap@nvidia.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 read-only IMAP folder(s) and NNTP newsgroup(s).