1 #ifndef ASMARM_PCI_H 2 #define ASMARM_PCI_H 3 4 #ifdef __KERNEL__ 5 #include <asm-generic/pci-dma-compat.h> 6 7 #include <mach/hardware.h> /* for PCIBIOS_MIN_* */ 8 9 #ifdef CONFIG_PCI_HOST_ITE8152 10 /* ITE bridge requires setting latency timer to avoid early bus access 11 termination by PIC bus mater devices 12 */ 13 extern void pcibios_set_master(struct pci_dev *dev); 14 #else 15 static inline void pcibios_set_master(struct pci_dev *dev) 16 { 17 /* No special bus mastering setup handling */ 18 } 19 #endif 20 21 static inline void pcibios_penalize_isa_irq(int irq, int active) 22 { 23 /* We don't do dynamic PCI IRQ allocation */ 24 } 25 26 /* 27 * The PCI address space does equal the physical memory address space. 28 * The networking and block device layers use this boolean for bounce 29 * buffer decisions. 30 */ 31 #define PCI_DMA_BUS_IS_PHYS (1) 32 33 /* 34 * Whether pci_unmap_{single,page} is a nop depends upon the 35 * configuration. 36 */ 37 #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME; 38 #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) __u32 LEN_NAME; 39 #define pci_unmap_addr(PTR, ADDR_NAME) ((PTR)->ADDR_NAME) 40 #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) (((PTR)->ADDR_NAME) = (VAL)) 41 #define pci_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME) 42 #define pci_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL)) 43 44 #ifdef CONFIG_PCI 45 static inline void pci_dma_burst_advice(struct pci_dev *pdev, 46 enum pci_dma_burst_strategy *strat, 47 unsigned long *strategy_parameter) 48 { 49 *strat = PCI_DMA_BURST_INFINITY; 50 *strategy_parameter = ~0UL; 51 } 52 #endif 53 54 #define HAVE_PCI_MMAP 55 extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, 56 enum pci_mmap_state mmap_state, int write_combine); 57 58 extern void 59 pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, 60 struct resource *res); 61 62 extern void 63 pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, 64 struct pci_bus_region *region); 65 66 /* 67 * Dummy implementation; always return 0. 68 */ 69 static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) 70 { 71 return 0; 72 } 73 74 #endif /* __KERNEL__ */ 75 76 #endif 77