summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/xfree86/os-support/bus/linuxPci.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
index 9ecac8ddc..df8edc0d9 100644
--- a/hw/xfree86/os-support/bus/linuxPci.c
+++ b/hw/xfree86/os-support/bus/linuxPci.c
@@ -445,15 +445,19 @@ linuxGetSizesStruct(PCITAG Tag)
static const struct pciSizes default_size = {
0, 0, 1U << 16, (unsigned long)(1ULL << 32)
};
- pciConfigPtr pPCI;
+ struct pci_device *dev;
int i;
/* Find host bridge */
- if ((pPCI = xf86GetPciHostConfigFromTag(Tag))) {
+ dev = pci_device_find_by_slot(PCI_DOM_FROM_TAG(Tag),
+ PCI_BUS_NO_DOMAIN(PCI_BUS_FROM_TAG(Tag)),
+ PCI_DEV_FROM_TAG(Tag),
+ PCI_FUNC_FROM_TAG(Tag));
+ if (dev != NULL) {
/* Look up vendor/device */
for (i = 0; i < NUM_SIZES; i++) {
- if ((pPCI->pci_vendor == pciControllerSizes[i].vendor)
- && (pPCI->_pci_device == pciControllerSizes[i].device)) {
+ if ((dev->vendor_id == pciControllerSizes[i].vendor)
+ && (dev->device_id == pciControllerSizes[i].device)) {
return & pciControllerSizes[i];
}
}
@@ -660,18 +664,18 @@ xf86MapDomainMemory(int ScreenNum, int Flags, PCITAG Tag,
return (pointer)((char *)DomainMmappedMem[domain] + Base);
}
-/*
- * xf86MapDomainIO - map I/O space in this domain
+/**
+ * Map I/O space in this domain
*
* Each domain has a legacy ISA I/O space. This routine will try to
* map it using the Linux sysfs legacy_io interface. If that fails,
* it'll fall back to using /proc/bus/pci.
*
- * If the legacy_io interface *does* exist, the file descriptor (fd below)
- * will be saved in the DomainMmappedIO array in the upper bits of the
+ * If the legacy_io interface \b does exist, the file descriptor (\c fd below)
+ * will be saved in the \c DomainMmappedIO array in the upper bits of the
* pointer. Callers will do I/O with small port numbers (<64k values), so
- * the platform I/O code can extract the port number and the fd, lseek to
- * the port number in the legacy_io file, and issue the read or write.
+ * the platform I/O code can extract the port number and the \c fd, \c lseek
+ * to the port number in the legacy_io file, and issue the read or write.
*
* This has no means of returning failure, so all errors are fatal
*/