aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2007-12-25 05:20:33 -0500
committerDavid S. Miller <davem@davemloft.net>2007-12-26 22:33:46 -0500
commitbcea1db16ba1c45ccebb3bfb8441642d1342c4d5 (patch)
tree6930a11e79193d56e2c0f344c04ac5c37a56f7eb /arch/sparc64
parent11ee29577cc1637f94d903a6ea322cf1ed8ce1b3 (diff)
[SPARC64]: Implement pci_resource_to_user()
This makes libpciaccess able to mmap() resources of the device properly. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64')
-rw-r--r--arch/sparc64/kernel/pci.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index 63b3ebc0c3c2..a61c38fe75ea 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -1275,4 +1275,20 @@ int pci_dma_supported(struct pci_dev *pdev, u64 device_mask)
1275 return (device_mask & dma_addr_mask) == dma_addr_mask; 1275 return (device_mask & dma_addr_mask) == dma_addr_mask;
1276} 1276}
1277 1277
1278void pci_resource_to_user(const struct pci_dev *pdev, int bar,
1279 const struct resource *rp, resource_size_t *start,
1280 resource_size_t *end)
1281{
1282 struct pci_pbm_info *pbm = pdev->dev.archdata.host_controller;
1283 unsigned long offset;
1284
1285 if (rp->flags & IORESOURCE_IO)
1286 offset = pbm->io_space.start;
1287 else
1288 offset = pbm->mem_space.start;
1289
1290 *start = rp->start - offset;
1291 *end = rp->end - offset;
1292}
1293
1278#endif /* !(CONFIG_PCI) */ 1294#endif /* !(CONFIG_PCI) */