diff options
Diffstat (limited to 'include/asm-x86/pci.h')
-rw-r--r-- | include/asm-x86/pci.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/include/asm-x86/pci.h b/include/asm-x86/pci.h index a8cac8c2cde7..e88361966347 100644 --- a/include/asm-x86/pci.h +++ b/include/asm-x86/pci.h | |||
@@ -1,5 +1,95 @@ | |||
1 | #ifndef __x86_PCI_H | ||
2 | #define __x86_PCI_H | ||
3 | |||
4 | #include <linux/mm.h> /* for struct page */ | ||
5 | #include <linux/types.h> | ||
6 | #include <linux/slab.h> | ||
7 | #include <linux/string.h> | ||
8 | #include <asm/scatterlist.h> | ||
9 | #include <asm/io.h> | ||
10 | |||
11 | |||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | struct pci_sysdata { | ||
15 | int domain; /* PCI domain */ | ||
16 | int node; /* NUMA node */ | ||
17 | #ifdef CONFIG_X86_64 | ||
18 | void* iommu; /* IOMMU private data */ | ||
19 | #endif | ||
20 | }; | ||
21 | |||
22 | /* scan a bus after allocating a pci_sysdata for it */ | ||
23 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | ||
24 | |||
25 | static inline int pci_domain_nr(struct pci_bus *bus) | ||
26 | { | ||
27 | struct pci_sysdata *sd = bus->sysdata; | ||
28 | return sd->domain; | ||
29 | } | ||
30 | |||
31 | static inline int pci_proc_domain(struct pci_bus *bus) | ||
32 | { | ||
33 | return pci_domain_nr(bus); | ||
34 | } | ||
35 | |||
36 | |||
37 | /* Can be used to override the logic in pci_scan_bus for skipping | ||
38 | already-configured bus numbers - to be used for buggy BIOSes | ||
39 | or architectures with incomplete PCI setup by the loader */ | ||
40 | |||
41 | #ifdef CONFIG_PCI | ||
42 | extern unsigned int pcibios_assign_all_busses(void); | ||
43 | #else | ||
44 | #define pcibios_assign_all_busses() 0 | ||
45 | #endif | ||
46 | #define pcibios_scan_all_fns(a, b) 0 | ||
47 | |||
48 | extern unsigned long pci_mem_start; | ||
49 | #define PCIBIOS_MIN_IO 0x1000 | ||
50 | #define PCIBIOS_MIN_MEM (pci_mem_start) | ||
51 | |||
52 | #define PCIBIOS_MIN_CARDBUS_IO 0x4000 | ||
53 | |||
54 | void pcibios_config_init(void); | ||
55 | struct pci_bus * pcibios_scan_root(int bus); | ||
56 | |||
57 | void pcibios_set_master(struct pci_dev *dev); | ||
58 | void pcibios_penalize_isa_irq(int irq, int active); | ||
59 | struct irq_routing_table *pcibios_get_irq_routing_table(void); | ||
60 | int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq); | ||
61 | |||
62 | |||
63 | #define HAVE_PCI_MMAP | ||
64 | extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | ||
65 | enum pci_mmap_state mmap_state, int write_combine); | ||
66 | |||
67 | |||
68 | #ifdef CONFIG_PCI | ||
69 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | ||
70 | enum pci_dma_burst_strategy *strat, | ||
71 | unsigned long *strategy_parameter) | ||
72 | { | ||
73 | *strat = PCI_DMA_BURST_INFINITY; | ||
74 | *strategy_parameter = ~0UL; | ||
75 | } | ||
76 | #endif | ||
77 | |||
78 | |||
79 | #endif /* __KERNEL__ */ | ||
80 | |||
1 | #ifdef CONFIG_X86_32 | 81 | #ifdef CONFIG_X86_32 |
2 | # include "pci_32.h" | 82 | # include "pci_32.h" |
3 | #else | 83 | #else |
4 | # include "pci_64.h" | 84 | # include "pci_64.h" |
5 | #endif | 85 | #endif |
86 | |||
87 | /* implement the pci_ DMA API in terms of the generic device dma_ one */ | ||
88 | #include <asm-generic/pci-dma-compat.h> | ||
89 | |||
90 | /* generic pci stuff */ | ||
91 | #include <asm-generic/pci.h> | ||
92 | |||
93 | |||
94 | |||
95 | #endif | ||