diff options
| author | 2008-03-17 23:44:31 -0700 | |
|---|---|---|
| committer | 2008-03-17 23:44:31 -0700 | |
| commit | 2f633928cbba8a5858bb39b11e7219a41b0fbef5 (patch) | |
| tree | 9a82f4b7f2c3afe4b0208d8e44ea61bae90a7d22 /lib/devres.c | |
| parent | [IPV4]: esp_output() misannotations (diff) | |
| parent | Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev (diff) | |
| download | wireguard-linux-2f633928cbba8a5858bb39b11e7219a41b0fbef5.tar.xz wireguard-linux-2f633928cbba8a5858bb39b11e7219a41b0fbef5.zip | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'lib/devres.c')
| -rw-r--r-- | lib/devres.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/devres.c b/lib/devres.c index b1d336ce7f3d..edc27a5d1b73 100644 --- a/lib/devres.c +++ b/lib/devres.c @@ -298,6 +298,31 @@ int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name) EXPORT_SYMBOL(pcim_iomap_regions); /** + * pcim_iomap_regions_request_all - Request all BARs and iomap specified ones + * @pdev: PCI device to map IO resources for + * @mask: Mask of BARs to iomap + * @name: Name used when requesting regions + * + * Request all PCI BARs and iomap regions specified by @mask. + */ +int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask, + const char *name) +{ + int request_mask = ((1 << 6) - 1) & ~mask; + int rc; + + rc = pci_request_selected_regions(pdev, request_mask, name); + if (rc) + return rc; + + rc = pcim_iomap_regions(pdev, mask, name); + if (rc) + pci_release_selected_regions(pdev, request_mask); + return rc; +} +EXPORT_SYMBOL(pcim_iomap_regions_request_all); + +/** * pcim_iounmap_regions - Unmap and release PCI BARs * @pdev: PCI device to map IO resources for * @mask: Mask of BARs to unmap and release |
