diff options
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index aab9d5115a5f..415956c5c593 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -480,6 +480,30 @@ struct resource *pci_find_parent_resource(const struct pci_dev *dev, | |||
480 | EXPORT_SYMBOL(pci_find_parent_resource); | 480 | EXPORT_SYMBOL(pci_find_parent_resource); |
481 | 481 | ||
482 | /** | 482 | /** |
483 | * pci_find_resource - Return matching PCI device resource | ||
484 | * @dev: PCI device to query | ||
485 | * @res: Resource to look for | ||
486 | * | ||
487 | * Goes over standard PCI resources (BARs) and checks if the given resource | ||
488 | * is partially or fully contained in any of them. In that case the | ||
489 | * matching resource is returned, %NULL otherwise. | ||
490 | */ | ||
491 | struct resource *pci_find_resource(struct pci_dev *dev, struct resource *res) | ||
492 | { | ||
493 | int i; | ||
494 | |||
495 | for (i = 0; i < PCI_ROM_RESOURCE; i++) { | ||
496 | struct resource *r = &dev->resource[i]; | ||
497 | |||
498 | if (r->start && resource_contains(r, res)) | ||
499 | return r; | ||
500 | } | ||
501 | |||
502 | return NULL; | ||
503 | } | ||
504 | EXPORT_SYMBOL(pci_find_resource); | ||
505 | |||
506 | /** | ||
483 | * pci_find_pcie_root_port - return PCIe Root Port | 507 | * pci_find_pcie_root_port - return PCIe Root Port |
484 | * @dev: PCI device to query | 508 | * @dev: PCI device to query |
485 | * | 509 | * |