libdrm's busid matching for the legacy three-integer bus string format simply ignores the domain number, rather than what we were doing here of packing the domain into the bus number. Whatever, just use the existing code to build a busid string, since that gets the domain right.
Signed-off-by: Adam Jackson <[email protected]> --- hw/xfree86/drivers/modesetting/driver.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index f371198a9..21e75c762 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -851,13 +851,11 @@ ms_get_drm_master_fd(ScrnInfoPtr pScrn) PciInfo = xf86GetPciInfoForEntity(ms->pEnt->index); if (PciInfo) { - BusID = XNFalloc(64); - sprintf(BusID, "PCI:%d:%d:%d", - ((PciInfo->domain << 8) | PciInfo->bus), - PciInfo->dev, PciInfo->func); + if ((BusID = ms_DRICreatePCIBusID(PciInfo)) != NULL) { + ms->fd = drmOpen(NULL, BusID); + free(BusID); + } } - ms->fd = drmOpen(NULL, BusID); - free(BusID); } else #endif -- 2.13.0 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
