aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/probe.c
diff options
context:
space:
mode:
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>2009-11-04 22:05:11 -0500
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-11-06 16:59:02 -0500
commit0efea0006335a2425b1a12a2ad35efad626fe353 (patch)
treed139b06a32665ec1227c06f1c0a14b21e3c0d654 /drivers/pci/probe.c
parent1e5ad9679016275d422e36b12a98b0927d76f556 (diff)
PCI: cache PCIe capability offset
There are a lot of codes that searches PCI express capability offset in the PCI configuration space using pci_find_capability(). Caching it in the struct pci_dev will reduce unncecessary search. This patch adds an additional 'pcie_cap' fields into struct pci_dev, which is initialized at pci device scan time (in set_pcie_port_type()). Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r--drivers/pci/probe.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 623086f9ba84..54b9f1501487 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -692,6 +692,7 @@ static void set_pcie_port_type(struct pci_dev *pdev)
692 if (!pos) 692 if (!pos)
693 return; 693 return;
694 pdev->is_pcie = 1; 694 pdev->is_pcie = 1;
695 pdev->pcie_cap = pos;
695 pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, &reg16); 696 pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, &reg16);
696 pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4; 697 pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4;
697} 698}