aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2012-09-17 22:20:29 -0700
committerYinghai Lu <yinghai@kernel.org>2012-09-17 22:20:29 -0700
commit1c05a8f2cdcce525b9144f0704e281a61a3fc4bf (patch)
treee23c6f2bd03ad9b13824f9afdbc7d955d6e7e711
parentaa4fc32dcc941f72157a07a54dcbec888de0a229 (diff)
downloadlinux-yinghai-1c05a8f2cdcce525b9144f0704e281a61a3fc4bf.tar.gz
PCI: Use for_each_pci_dev_resource pci_enable_dev
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
-rw-r--r--drivers/pci/pci.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 54858838f09867..c16e83e9dcfc08 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -440,8 +440,9 @@ static void
pci_restore_bars(struct pci_dev *dev)
{
int i;
+ struct resource *res;
- for (i = 0; i < PCI_BRIDGE_RESOURCES; i++)
+ for_each_pci_resource(dev, res, i, PCI_NOBRIDGE_RES)
pci_update_resource(dev, i);
}
@@ -1161,6 +1162,7 @@ static int __pci_enable_device_flags(struct pci_dev *dev,
{
int err;
int i, bars = 0;
+ struct resource *res;
/*
* Power state could be unknown at this point, either due to a fresh
@@ -1178,12 +1180,11 @@ static int __pci_enable_device_flags(struct pci_dev *dev,
return 0; /* already enabled */
/* only skip sriov related */
- for (i = 0; i <= PCI_ROM_RESOURCE; i++)
- if (dev->resource[i].flags & flags)
- bars |= (1 << i);
- for (i = PCI_BRIDGE_RESOURCES; i < DEVICE_COUNT_RESOURCE; i++)
- if (dev->resource[i].flags & flags)
+ for_each_pci_resource(dev, res, i, PCI_NOIOV_RES) {
+ /* TODO: check i with bits of bars */
+ if (res->flags & flags)
bars |= (1 << i);
+ }
err = do_pci_enable_device(dev, bars);
if (err < 0)
@@ -2517,7 +2518,7 @@ static int __pci_request_region(struct pci_dev *pdev, int bar, const char *res_n
err_out:
dev_warn(&pdev->dev, "BAR %d: can't reserve %pR\n", bar,
- &pdev->resource[bar]);
+ pci_dev_resource_n(pdev, bar));
return -EBUSY;
}