summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-23 21:35:45 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-23 21:35:45 -0700
commit2b56fec64faae9fc5c3e61bbfb851b7985292cd5 (patch)
tree71b4edb7942d7eafde05e034587530ef18c336e4 /lib
parent9e1a3e31cbfd5f5822e633c4bdf3304079cb10c2 (diff)
parent18166c1a50dc4f5b121ab2bd4fdf178404db9d99 (diff)
downloadlwn-2b56fec64faae9fc5c3e61bbfb851b7985292cd5.tar.gz
lwn-2b56fec64faae9fc5c3e61bbfb851b7985292cd5.zip
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: PCI: Run k8t_sound_hostbridge quirk only when needed PCI: disable MSI on RX790 PCI: disable MSI on RD580 PCI: disable MSI on RS690 PCI: make pcie_get_readrq visible in pci.h PCI: lets kill the 'PCI hidden behind bridge' message pci/hotplug/cpqphp_ctrl.c: remove stale BKL use PCI: Document pci_iomap() PCI: quirk_e100_interrupt() called too early PCI: Move prototypes for pci_bus_find_capability to include/linux/pci.h
Diffstat (limited to 'lib')
-rw-r--r--lib/iomap.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/iomap.c b/lib/iomap.c
index a57d262a5ed9..864f2ec1966e 100644
--- a/lib/iomap.c
+++ b/lib/iomap.c
@@ -240,7 +240,20 @@ void ioport_unmap(void __iomem *addr)
EXPORT_SYMBOL(ioport_map);
EXPORT_SYMBOL(ioport_unmap);
-/* Create a virtual mapping cookie for a PCI BAR (memory or IO) */
+/**
+ * pci_iomap - create a virtual mapping cookie for a PCI BAR
+ * @dev: PCI device that owns the BAR
+ * @bar: BAR number
+ * @maxlen: length of the memory to map
+ *
+ * Using this function you will get a __iomem address to your device BAR.
+ * You can access it using ioread*() and iowrite*(). These functions hide
+ * the details if this is a MMIO or PIO address space and will just do what
+ * you expect from them in the correct way.
+ *
+ * @maxlen specifies the maximum length to map. If you want to get access to
+ * the complete BAR without checking for its length first, pass %0 here.
+ * */
void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
{
unsigned long start = pci_resource_start(dev, bar);