diff options
author | Yinghai Lu <yinghai@kernel.org> | 2012-09-17 22:20:28 -0700 |
---|---|---|
committer | Yinghai Lu <yinghai@kernel.org> | 2012-09-17 22:20:28 -0700 |
commit | 90d5807db727abf357342105208f6a030de22621 (patch) | |
tree | 943799a30f84044387899023ef52960f8e110e6d | |
parent | f37c815cde436d481c899535eb214eb75da52d61 (diff) | |
download | linux-yinghai-90d5807db727abf357342105208f6a030de22621.tar.gz |
PCI: Add pci_dev_resource_idx()
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
-rw-r--r-- | drivers/pci/probe.c | 9 | ||||
-rw-r--r-- | include/linux/pci.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 2df843f1309e4..bfdd3b2489f77 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -114,6 +114,15 @@ struct resource *pci_dev_resource_n(struct pci_dev *dev, int n) } EXPORT_SYMBOL(pci_dev_resource_n); +int pci_dev_resource_idx(struct pci_dev *dev, struct resource *res) +{ + if (res >= dev->resource && + res <= dev->resource + (PCI_NUM_RESOURCES - 1)) + return res - dev->resource; + + return -1; +} + static u64 pci_size(u64 base, u64 maxbase, u64 mask) { u64 size = mask & maxbase; /* Find the significant bits */ diff --git a/include/linux/pci.h b/include/linux/pci.h index 32da98c32ce6e..87afd5d723373 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -358,6 +358,7 @@ struct pci_dev { }; struct resource *pci_dev_resource_n(struct pci_dev *dev, int n); +int pci_dev_resource_idx(struct pci_dev *dev, struct resource *res); static inline struct pci_dev *pci_physfn(struct pci_dev *dev) { |