[PATCH xserver] config: fix GPUDevice fail when AutoAddGPU off + BusID
Michel Dänzer
michel at daenzer.net
Wed Sep 14 06:53:03 UTC 2016
On 08/09/16 10:24 PM, Qiang Yu wrote:
> 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);
The last line is a bit long, maybe move "PLATFORM_PROBE_GPU_SCREEN : 0"
to the next line. Either way,
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the xorg-devel
mailing list