IB/qib: Remove unnecessary read of PCI_CAP_ID_EXP
authorJon Mason <jdmason@kudzu.us>
Mon, 27 Jun 2011 17:40:38 +0000 (17:40 +0000)
committerRoland Dreier <roland@purestorage.com>
Mon, 18 Jul 2011 18:57:52 +0000 (11:57 -0700)
The PCIE capability offset is saved during PCI bus walking.  It will
remove an unnecessary search in the PCI configuration space if this
value is referenced instead of reacquiring it.

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Acked-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/qib/qib_pcie.c

index 891cc2ff5f00c3033ab026438b7b1a83f30feff6..4426782ad288930b97ff34f6d892b3a364a8983e 100644 (file)
@@ -255,7 +255,7 @@ int qib_pcie_params(struct qib_devdata *dd, u32 minw, u32 *nent,
        u16 linkstat, speed;
        int pos = 0, pose, ret = 1;
 
-       pose = pci_find_capability(dd->pcidev, PCI_CAP_ID_EXP);
+       pose = pci_pcie_cap(dd->pcidev);
        if (!pose) {
                qib_dev_err(dd, "Can't find PCI Express capability!\n");
                /* set up something... */
@@ -509,7 +509,7 @@ static int qib_tune_pcie_coalesce(struct qib_devdata *dd)
                qib_devinfo(dd->pcidev, "Parent not root\n");
                return 1;
        }
-       ppos = pci_find_capability(parent, PCI_CAP_ID_EXP);
+       ppos = pci_pcie_cap(parent);
        if (!ppos)
                return 1;
        if (parent->vendor != 0x8086)
@@ -578,14 +578,14 @@ static int qib_tune_pcie_caps(struct qib_devdata *dd)
                qib_devinfo(dd->pcidev, "Parent not root\n");
                goto bail;
        }
-       ppos = pci_find_capability(parent, PCI_CAP_ID_EXP);
+       ppos = pci_pcie_cap(parent);
        if (ppos) {
                pci_read_config_word(parent, ppos + PCI_EXP_DEVCAP, &pcaps);
                pci_read_config_word(parent, ppos + PCI_EXP_DEVCTL, &pctl);
        } else
                goto bail;
        /* Find out supported and configured values for endpoint (us) */
-       epos = pci_find_capability(dd->pcidev, PCI_CAP_ID_EXP);
+       epos = pci_pcie_cap(dd->pcidev);
        if (epos) {
                pci_read_config_word(dd->pcidev, epos + PCI_EXP_DEVCAP, &ecaps);
                pci_read_config_word(dd->pcidev, epos + PCI_EXP_DEVCTL, &ectl);