]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/init.c
libpci: ecam: Fix big address range mappings
[pciutils.git] / lib / init.c
index b38b8bbe03fabebe192811e2b747c7c330b49f24..347668163f7a9f9a0b6d75227022b19f5a4ae3b8 100644 (file)
@@ -3,7 +3,9 @@
  *
  *     Copyright (c) 1997--2018 Martin Mares <mj@ucw.cz>
  *
- *     Can be freely distributed and used under the terms of the GNU GPL.
+ *     Can be freely distributed and used under the terms of the GNU GPL v2+.
+ *
+ *     SPDX-License-Identifier: GPL-2.0-or-later
  */
 
 #include <stdio.h>
@@ -151,6 +153,11 @@ static struct pci_methods *pci_methods[PCI_ACCESS_MAX] = {
   NULL,
   NULL,
 #endif
+#if defined(PCI_HAVE_PM_ECAM)
+  &pm_ecam,
+#else
+  NULL,
+#endif
 };
 
 // If PCI_ACCESS_AUTO is selected, we probe the access methods in this order
@@ -169,6 +176,7 @@ static int probe_sequence[] = {
   PCI_ACCESS_WIN32_KLDBG,
   PCI_ACCESS_WIN32_SYSDBG,
   // Low-level methods poking the hardware directly
+  PCI_ACCESS_ECAM,
   PCI_ACCESS_I386_TYPE1,
   PCI_ACCESS_I386_TYPE2,
   PCI_ACCESS_MMIO_TYPE1_EXT,
@@ -469,7 +477,7 @@ pci_init_internal(struct pci_access *a, int skip_method)
 void
 pci_init_v35(struct pci_access *a)
 {
-  if (!pci_init_internal(a, 1, -1))
+  if (!pci_init_internal(a, -1))
     a->error("Cannot find any working access method.");
 }