mirror of
https://github.com/torvalds/linux.git
synced 2025-01-01 07:42:07 +00:00
[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>
This commit is contained in:
parent
11ee29577c
commit
bcea1db16b
@ -1275,4 +1275,20 @@ int pci_dma_supported(struct pci_dev *pdev, u64 device_mask)
|
|||||||
return (device_mask & dma_addr_mask) == dma_addr_mask;
|
return (device_mask & dma_addr_mask) == dma_addr_mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pci_resource_to_user(const struct pci_dev *pdev, int bar,
|
||||||
|
const struct resource *rp, resource_size_t *start,
|
||||||
|
resource_size_t *end)
|
||||||
|
{
|
||||||
|
struct pci_pbm_info *pbm = pdev->dev.archdata.host_controller;
|
||||||
|
unsigned long offset;
|
||||||
|
|
||||||
|
if (rp->flags & IORESOURCE_IO)
|
||||||
|
offset = pbm->io_space.start;
|
||||||
|
else
|
||||||
|
offset = pbm->mem_space.start;
|
||||||
|
|
||||||
|
*start = rp->start - offset;
|
||||||
|
*end = rp->end - offset;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* !(CONFIG_PCI) */
|
#endif /* !(CONFIG_PCI) */
|
||||||
|
@ -200,6 +200,10 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
|
|||||||
struct device_node;
|
struct device_node;
|
||||||
extern struct device_node *pci_device_to_OF_node(struct pci_dev *pdev);
|
extern struct device_node *pci_device_to_OF_node(struct pci_dev *pdev);
|
||||||
|
|
||||||
|
#define HAVE_ARCH_PCI_RESOURCE_TO_USER
|
||||||
|
extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
|
||||||
|
const struct resource *rsrc,
|
||||||
|
resource_size_t *start, resource_size_t *end);
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
#endif /* __SPARC64_PCI_H */
|
#endif /* __SPARC64_PCI_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user