1#ifndef __SPARC64_PCI_H 2#define __SPARC64_PCI_H 3 4#ifdef __KERNEL__ 5 6#include <linux/dma-mapping.h> 7 8/* Can be used to override the logic in pci_scan_bus for skipping 9 * already-configured bus numbers - to be used for buggy BIOSes 10 * or architectures with incomplete PCI setup by the loader. 11 */ 12#define pcibios_assign_all_busses() 0 13 14#define PCIBIOS_MIN_IO 0UL 15#define PCIBIOS_MIN_MEM 0UL 16 17#define PCI_IRQ_NONE 0xffffffff 18 19/* The PCI address space does not equal the physical memory 20 * address space. The networking and block device layers use 21 * this boolean for bounce buffer decisions. 22 */ 23#define PCI_DMA_BUS_IS_PHYS (0) 24 25/* PCI IOMMU mapping bypass support. */ 26 27/* PCI 64-bit addressing works for all slots on all controller 28 * types on sparc64. However, it requires that the device 29 * can drive enough of the 64 bits. 30 */ 31#define PCI64_REQUIRED_MASK (~(u64)0) 32#define PCI64_ADDR_BASE 0xfffc000000000000UL 33 34/* Return the index of the PCI controller for device PDEV. */ 35 36int pci_domain_nr(struct pci_bus *bus); 37static inline int pci_proc_domain(struct pci_bus *bus) 38{ 39 return 1; 40} 41 42/* Platform support for /proc/bus/pci/X/Y mmap()s. */ 43 44#define HAVE_PCI_MMAP 45#define HAVE_ARCH_PCI_GET_UNMAPPED_AREA 46#define get_pci_unmapped_area get_fb_unmapped_area 47 48int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 49 enum pci_mmap_state mmap_state, 50 int write_combine); 51 52static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 53{ 54 return PCI_IRQ_NONE; 55} 56 57#define HAVE_ARCH_PCI_RESOURCE_TO_USER 58void pci_resource_to_user(const struct pci_dev *dev, int bar, 59 const struct resource *rsrc, 60 resource_size_t *start, resource_size_t *end); 61#endif /* __KERNEL__ */ 62 63#endif /* __SPARC64_PCI_H */ 64