From a8ff29c7d258629f6431546ef123460578f36493 Mon Sep 17 00:00:00 2001 From: Daniel Abrecht Date: Sat, 1 Aug 2020 15:20:31 +0000 Subject: [PATCH] Fix Probe method for multiple devices If the old Probe method was used (a device was specifeed in the config using kmsdev), that previousely only worked for one device, and only if no other devices used modesetting. Signed-off-by: Daniel Abrecht --- hw/xfree86/drivers/modesetting/driver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index f1e7d15bd..b286011c0 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -461,7 +461,6 @@ Probe(DriverPtr drv, int flags) GDevPtr *devSections; Bool foundScreen = FALSE; const char *dev; - ScrnInfoPtr scrn = NULL; /* For now, just bail out for PROBE_DETECT. */ if (flags & PROBE_DETECT) @@ -476,12 +475,13 @@ Probe(DriverPtr drv, int flags) } for (i = 0; i < numDevSections; i++) { + ScrnInfoPtr scrn = NULL; int entity_num; + dev = xf86FindOptionValue(devSections[i]->options, "kmsdev"); if (probe_hw(dev, NULL)) { - - entity_num = xf86ClaimFbSlot(drv, 0, devSections[i], TRUE); - scrn = xf86ConfigFbEntity(scrn, 0, entity_num, NULL, NULL, NULL, NULL); + entity_num = xf86ClaimNoSlot(drv, 0, devSections[i], TRUE); + scrn = xf86ConfigFbEntity(NULL, devSections[i]->myScreenSection->device != devSections[i] ? XF86_ALLOCATE_GPU_SCREEN : 0, entity_num, NULL, NULL, NULL, NULL); } if (scrn) {