summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Behan <connor.behan@gmail.com>2013-10-17 18:26:28 -0700
committerKeith Packard <keithp@keithp.com>2013-10-29 09:49:01 -0700
commit04ab07ca19236d6c9a947e065fb69b0dd0d16639 (patch)
tree337dcbf0d5c10263a7e014e7bd44f7e5806948ac
parentb32a4c91ccd479638c2bd2c0143b6ea170c717d1 (diff)
xfree86: Find primary entity when bus types are nominally different
As of server 1.13, systems with DRM and Udev will have BUS_PLATFORM as their primary bus type. However, drivers not implementing a platformProbe function will still create entities of type BUS_PCI. We need to account for this when checking for the primary entity. Signed-off-by: Connor Behan <connor.behan@gmail.com> Acked-by: Tormod Volden <debian.tormod@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--hw/xfree86/common/xf86Bus.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index e1015379b..329d0b3d5 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -266,7 +266,9 @@ xf86IsEntityPrimary(int entityIndex)
{
EntityPtr pEnt = xf86Entities[entityIndex];
- if (primaryBus.type != pEnt->bus.type)
+ if (primaryBus.type == BUS_PLATFORM && pEnt->bus.type == BUS_PCI)
+ return MATCH_PCI_DEVICES(pEnt->bus.id.pci, primaryBus.id.plat->pdev);
+ else if (primaryBus.type != pEnt->bus.type)
return FALSE;
switch (pEnt->bus.type) {