[PATCH xserver] config: fix GPUDevice fail when AutoAddGPU off + BusID
Qiang Yu
Qiang.Yu at amd.com
Thu Sep 8 13:24:58 UTC 2016
This fix is for the following xorg.conf can work:
Section "ServerFlags"
Option "AutoAddGPU" "off"
EndSection
Section "Device"
Identifier "Amd"
Driver "ati"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Intel"
Driver "modesetting"
BusID "pci:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Intel"
GPUDevice "Amd"
EndSection
Without AutoAddGPU off, modesetting DDX will also be loaded
for GPUDevice.
Signed-off-by: Qiang Yu <Qiang.Yu at amd.com>
---
hw/xfree86/common/xf86platformBus.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
index 96895a6..03fd931 100644
--- a/hw/xfree86/common/xf86platformBus.c
+++ b/hw/xfree86/common/xf86platformBus.c
@@ -418,6 +418,19 @@ probeSingleDevice(struct xf86_platform_device *dev, DriverPtr drvp, GDevPtr gdev
return foundScreen;
}
+static Bool
+isGPUDevice(GDevPtr gdev)
+{
+ int i;
+
+ for (i = 0; i < gdev->myScreenSection->num_gpu_devices; i++) {
+ if (gdev == gdev->myScreenSection->gpu_devices[i])
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
int
xf86platformProbeDev(DriverPtr drvp)
{
@@ -450,9 +463,8 @@ xf86platformProbeDev(DriverPtr drvp)
if (j == xf86_num_platform_devices)
continue;
- foundScreen = probeSingleDevice(&xf86_platform_devices[j], drvp, devList[i], 0);
- if (!foundScreen)
- continue;
+ foundScreen = probeSingleDevice(&xf86_platform_devices[j], drvp, devList[i],
+ isGPUDevice(devList[i]) ? PLATFORM_PROBE_GPU_SCREEN : 0);
}
/* if autoaddgpu devices is enabled then go find any unclaimed platform
--
2.7.4
More information about the xorg-devel
mailing list