Merge tag 'pci-v3.15-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI fixes from Bjorn Helgaas: "These are fixes for an SHPCHP hotplug regression, a "wait for pending transaction" problem (used in device reset paths), and an email address update. PCI device hotplug: - Fix SHPCHP bus speed mismatch issue (Marcel Apfelbaum) Miscellaneous: - Fix pci_wait_for_pending_transaction() (Gavin Shan) - Update email address (Ben Hutchings)" * tag 'pci-v3.15-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: Wrong register used to check pending traffic PCI: shpchp: Check bridge's secondary (not primary) bus speed PCI: Update my email address
This commit is contained in:
@@ -117,7 +117,7 @@ Description:
|
||||
|
||||
What: /sys/bus/pci/devices/.../vpd
|
||||
Date: February 2008
|
||||
Contact: Ben Hutchings <bhutchings@solarflare.com>
|
||||
Contact: Ben Hutchings <bwh@kernel.org>
|
||||
Description:
|
||||
A file named vpd in a device directory will be a
|
||||
binary file containing the Vital Product Data for the
|
||||
|
@@ -282,8 +282,8 @@ static int board_added(struct slot *p_slot)
|
||||
return WRONG_BUS_FREQUENCY;
|
||||
}
|
||||
|
||||
bsp = ctrl->pci_dev->bus->cur_bus_speed;
|
||||
msp = ctrl->pci_dev->bus->max_bus_speed;
|
||||
bsp = ctrl->pci_dev->subordinate->cur_bus_speed;
|
||||
msp = ctrl->pci_dev->subordinate->max_bus_speed;
|
||||
|
||||
/* Check if there are other slots or devices on the same bus */
|
||||
if (!list_empty(&ctrl->pci_dev->subordinate->devices))
|
||||
|
@@ -3067,7 +3067,8 @@ int pci_wait_for_pending_transaction(struct pci_dev *dev)
|
||||
if (!pci_is_pcie(dev))
|
||||
return 1;
|
||||
|
||||
return pci_wait_for_pending(dev, PCI_EXP_DEVSTA, PCI_EXP_DEVSTA_TRPND);
|
||||
return pci_wait_for_pending(dev, pci_pcie_cap(dev) + PCI_EXP_DEVSTA,
|
||||
PCI_EXP_DEVSTA_TRPND);
|
||||
}
|
||||
EXPORT_SYMBOL(pci_wait_for_pending_transaction);
|
||||
|
||||
@@ -3109,7 +3110,7 @@ static int pci_af_flr(struct pci_dev *dev, int probe)
|
||||
return 0;
|
||||
|
||||
/* Wait for Transaction Pending bit clean */
|
||||
if (pci_wait_for_pending(dev, PCI_AF_STATUS, PCI_AF_STATUS_TP))
|
||||
if (pci_wait_for_pending(dev, pos + PCI_AF_STATUS, PCI_AF_STATUS_TP))
|
||||
goto clear;
|
||||
|
||||
dev_err(&dev->dev, "transaction is not cleared; "
|
||||
|
Reference in New Issue
Block a user