[PATCH v2 0/6] PCI/VGA: Look at all PCI display devices in VGA arbiter
Mario Limonciello
superm1 at kernel.org
Tue Jun 17 17:59:04 UTC 2025
From: Mario Limonciello <mario.limonciello at amd.com>
On a mobile system with an AMD integrated GPU + NVIDIA discrete GPU the
AMD GPU is not being selected by some desktop environments for any
rendering tasks. This is because the neither GPU is being treated as
"boot_vga" but that is what some environments use to select a GPU [1].
The VGA arbiter driver only looks at devices that report as PCI display
VGA class devices. Neither GPU on the system is a display VGA class
device:
c5:00.0 3D controller: NVIDIA Corporation Device 2db9 (rev a1)
c6:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 150e (rev d1)
This series introduces a new helper to find PCI display class devices
and adjusts various places in the kernel to use it.
It also adjust the VGA arbiter code to consider all these devices as
the VGA arbiter code does manage to select the correct device by looking
at which device is using the firmware framebuffer.
v1->v2:
* Split helper to it's own patch
* Add patches to use helper elsewhere in kernel
* Simplify logic instead of making more passes
Mario Limonciello (6):
PCI: Add helper for checking if a PCI device is a display controller
vfio/pci: Use pci_is_display()
vga_switcheroo: Use pci_is_display()
iommu/vt-d: Use pci_is_display()
ALSA: hda: Use pci_is_display()
vgaarb: Look at all PCI display devices in VGA arbiter
drivers/gpu/vga/vga_switcheroo.c | 2 +-
drivers/iommu/intel/iommu.c | 2 +-
drivers/pci/pci-sysfs.c | 2 +-
drivers/pci/vgaarb.c | 8 ++++----
drivers/vfio/pci/vfio_pci_igd.c | 3 +--
include/linux/pci.h | 15 +++++++++++++++
sound/hda/hdac_i915.c | 2 +-
sound/pci/hda/hda_intel.c | 4 ++--
8 files changed, 26 insertions(+), 12 deletions(-)
base-commit: e04c78d86a9699d136910cfc0bdcf01087e3267e
--
2.43.0
More information about the dri-devel
mailing list