| Chris Zankel | 9a8fd55 | 2005-06-23 22:01:26 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * linux/include/asm-xtensa/pci.h | 
 | 3 |  * | 
 | 4 |  * This file is subject to the terms and conditions of the GNU General Public | 
 | 5 |  * License.  See the file "COPYING" in the main directory of this archive | 
 | 6 |  * for more details. | 
 | 7 |  * | 
 | 8 |  * Copyright (C) 2001 - 2005 Tensilica Inc. | 
 | 9 |  */ | 
 | 10 |  | 
 | 11 | #ifndef _XTENSA_PCI_H | 
 | 12 | #define _XTENSA_PCI_H | 
 | 13 |  | 
 | 14 | #ifdef __KERNEL__ | 
 | 15 |  | 
 | 16 | /* Can be used to override the logic in pci_scan_bus for skipping | 
 | 17 |  * already-configured bus numbers - to be used for buggy BIOSes | 
 | 18 |  * or architectures with incomplete PCI setup by the loader | 
 | 19 |  */ | 
 | 20 |  | 
 | 21 | #define pcibios_assign_all_busses()	0 | 
 | 22 |  | 
 | 23 | extern struct pci_controller* pcibios_alloc_controller(void); | 
 | 24 |  | 
| Adrian Bunk | d99cf71 | 2005-09-03 15:57:53 -0700 | [diff] [blame] | 25 | static inline void pcibios_set_master(struct pci_dev *dev) | 
| Chris Zankel | 9a8fd55 | 2005-06-23 22:01:26 -0700 | [diff] [blame] | 26 | { | 
 | 27 | 	/* No special bus mastering setup handling */ | 
 | 28 | } | 
 | 29 |  | 
| Adrian Bunk | d99cf71 | 2005-09-03 15:57:53 -0700 | [diff] [blame] | 30 | static inline void pcibios_penalize_isa_irq(int irq) | 
| Chris Zankel | 9a8fd55 | 2005-06-23 22:01:26 -0700 | [diff] [blame] | 31 | { | 
 | 32 | 	/* We don't do dynamic PCI IRQ allocation */ | 
 | 33 | } | 
 | 34 |  | 
 | 35 | /* Assume some values. (We should revise them, if necessary) */ | 
 | 36 |  | 
 | 37 | #define PCIBIOS_MIN_IO		0x2000 | 
 | 38 | #define PCIBIOS_MIN_MEM		0x10000000 | 
 | 39 |  | 
 | 40 | /* Dynamic DMA mapping stuff. | 
 | 41 |  * Xtensa has everything mapped statically like x86. | 
 | 42 |  */ | 
 | 43 |  | 
 | 44 | #include <linux/types.h> | 
 | 45 | #include <linux/slab.h> | 
 | 46 | #include <asm/scatterlist.h> | 
 | 47 | #include <linux/string.h> | 
 | 48 | #include <asm/io.h> | 
 | 49 |  | 
 | 50 | struct pci_dev; | 
 | 51 |  | 
 | 52 | /* The PCI address space does equal the physical memory address space. | 
 | 53 |  * The networking and block device layers use this boolean for bounce buffer | 
 | 54 |  * decisions. | 
 | 55 |  */ | 
 | 56 |  | 
 | 57 | #define PCI_DMA_BUS_IS_PHYS	(1) | 
 | 58 |  | 
 | 59 | /* pci_unmap_{page,single} is a no-op, so */ | 
 | 60 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) | 
 | 61 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) | 
 | 62 | #define pci_unmap_addr(PTR, ADDR_NAME)		(0) | 
 | 63 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL)	do { } while (0) | 
 | 64 | #define pci_ubnmap_len(PTR, LEN_NAME)		(0) | 
 | 65 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL)	do { } while (0) | 
 | 66 |  | 
 | 67 | /* We cannot access memory above 4GB */ | 
 | 68 | #define pci_dac_dma_supported(pci_dev, mask)	(0) | 
 | 69 |  | 
 | 70 | /* Map a range of PCI memory or I/O space for a device into user space */ | 
 | 71 | int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma, | 
 | 72 |                         enum pci_mmap_state mmap_state, int write_combine); | 
 | 73 |  | 
 | 74 | /* Tell drivers/pci/proc.c that we have pci_mmap_page_range() */ | 
 | 75 | #define HAVE_PCI_MMAP	1 | 
 | 76 |  | 
 | 77 | static inline void pcibios_add_platform_entries(struct pci_dev *dev) | 
 | 78 | { | 
 | 79 | } | 
 | 80 |  | 
 | 81 | #endif /* __KERNEL__ */ | 
 | 82 |  | 
 | 83 | /* Implement the pci_ DMA API in terms of the generic device dma_ one */ | 
 | 84 | #include <asm-generic/pci-dma-compat.h> | 
 | 85 |  | 
 | 86 | /* Generic PCI */ | 
 | 87 | #include <asm-generic/pci.h> | 
 | 88 |  | 
 | 89 | #endif	/* _XTENSA_PCI_H */ |