diff options
author | Artem B. Bityuckiy <dedekind@infradead.org> | 2005-07-06 10:43:18 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-07-06 13:40:38 -0400 |
commit | b3539219c9ea20ebf6a5ea3cc534f423a3607c41 (patch) | |
tree | d17c31c0eac0a7290ba5011b59a100fd9e9c9532 /include/asm-ppc64 | |
parent | 6430a8def12edebc1c9c7c2621d33ca0e8653c33 (diff) | |
parent | a18bcb7450840f07a772a45229de4811d930f461 (diff) |
Merge with rsync://fileserver/linux
Update to 2.6.12-rc3
Diffstat (limited to 'include/asm-ppc64')
-rw-r--r-- | include/asm-ppc64/byteorder.h | 10 | ||||
-rw-r--r-- | include/asm-ppc64/iSeries/ItLpQueue.h | 15 | ||||
-rw-r--r-- | include/asm-ppc64/kprobes.h | 5 | ||||
-rw-r--r-- | include/asm-ppc64/paca.h | 3 | ||||
-rw-r--r-- | include/asm-ppc64/pci.h | 26 |
5 files changed, 36 insertions, 23 deletions
diff --git a/include/asm-ppc64/byteorder.h b/include/asm-ppc64/byteorder.h index 80327532de64..8b57da62b674 100644 --- a/include/asm-ppc64/byteorder.h +++ b/include/asm-ppc64/byteorder.h | |||
@@ -40,7 +40,6 @@ static __inline__ void st_le32(volatile __u32 *addr, const __u32 val) | |||
40 | __asm__ __volatile__ ("stwbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr)); | 40 | __asm__ __volatile__ ("stwbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr)); |
41 | } | 41 | } |
42 | 42 | ||
43 | #if 0 | ||
44 | static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 value) | 43 | static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 value) |
45 | { | 44 | { |
46 | __u16 result; | 45 | __u16 result; |
@@ -63,17 +62,8 @@ static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 value) | |||
63 | return result; | 62 | return result; |
64 | } | 63 | } |
65 | 64 | ||
66 | static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 value) | ||
67 | { | ||
68 | __u64 result; | ||
69 | #error implement me | ||
70 | } | ||
71 | |||
72 | #define __arch__swab16(x) ___arch__swab16(x) | 65 | #define __arch__swab16(x) ___arch__swab16(x) |
73 | #define __arch__swab32(x) ___arch__swab32(x) | 66 | #define __arch__swab32(x) ___arch__swab32(x) |
74 | #define __arch__swab64(x) ___arch__swab64(x) | ||
75 | |||
76 | #endif | ||
77 | 67 | ||
78 | /* The same, but returns converted value from the location pointer by addr. */ | 68 | /* The same, but returns converted value from the location pointer by addr. */ |
79 | #define __arch__swab16p(addr) ld_le16(addr) | 69 | #define __arch__swab16p(addr) ld_le16(addr) |
diff --git a/include/asm-ppc64/iSeries/ItLpQueue.h b/include/asm-ppc64/iSeries/ItLpQueue.h index 393299e04d7f..69b26ad74135 100644 --- a/include/asm-ppc64/iSeries/ItLpQueue.h +++ b/include/asm-ppc64/iSeries/ItLpQueue.h | |||
@@ -41,7 +41,7 @@ struct HvLpEvent; | |||
41 | #define LpEventMaxSize 256 | 41 | #define LpEventMaxSize 256 |
42 | #define LpEventAlign 64 | 42 | #define LpEventAlign 64 |
43 | 43 | ||
44 | struct ItLpQueue { | 44 | struct hvlpevent_queue { |
45 | /* | 45 | /* |
46 | * The xSlicCurEventPtr is the pointer to the next event stack entry | 46 | * The xSlicCurEventPtr is the pointer to the next event stack entry |
47 | * that will become valid. The OS must peek at this entry to determine | 47 | * that will become valid. The OS must peek at this entry to determine |
@@ -69,16 +69,13 @@ struct ItLpQueue { | |||
69 | char *xSlicEventStackPtr; // 0x20 | 69 | char *xSlicEventStackPtr; // 0x20 |
70 | u8 xIndex; // 0x28 unique sequential index. | 70 | u8 xIndex; // 0x28 unique sequential index. |
71 | u8 xSlicRsvd[3]; // 0x29-2b | 71 | u8 xSlicRsvd[3]; // 0x29-2b |
72 | u32 xInUseWord; // 0x2C | 72 | spinlock_t lock; |
73 | u64 xLpIntCount; // 0x30 Total Lp Int msgs processed | ||
74 | u64 xLpIntCountByType[9]; // 0x38-0x7F Event counts by type | ||
75 | }; | 73 | }; |
76 | 74 | ||
77 | extern struct ItLpQueue xItLpQueue; | 75 | extern struct hvlpevent_queue hvlpevent_queue; |
78 | 76 | ||
79 | extern struct HvLpEvent *ItLpQueue_getNextLpEvent(struct ItLpQueue *); | 77 | extern int hvlpevent_is_pending(void); |
80 | extern int ItLpQueue_isLpIntPending(struct ItLpQueue *); | 78 | extern void process_hvlpevents(struct pt_regs *); |
81 | extern unsigned ItLpQueue_process(struct ItLpQueue *, struct pt_regs *); | 79 | extern void setup_hvlpevent_queue(void); |
82 | extern void ItLpQueue_clearValid(struct HvLpEvent *); | ||
83 | 80 | ||
84 | #endif /* _ITLPQUEUE_H */ | 81 | #endif /* _ITLPQUEUE_H */ |
diff --git a/include/asm-ppc64/kprobes.h b/include/asm-ppc64/kprobes.h index 19b468bed059..0802919c3235 100644 --- a/include/asm-ppc64/kprobes.h +++ b/include/asm-ppc64/kprobes.h | |||
@@ -42,10 +42,13 @@ typedef unsigned int kprobe_opcode_t; | |||
42 | 42 | ||
43 | #define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)((func_descr_t *)pentry) | 43 | #define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)((func_descr_t *)pentry) |
44 | 44 | ||
45 | #define ARCH_SUPPORTS_KRETPROBES | ||
46 | void kretprobe_trampoline(void); | ||
47 | |||
45 | /* Architecture specific copy of original instruction */ | 48 | /* Architecture specific copy of original instruction */ |
46 | struct arch_specific_insn { | 49 | struct arch_specific_insn { |
47 | /* copy of original instruction */ | 50 | /* copy of original instruction */ |
48 | kprobe_opcode_t insn[MAX_INSN_SIZE]; | 51 | kprobe_opcode_t *insn; |
49 | }; | 52 | }; |
50 | 53 | ||
51 | #ifdef CONFIG_KPROBES | 54 | #ifdef CONFIG_KPROBES |
diff --git a/include/asm-ppc64/paca.h b/include/asm-ppc64/paca.h index ae76cae1483f..2f0f36f73d38 100644 --- a/include/asm-ppc64/paca.h +++ b/include/asm-ppc64/paca.h | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <asm/types.h> | 20 | #include <asm/types.h> |
21 | #include <asm/lppaca.h> | 21 | #include <asm/lppaca.h> |
22 | #include <asm/iSeries/ItLpRegSave.h> | 22 | #include <asm/iSeries/ItLpRegSave.h> |
23 | #include <asm/iSeries/ItLpQueue.h> | ||
24 | #include <asm/mmu.h> | 23 | #include <asm/mmu.h> |
25 | 24 | ||
26 | register struct paca_struct *local_paca asm("r13"); | 25 | register struct paca_struct *local_paca asm("r13"); |
@@ -62,7 +61,6 @@ struct paca_struct { | |||
62 | u16 paca_index; /* Logical processor number */ | 61 | u16 paca_index; /* Logical processor number */ |
63 | 62 | ||
64 | u32 default_decr; /* Default decrementer value */ | 63 | u32 default_decr; /* Default decrementer value */ |
65 | struct ItLpQueue *lpqueue_ptr; /* LpQueue handled by this CPU */ | ||
66 | u64 kernel_toc; /* Kernel TOC address */ | 64 | u64 kernel_toc; /* Kernel TOC address */ |
67 | u64 stab_real; /* Absolute address of segment table */ | 65 | u64 stab_real; /* Absolute address of segment table */ |
68 | u64 stab_addr; /* Virtual address of segment table */ | 66 | u64 stab_addr; /* Virtual address of segment table */ |
@@ -91,7 +89,6 @@ struct paca_struct { | |||
91 | u64 next_jiffy_update_tb; /* TB value for next jiffy update */ | 89 | u64 next_jiffy_update_tb; /* TB value for next jiffy update */ |
92 | u64 saved_r1; /* r1 save for RTAS calls */ | 90 | u64 saved_r1; /* r1 save for RTAS calls */ |
93 | u64 saved_msr; /* MSR saved here by enter_rtas */ | 91 | u64 saved_msr; /* MSR saved here by enter_rtas */ |
94 | u32 lpevent_count; /* lpevents processed */ | ||
95 | u8 proc_enabled; /* irq soft-enable flag */ | 92 | u8 proc_enabled; /* irq soft-enable flag */ |
96 | 93 | ||
97 | /* not yet used */ | 94 | /* not yet used */ |
diff --git a/include/asm-ppc64/pci.h b/include/asm-ppc64/pci.h index 6cd593f660a0..d12dfce21e20 100644 --- a/include/asm-ppc64/pci.h +++ b/include/asm-ppc64/pci.h | |||
@@ -78,6 +78,25 @@ static inline int pci_dac_dma_supported(struct pci_dev *hwdev,u64 mask) | |||
78 | return 0; | 78 | return 0; |
79 | } | 79 | } |
80 | 80 | ||
81 | #ifdef CONFIG_PCI | ||
82 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | ||
83 | enum pci_dma_burst_strategy *strat, | ||
84 | unsigned long *strategy_parameter) | ||
85 | { | ||
86 | unsigned long cacheline_size; | ||
87 | u8 byte; | ||
88 | |||
89 | pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &byte); | ||
90 | if (byte == 0) | ||
91 | cacheline_size = 1024; | ||
92 | else | ||
93 | cacheline_size = (int) byte * 4; | ||
94 | |||
95 | *strat = PCI_DMA_BURST_MULTIPLE; | ||
96 | *strategy_parameter = cacheline_size; | ||
97 | } | ||
98 | #endif | ||
99 | |||
81 | extern int pci_domain_nr(struct pci_bus *bus); | 100 | extern int pci_domain_nr(struct pci_bus *bus); |
82 | 101 | ||
83 | /* Decide whether to display the domain number in /proc */ | 102 | /* Decide whether to display the domain number in /proc */ |
@@ -136,6 +155,13 @@ extern pgprot_t pci_phys_mem_access_prot(struct file *file, | |||
136 | unsigned long size, | 155 | unsigned long size, |
137 | pgprot_t prot); | 156 | pgprot_t prot); |
138 | 157 | ||
158 | #ifdef CONFIG_PPC_MULTIPLATFORM | ||
159 | #define HAVE_ARCH_PCI_RESOURCE_TO_USER | ||
160 | extern void pci_resource_to_user(const struct pci_dev *dev, int bar, | ||
161 | const struct resource *rsrc, | ||
162 | u64 *start, u64 *end); | ||
163 | #endif /* CONFIG_PPC_MULTIPLATFORM */ | ||
164 | |||
139 | 165 | ||
140 | #endif /* __KERNEL__ */ | 166 | #endif /* __KERNEL__ */ |
141 | 167 | ||