Pretty much just ported what radeon does here.
Reported-by: Mark Kettenis <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
---
hw/xfree86/drivers/modesetting/driver.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/hw/xfree86/drivers/modesetting/driver.c
b/hw/xfree86/drivers/modesetting/driver.c
index 00f966c..2ca65fb 100644
--- a/hw/xfree86/drivers/modesetting/driver.c
+++ b/hw/xfree86/drivers/modesetting/driver.c
@@ -346,6 +346,9 @@ ms_pci_probe(DriverPtr driver,
devpath = xf86FindOptionValue(devSection->options, "kmsdev");
if (probe_hw_pci(devpath, dev)) {
+ DevUnion *pPriv;
+ EntityInfoPtr pEnt;
+
ms_setup_scrn_hooks(scrn);
xf86DrvMsg(scrn->scrnIndex, X_CONFIG,
@@ -353,6 +356,25 @@ ms_pci_probe(DriverPtr driver,
dev->bus, dev->domain, dev->dev, dev->func);
xf86DrvMsg(scrn->scrnIndex, X_INFO,
"using %s\n", devpath ? devpath : "default device");
+ pEnt = xf86GetEntityInfo(entity_num);
+
+ {
+ xf86SetEntitySharable(entity_num);
+
+ if (ms_entity_index == -1)
+ ms_entity_index = xf86AllocateEntityPrivateIndex();
+
+ pPriv = xf86GetEntityPrivate(pEnt->index,
+ ms_entity_index);
+
+ xf86SetEntityInstanceForScreen(scrn, pEnt->index,
xf86GetNumEntityInstances(pEnt->index) - 1);
+
+ if (!pPriv->ptr)
+ pPriv->ptr = xnfcalloc(sizeof(modesettingEntRec), 1);
+ }
+
+ free(pEnt);
+
}
else
scrn = NULL;
--
2.4.3
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel