Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 64321
b: refs/heads/master
c: 5ca2481
h: refs/heads/master
i:
  64319: ed8719c
v: v3
  • Loading branch information
Rolf Eike Beer authored and Greg Kroah-Hartman committed Aug 22, 2007
1 parent 1248381 commit 624d370
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4e68fc97b17470365a65bc569523dd9012730e44
refs/heads/master: 5ca24814247fa4c039b893bf80fc05d0e5d41b00
3 changes: 2 additions & 1 deletion trunk/Documentation/DocBook/deviceiobook.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,8 @@ CPU B: spin_unlock_irqrestore(&dev_lock, flags)

<chapter id="pubfunctions">
<title>Public Functions Provided</title>
!Einclude/asm-i386/io.h
!Iinclude/asm-i386/io.h
!Elib/iomap.c
</chapter>

</book>
3 changes: 3 additions & 0 deletions trunk/include/asm-i386/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ extern void __iomem * __ioremap(unsigned long offset, unsigned long size, unsign
* writew/writel functions and the other mmio helpers. The returned
* address is not guaranteed to be usable directly as a virtual
* address.
*
* If the area you are trying to map is a PCI BAR you should have a
* look at pci_iomap().
*/

static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
Expand Down
15 changes: 14 additions & 1 deletion trunk/lib/iomap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 624d370

Please sign in to comment.