Commit b50fd73b9d8ee1f999e8d625074872eb8fb88439

Authored by Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC64]: Implement pci_resource_to_user()

Showing 2 changed files Side-by-side Diff

arch/sparc64/kernel/pci.c
... ... @@ -1275,5 +1275,21 @@
1275 1275 return (device_mask & dma_addr_mask) == dma_addr_mask;
1276 1276 }
1277 1277  
  1278 +void 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 1294 #endif /* !(CONFIG_PCI) */
include/asm-sparc64/pci.h
... ... @@ -200,6 +200,10 @@
200 200 struct device_node;
201 201 extern struct device_node *pci_device_to_OF_node(struct pci_dev *pdev);
202 202  
  203 +#define HAVE_ARCH_PCI_RESOURCE_TO_USER
  204 +extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
  205 + const struct resource *rsrc,
  206 + resource_size_t *start, resource_size_t *end);
203 207 #endif /* __KERNEL__ */
204 208  
205 209 #endif /* __SPARC64_PCI_H */