linux/arch/sparc/include/asm/pci_64.h
<<
>>
Prefs
   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#ifdef CONFIG_PCI
  35static inline void pci_dma_burst_advice(struct pci_dev *pdev,
  36                                        enum pci_dma_burst_strategy *strat,
  37                                        unsigned long *strategy_parameter)
  38{
  39        unsigned long cacheline_size;
  40        u8 byte;
  41
  42        pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &byte);
  43        if (byte == 0)
  44                cacheline_size = 1024;
  45        else
  46                cacheline_size = (int) byte * 4;
  47
  48        *strat = PCI_DMA_BURST_BOUNDARY;
  49        *strategy_parameter = cacheline_size;
  50}
  51#endif
  52
  53/* Return the index of the PCI controller for device PDEV. */
  54
  55extern int pci_domain_nr(struct pci_bus *bus);
  56static inline int pci_proc_domain(struct pci_bus *bus)
  57{
  58        return 1;
  59}
  60
  61/* Platform support for /proc/bus/pci/X/Y mmap()s. */
  62
  63#define HAVE_PCI_MMAP
  64#define HAVE_ARCH_PCI_GET_UNMAPPED_AREA
  65#define get_pci_unmapped_area get_fb_unmapped_area
  66
  67extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
  68                               enum pci_mmap_state mmap_state,
  69                               int write_combine);
  70
  71static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
  72{
  73        return PCI_IRQ_NONE;
  74}
  75
  76#define HAVE_ARCH_PCI_RESOURCE_TO_USER
  77extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
  78                                 const struct resource *rsrc,
  79                                 resource_size_t *start, resource_size_t *end);
  80#endif /* __KERNEL__ */
  81
  82#endif /* __SPARC64_PCI_H */
  83