PCI: use pci_find_ext_capability everywhere
Remove some open coded (and buggy) versions of pci_find_ext_capability in favor of the real routine in the PCI core. Tested-by: Tomasz Czernecki <czernecki@gmail.com> Acked-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Reviewed-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
@@ -195,24 +195,11 @@ static int get_port_device_capability(struct pci_dev *dev)
|
||||
/* PME Capable - root port capability */
|
||||
if (((reg16 >> 4) & PORT_TYPE_MASK) == PCIE_RC_PORT)
|
||||
services |= PCIE_PORT_SERVICE_PME;
|
||||
|
||||
pos = PCI_CFG_SPACE_SIZE;
|
||||
while (pos) {
|
||||
pci_read_config_dword(dev, pos, ®32);
|
||||
switch (reg32 & 0xffff) {
|
||||
case PCI_EXT_CAP_ID_ERR:
|
||||
services |= PCIE_PORT_SERVICE_AER;
|
||||
pos = reg32 >> 20;
|
||||
break;
|
||||
case PCI_EXT_CAP_ID_VC:
|
||||
services |= PCIE_PORT_SERVICE_VC;
|
||||
pos = reg32 >> 20;
|
||||
break;
|
||||
default:
|
||||
pos = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ERR))
|
||||
services |= PCIE_PORT_SERVICE_AER;
|
||||
if (pci_find_ext_capability(dev, PCI_EXT_CAP_ID_VC))
|
||||
services |= PCIE_PORT_SERVICE_VC;
|
||||
|
||||
return services;
|
||||
}
|
||||
|
Reference in New Issue
Block a user