config: fix GPUDevice fail when AutoAddGPU off + BusID

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@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Qiang Yu 2016-09-08 21:24:58 +08:00 committed by Adam Jackson
parent ca8d88e503
commit ea91db4b83
1 changed files with 15 additions and 3 deletions

View File

@ -426,6 +426,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)
{
@ -458,9 +471,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