diff options
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/cputable.h | 3 | ||||
-rw-r--r-- | include/asm-powerpc/hvcall.h | 113 | ||||
-rw-r--r-- | include/asm-powerpc/ibmebus.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/irq.h | 24 | ||||
-rw-r--r-- | include/asm-powerpc/iseries/hv_call_xm.h | 17 | ||||
-rw-r--r-- | include/asm-powerpc/iseries/hv_lp_config.h | 13 | ||||
-rw-r--r-- | include/asm-powerpc/iseries/it_exp_vpd_panel.h | 51 | ||||
-rw-r--r-- | include/asm-powerpc/iseries/it_lp_naca.h | 80 | ||||
-rw-r--r-- | include/asm-powerpc/iseries/it_lp_queue.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/iseries/vio.h | 28 | ||||
-rw-r--r-- | include/asm-powerpc/lppaca.h | 23 | ||||
-rw-r--r-- | include/asm-powerpc/paca.h | 3 | ||||
-rw-r--r-- | include/asm-powerpc/processor.h | 1 | ||||
-rw-r--r-- | include/asm-powerpc/prom.h | 28 | ||||
-rw-r--r-- | include/asm-powerpc/rtas.h | 16 | ||||
-rw-r--r-- | include/asm-powerpc/smu.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/spu.h | 2 | ||||
-rw-r--r-- | include/asm-powerpc/system.h | 5 | ||||
-rw-r--r-- | include/asm-powerpc/vio.h | 4 |
19 files changed, 138 insertions, 279 deletions
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 1ba3c9983614..748bc1805da9 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -36,6 +36,7 @@ | |||
36 | struct cpu_spec; | 36 | struct cpu_spec; |
37 | 37 | ||
38 | typedef void (*cpu_setup_t)(unsigned long offset, struct cpu_spec* spec); | 38 | typedef void (*cpu_setup_t)(unsigned long offset, struct cpu_spec* spec); |
39 | typedef void (*cpu_restore_t)(void); | ||
39 | 40 | ||
40 | enum powerpc_oprofile_type { | 41 | enum powerpc_oprofile_type { |
41 | PPC_OPROFILE_INVALID = 0, | 42 | PPC_OPROFILE_INVALID = 0, |
@@ -65,6 +66,8 @@ struct cpu_spec { | |||
65 | * BHT, SPD, etc... from head.S before branching to identify_machine | 66 | * BHT, SPD, etc... from head.S before branching to identify_machine |
66 | */ | 67 | */ |
67 | cpu_setup_t cpu_setup; | 68 | cpu_setup_t cpu_setup; |
69 | /* Used to restore cpu setup on secondary processors and at resume */ | ||
70 | cpu_restore_t cpu_restore; | ||
68 | 71 | ||
69 | /* Used by oprofile userspace to select the right counters */ | 72 | /* Used by oprofile userspace to select the right counters */ |
70 | char *oprofile_cpu_type; | 73 | char *oprofile_cpu_type; |
diff --git a/include/asm-powerpc/hvcall.h b/include/asm-powerpc/hvcall.h index 0d3c4e85711a..63ce1ac8c1f4 100644 --- a/include/asm-powerpc/hvcall.h +++ b/include/asm-powerpc/hvcall.h | |||
@@ -164,9 +164,15 @@ | |||
164 | #define H_VIO_SIGNAL 0x104 | 164 | #define H_VIO_SIGNAL 0x104 |
165 | #define H_SEND_CRQ 0x108 | 165 | #define H_SEND_CRQ 0x108 |
166 | #define H_COPY_RDMA 0x110 | 166 | #define H_COPY_RDMA 0x110 |
167 | #define H_REGISTER_LOGICAL_LAN 0x114 | ||
168 | #define H_FREE_LOGICAL_LAN 0x118 | ||
169 | #define H_ADD_LOGICAL_LAN_BUFFER 0x11C | ||
170 | #define H_SEND_LOGICAL_LAN 0x120 | ||
171 | #define H_MULTICAST_CTRL 0x130 | ||
167 | #define H_SET_XDABR 0x134 | 172 | #define H_SET_XDABR 0x134 |
168 | #define H_STUFF_TCE 0x138 | 173 | #define H_STUFF_TCE 0x138 |
169 | #define H_PUT_TCE_INDIRECT 0x13C | 174 | #define H_PUT_TCE_INDIRECT 0x13C |
175 | #define H_CHANGE_LOGICAL_LAN_MAC 0x14C | ||
170 | #define H_VTERM_PARTNER_INFO 0x150 | 176 | #define H_VTERM_PARTNER_INFO 0x150 |
171 | #define H_REGISTER_VTERM 0x154 | 177 | #define H_REGISTER_VTERM 0x154 |
172 | #define H_FREE_VTERM 0x158 | 178 | #define H_FREE_VTERM 0x158 |
@@ -196,102 +202,49 @@ | |||
196 | #define H_GET_HCA_INFO 0x1B8 | 202 | #define H_GET_HCA_INFO 0x1B8 |
197 | #define H_GET_PERF_COUNT 0x1BC | 203 | #define H_GET_PERF_COUNT 0x1BC |
198 | #define H_MANAGE_TRACE 0x1C0 | 204 | #define H_MANAGE_TRACE 0x1C0 |
205 | #define H_FREE_LOGICAL_LAN_BUFFER 0x1D4 | ||
199 | #define H_QUERY_INT_STATE 0x1E4 | 206 | #define H_QUERY_INT_STATE 0x1E4 |
200 | #define H_POLL_PENDING 0x1D8 | 207 | #define H_POLL_PENDING 0x1D8 |
201 | #define H_JOIN 0x298 | 208 | #define H_JOIN 0x298 |
202 | #define H_VASI_STATE 0x2A4 | 209 | #define H_VASI_STATE 0x2A4 |
203 | #define H_ENABLE_CRQ 0x2B0 | 210 | #define H_ENABLE_CRQ 0x2B0 |
211 | #define MAX_HCALL_OPCODES (H_ENABLE_CRQ >> 2) | ||
204 | 212 | ||
205 | #ifndef __ASSEMBLY__ | 213 | #ifndef __ASSEMBLY__ |
206 | 214 | ||
207 | /* plpar_hcall() -- Generic call interface using above opcodes | 215 | /** |
216 | * plpar_hcall_norets: - Make a pseries hypervisor call with no return arguments | ||
217 | * @opcode: The hypervisor call to make. | ||
208 | * | 218 | * |
209 | * The actual call interface is a hypervisor call instruction with | 219 | * This call supports up to 7 arguments and only returns the status of |
210 | * the opcode in R3 and input args in R4-R7. | 220 | * the hcall. Use this version where possible, its slightly faster than |
211 | * Status is returned in R3 with variable output values in R4-R11. | 221 | * the other plpar_hcalls. |
212 | * Only H_PTE_READ with H_READ_4 uses R6-R11 so we ignore it for now | ||
213 | * and return only two out args which MUST ALWAYS BE PROVIDED. | ||
214 | */ | ||
215 | long plpar_hcall(unsigned long opcode, | ||
216 | unsigned long arg1, | ||
217 | unsigned long arg2, | ||
218 | unsigned long arg3, | ||
219 | unsigned long arg4, | ||
220 | unsigned long *out1, | ||
221 | unsigned long *out2, | ||
222 | unsigned long *out3); | ||
223 | |||
224 | /* Same as plpar_hcall but for those opcodes that return no values | ||
225 | * other than status. Slightly more efficient. | ||
226 | */ | 222 | */ |
227 | long plpar_hcall_norets(unsigned long opcode, ...); | 223 | long plpar_hcall_norets(unsigned long opcode, ...); |
228 | 224 | ||
229 | /* | 225 | /** |
230 | * Special hcall interface for ibmveth support. | 226 | * plpar_hcall: - Make a pseries hypervisor call |
231 | * Takes 8 input parms. Returns a rc and stores the | 227 | * @opcode: The hypervisor call to make. |
232 | * R4 return value in *out1. | 228 | * @retbuf: Buffer to store up to 4 return arguments in. |
233 | */ | ||
234 | long plpar_hcall_8arg_2ret(unsigned long opcode, | ||
235 | unsigned long arg1, | ||
236 | unsigned long arg2, | ||
237 | unsigned long arg3, | ||
238 | unsigned long arg4, | ||
239 | unsigned long arg5, | ||
240 | unsigned long arg6, | ||
241 | unsigned long arg7, | ||
242 | unsigned long arg8, | ||
243 | unsigned long *out1); | ||
244 | |||
245 | /* plpar_hcall_4out() | ||
246 | * | 229 | * |
247 | * same as plpar_hcall except with 4 output arguments. | 230 | * This call supports up to 6 arguments and 4 return arguments. Use |
231 | * PLPAR_HCALL_BUFSIZE to size the return argument buffer. | ||
248 | * | 232 | * |
233 | * Used for all but the craziest of phyp interfaces (see plpar_hcall9) | ||
249 | */ | 234 | */ |
250 | long plpar_hcall_4out(unsigned long opcode, | 235 | #define PLPAR_HCALL_BUFSIZE 4 |
251 | unsigned long arg1, | 236 | long plpar_hcall(unsigned long opcode, unsigned long *retbuf, ...); |
252 | unsigned long arg2, | ||
253 | unsigned long arg3, | ||
254 | unsigned long arg4, | ||
255 | unsigned long *out1, | ||
256 | unsigned long *out2, | ||
257 | unsigned long *out3, | ||
258 | unsigned long *out4); | ||
259 | 237 | ||
260 | long plpar_hcall_7arg_7ret(unsigned long opcode, | 238 | /** |
261 | unsigned long arg1, | 239 | * plpar_hcall9: - Make a pseries hypervisor call with up to 9 return arguments |
262 | unsigned long arg2, | 240 | * @opcode: The hypervisor call to make. |
263 | unsigned long arg3, | 241 | * @retbuf: Buffer to store up to 9 return arguments in. |
264 | unsigned long arg4, | 242 | * |
265 | unsigned long arg5, | 243 | * This call supports up to 9 arguments and 9 return arguments. Use |
266 | unsigned long arg6, | 244 | * PLPAR_HCALL9_BUFSIZE to size the return argument buffer. |
267 | unsigned long arg7, | 245 | */ |
268 | unsigned long *out1, | 246 | #define PLPAR_HCALL9_BUFSIZE 9 |
269 | unsigned long *out2, | 247 | long plpar_hcall9(unsigned long opcode, unsigned long *retbuf, ...); |
270 | unsigned long *out3, | ||
271 | unsigned long *out4, | ||
272 | unsigned long *out5, | ||
273 | unsigned long *out6, | ||
274 | unsigned long *out7); | ||
275 | |||
276 | long plpar_hcall_9arg_9ret(unsigned long opcode, | ||
277 | unsigned long arg1, | ||
278 | unsigned long arg2, | ||
279 | unsigned long arg3, | ||
280 | unsigned long arg4, | ||
281 | unsigned long arg5, | ||
282 | unsigned long arg6, | ||
283 | unsigned long arg7, | ||
284 | unsigned long arg8, | ||
285 | unsigned long arg9, | ||
286 | unsigned long *out1, | ||
287 | unsigned long *out2, | ||
288 | unsigned long *out3, | ||
289 | unsigned long *out4, | ||
290 | unsigned long *out5, | ||
291 | unsigned long *out6, | ||
292 | unsigned long *out7, | ||
293 | unsigned long *out8, | ||
294 | unsigned long *out9); | ||
295 | 248 | ||
296 | #endif /* __ASSEMBLY__ */ | 249 | #endif /* __ASSEMBLY__ */ |
297 | #endif /* __KERNEL__ */ | 250 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-powerpc/ibmebus.h b/include/asm-powerpc/ibmebus.h index 7a42723d107c..7ab195a27888 100644 --- a/include/asm-powerpc/ibmebus.h +++ b/include/asm-powerpc/ibmebus.h | |||
@@ -48,7 +48,7 @@ extern struct dma_mapping_ops ibmebus_dma_ops; | |||
48 | extern struct bus_type ibmebus_bus_type; | 48 | extern struct bus_type ibmebus_bus_type; |
49 | 49 | ||
50 | struct ibmebus_dev { | 50 | struct ibmebus_dev { |
51 | char *name; | 51 | const char *name; |
52 | struct of_device ofdev; | 52 | struct of_device ofdev; |
53 | }; | 53 | }; |
54 | 54 | ||
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h index d903a62959da..4da41efb1319 100644 --- a/include/asm-powerpc/irq.h +++ b/include/asm-powerpc/irq.h | |||
@@ -137,7 +137,7 @@ struct irq_map_entry { | |||
137 | extern struct irq_map_entry irq_map[NR_IRQS]; | 137 | extern struct irq_map_entry irq_map[NR_IRQS]; |
138 | 138 | ||
139 | 139 | ||
140 | /*** | 140 | /** |
141 | * irq_alloc_host - Allocate a new irq_host data structure | 141 | * irq_alloc_host - Allocate a new irq_host data structure |
142 | * @node: device-tree node of the interrupt controller | 142 | * @node: device-tree node of the interrupt controller |
143 | * @revmap_type: type of reverse mapping to use | 143 | * @revmap_type: type of reverse mapping to use |
@@ -159,14 +159,14 @@ extern struct irq_host *irq_alloc_host(unsigned int revmap_type, | |||
159 | irq_hw_number_t inval_irq); | 159 | irq_hw_number_t inval_irq); |
160 | 160 | ||
161 | 161 | ||
162 | /*** | 162 | /** |
163 | * irq_find_host - Locates a host for a given device node | 163 | * irq_find_host - Locates a host for a given device node |
164 | * @node: device-tree node of the interrupt controller | 164 | * @node: device-tree node of the interrupt controller |
165 | */ | 165 | */ |
166 | extern struct irq_host *irq_find_host(struct device_node *node); | 166 | extern struct irq_host *irq_find_host(struct device_node *node); |
167 | 167 | ||
168 | 168 | ||
169 | /*** | 169 | /** |
170 | * irq_set_default_host - Set a "default" host | 170 | * irq_set_default_host - Set a "default" host |
171 | * @host: default host pointer | 171 | * @host: default host pointer |
172 | * | 172 | * |
@@ -178,7 +178,7 @@ extern struct irq_host *irq_find_host(struct device_node *node); | |||
178 | extern void irq_set_default_host(struct irq_host *host); | 178 | extern void irq_set_default_host(struct irq_host *host); |
179 | 179 | ||
180 | 180 | ||
181 | /*** | 181 | /** |
182 | * irq_set_virq_count - Set the maximum number of virt irqs | 182 | * irq_set_virq_count - Set the maximum number of virt irqs |
183 | * @count: number of linux virtual irqs, capped with NR_IRQS | 183 | * @count: number of linux virtual irqs, capped with NR_IRQS |
184 | * | 184 | * |
@@ -188,7 +188,7 @@ extern void irq_set_default_host(struct irq_host *host); | |||
188 | extern void irq_set_virq_count(unsigned int count); | 188 | extern void irq_set_virq_count(unsigned int count); |
189 | 189 | ||
190 | 190 | ||
191 | /*** | 191 | /** |
192 | * irq_create_mapping - Map a hardware interrupt into linux virq space | 192 | * irq_create_mapping - Map a hardware interrupt into linux virq space |
193 | * @host: host owning this hardware interrupt or NULL for default host | 193 | * @host: host owning this hardware interrupt or NULL for default host |
194 | * @hwirq: hardware irq number in that host space | 194 | * @hwirq: hardware irq number in that host space |
@@ -202,13 +202,13 @@ extern unsigned int irq_create_mapping(struct irq_host *host, | |||
202 | irq_hw_number_t hwirq); | 202 | irq_hw_number_t hwirq); |
203 | 203 | ||
204 | 204 | ||
205 | /*** | 205 | /** |
206 | * irq_dispose_mapping - Unmap an interrupt | 206 | * irq_dispose_mapping - Unmap an interrupt |
207 | * @virq: linux virq number of the interrupt to unmap | 207 | * @virq: linux virq number of the interrupt to unmap |
208 | */ | 208 | */ |
209 | extern void irq_dispose_mapping(unsigned int virq); | 209 | extern void irq_dispose_mapping(unsigned int virq); |
210 | 210 | ||
211 | /*** | 211 | /** |
212 | * irq_find_mapping - Find a linux virq from an hw irq number. | 212 | * irq_find_mapping - Find a linux virq from an hw irq number. |
213 | * @host: host owning this hardware interrupt | 213 | * @host: host owning this hardware interrupt |
214 | * @hwirq: hardware irq number in that host space | 214 | * @hwirq: hardware irq number in that host space |
@@ -221,7 +221,7 @@ extern unsigned int irq_find_mapping(struct irq_host *host, | |||
221 | irq_hw_number_t hwirq); | 221 | irq_hw_number_t hwirq); |
222 | 222 | ||
223 | 223 | ||
224 | /*** | 224 | /** |
225 | * irq_radix_revmap - Find a linux virq from a hw irq number. | 225 | * irq_radix_revmap - Find a linux virq from a hw irq number. |
226 | * @host: host owning this hardware interrupt | 226 | * @host: host owning this hardware interrupt |
227 | * @hwirq: hardware irq number in that host space | 227 | * @hwirq: hardware irq number in that host space |
@@ -232,7 +232,7 @@ extern unsigned int irq_find_mapping(struct irq_host *host, | |||
232 | extern unsigned int irq_radix_revmap(struct irq_host *host, | 232 | extern unsigned int irq_radix_revmap(struct irq_host *host, |
233 | irq_hw_number_t hwirq); | 233 | irq_hw_number_t hwirq); |
234 | 234 | ||
235 | /*** | 235 | /** |
236 | * irq_linear_revmap - Find a linux virq from a hw irq number. | 236 | * irq_linear_revmap - Find a linux virq from a hw irq number. |
237 | * @host: host owning this hardware interrupt | 237 | * @host: host owning this hardware interrupt |
238 | * @hwirq: hardware irq number in that host space | 238 | * @hwirq: hardware irq number in that host space |
@@ -247,7 +247,7 @@ extern unsigned int irq_linear_revmap(struct irq_host *host, | |||
247 | 247 | ||
248 | 248 | ||
249 | 249 | ||
250 | /*** | 250 | /** |
251 | * irq_alloc_virt - Allocate virtual irq numbers | 251 | * irq_alloc_virt - Allocate virtual irq numbers |
252 | * @host: host owning these new virtual irqs | 252 | * @host: host owning these new virtual irqs |
253 | * @count: number of consecutive numbers to allocate | 253 | * @count: number of consecutive numbers to allocate |
@@ -261,7 +261,7 @@ extern unsigned int irq_alloc_virt(struct irq_host *host, | |||
261 | unsigned int count, | 261 | unsigned int count, |
262 | unsigned int hint); | 262 | unsigned int hint); |
263 | 263 | ||
264 | /*** | 264 | /** |
265 | * irq_free_virt - Free virtual irq numbers | 265 | * irq_free_virt - Free virtual irq numbers |
266 | * @virq: virtual irq number of the first interrupt to free | 266 | * @virq: virtual irq number of the first interrupt to free |
267 | * @count: number of interrupts to free | 267 | * @count: number of interrupts to free |
@@ -300,7 +300,7 @@ extern unsigned int irq_of_parse_and_map(struct device_node *dev, int index); | |||
300 | 300 | ||
301 | /* -- End OF helpers -- */ | 301 | /* -- End OF helpers -- */ |
302 | 302 | ||
303 | /*** | 303 | /** |
304 | * irq_early_init - Init irq remapping subsystem | 304 | * irq_early_init - Init irq remapping subsystem |
305 | */ | 305 | */ |
306 | extern void irq_early_init(void); | 306 | extern void irq_early_init(void); |
diff --git a/include/asm-powerpc/iseries/hv_call_xm.h b/include/asm-powerpc/iseries/hv_call_xm.h index ca9202cb01ed..392ac3f54df0 100644 --- a/include/asm-powerpc/iseries/hv_call_xm.h +++ b/include/asm-powerpc/iseries/hv_call_xm.h | |||
@@ -16,23 +16,6 @@ | |||
16 | #define HvCallXmSetTce HvCallXm + 11 | 16 | #define HvCallXmSetTce HvCallXm + 11 |
17 | #define HvCallXmSetTces HvCallXm + 13 | 17 | #define HvCallXmSetTces HvCallXm + 13 |
18 | 18 | ||
19 | /* | ||
20 | * Structure passed to HvCallXm_getTceTableParms | ||
21 | */ | ||
22 | struct iommu_table_cb { | ||
23 | unsigned long itc_busno; /* Bus number for this tce table */ | ||
24 | unsigned long itc_start; /* Will be NULL for secondary */ | ||
25 | unsigned long itc_totalsize; /* Size (in pages) of whole table */ | ||
26 | unsigned long itc_offset; /* Index into real tce table of the | ||
27 | start of our section */ | ||
28 | unsigned long itc_size; /* Size (in pages) of our section */ | ||
29 | unsigned long itc_index; /* Index of this tce table */ | ||
30 | unsigned short itc_maxtables; /* Max num of tables for partition */ | ||
31 | unsigned char itc_virtbus; /* Flag to indicate virtual bus */ | ||
32 | unsigned char itc_slotno; /* IOA Tce Slot Index */ | ||
33 | unsigned char itc_rsvd[4]; | ||
34 | }; | ||
35 | |||
36 | static inline void HvCallXm_getTceTableParms(u64 cb) | 19 | static inline void HvCallXm_getTceTableParms(u64 cb) |
37 | { | 20 | { |
38 | HvCall1(HvCallXmGetTceTableParms, cb); | 21 | HvCall1(HvCallXmGetTceTableParms, cb); |
diff --git a/include/asm-powerpc/iseries/hv_lp_config.h b/include/asm-powerpc/iseries/hv_lp_config.h index df8b20739719..a006fd1e4a2c 100644 --- a/include/asm-powerpc/iseries/hv_lp_config.h +++ b/include/asm-powerpc/iseries/hv_lp_config.h | |||
@@ -25,7 +25,6 @@ | |||
25 | 25 | ||
26 | #include <asm/iseries/hv_call_sc.h> | 26 | #include <asm/iseries/hv_call_sc.h> |
27 | #include <asm/iseries/hv_types.h> | 27 | #include <asm/iseries/hv_types.h> |
28 | #include <asm/iseries/it_lp_naca.h> | ||
29 | 28 | ||
30 | enum { | 29 | enum { |
31 | HvCallCfg_Cur = 0, | 30 | HvCallCfg_Cur = 0, |
@@ -44,16 +43,8 @@ enum { | |||
44 | #define HvCallCfgGetHostingLpIndex HvCallCfg + 32 | 43 | #define HvCallCfgGetHostingLpIndex HvCallCfg + 32 |
45 | 44 | ||
46 | extern HvLpIndex HvLpConfig_getLpIndex_outline(void); | 45 | extern HvLpIndex HvLpConfig_getLpIndex_outline(void); |
47 | 46 | extern HvLpIndex HvLpConfig_getLpIndex(void); | |
48 | static inline HvLpIndex HvLpConfig_getLpIndex(void) | 47 | extern HvLpIndex HvLpConfig_getPrimaryLpIndex(void); |
49 | { | ||
50 | return itLpNaca.xLpIndex; | ||
51 | } | ||
52 | |||
53 | static inline HvLpIndex HvLpConfig_getPrimaryLpIndex(void) | ||
54 | { | ||
55 | return itLpNaca.xPrimaryLpIndex; | ||
56 | } | ||
57 | 48 | ||
58 | static inline u64 HvLpConfig_getMsChunks(void) | 49 | static inline u64 HvLpConfig_getMsChunks(void) |
59 | { | 50 | { |
diff --git a/include/asm-powerpc/iseries/it_exp_vpd_panel.h b/include/asm-powerpc/iseries/it_exp_vpd_panel.h deleted file mode 100644 index 304a609ae21a..000000000000 --- a/include/asm-powerpc/iseries/it_exp_vpd_panel.h +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Dave Boutcher IBM Corporation | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | #ifndef _ASM_POWERPC_ISERIES_IT_EXT_VPD_PANEL_H | ||
19 | #define _ASM_POWERPC_ISERIES_IT_EXT_VPD_PANEL_H | ||
20 | |||
21 | /* | ||
22 | * This struct maps the panel information | ||
23 | * | ||
24 | * Warning: | ||
25 | * This data must match the architecture for the panel information | ||
26 | */ | ||
27 | |||
28 | #include <asm/types.h> | ||
29 | |||
30 | struct ItExtVpdPanel { | ||
31 | /* Definition of the Extended Vpd On Panel Data Area */ | ||
32 | char systemSerial[8]; | ||
33 | char mfgID[4]; | ||
34 | char reserved1[24]; | ||
35 | char machineType[4]; | ||
36 | char systemID[6]; | ||
37 | char somUniqueCnt[4]; | ||
38 | char serialNumberCount; | ||
39 | char reserved2[7]; | ||
40 | u16 bbu3; | ||
41 | u16 bbu2; | ||
42 | u16 bbu1; | ||
43 | char xLocationLabel[8]; | ||
44 | u8 xRsvd1[6]; | ||
45 | u16 xFrameId; | ||
46 | u8 xRsvd2[48]; | ||
47 | }; | ||
48 | |||
49 | extern struct ItExtVpdPanel xItExtVpdPanel; | ||
50 | |||
51 | #endif /* _ASM_POWERPC_ISERIES_IT_EXT_VPD_PANEL_H */ | ||
diff --git a/include/asm-powerpc/iseries/it_lp_naca.h b/include/asm-powerpc/iseries/it_lp_naca.h deleted file mode 100644 index 4fdcf052927f..000000000000 --- a/include/asm-powerpc/iseries/it_lp_naca.h +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2001 Mike Corrigan IBM Corporation | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | #ifndef _ASM_POWERPC_ISERIES_IT_LP_NACA_H | ||
19 | #define _ASM_POWERPC_ISERIES_IT_LP_NACA_H | ||
20 | |||
21 | #include <linux/types.h> | ||
22 | |||
23 | /* | ||
24 | * This control block contains the data that is shared between the | ||
25 | * hypervisor (PLIC) and the OS. | ||
26 | */ | ||
27 | |||
28 | struct ItLpNaca { | ||
29 | // CACHE_LINE_1 0x0000 - 0x007F Contains read-only data | ||
30 | u32 xDesc; // Eye catcher x00-x03 | ||
31 | u16 xSize; // Size of this class x04-x05 | ||
32 | u16 xIntHdlrOffset; // Offset to IntHdlr array x06-x07 | ||
33 | u8 xMaxIntHdlrEntries; // Number of entries in array x08-x08 | ||
34 | u8 xPrimaryLpIndex; // LP Index of Primary x09-x09 | ||
35 | u8 xServiceLpIndex; // LP Ind of Service Focal Pointx0A-x0A | ||
36 | u8 xLpIndex; // LP Index x0B-x0B | ||
37 | u16 xMaxLpQueues; // Number of allocated queues x0C-x0D | ||
38 | u16 xLpQueueOffset; // Offset to start of LP queues x0E-x0F | ||
39 | u8 xPirEnvironMode; // Piranha or hardware x10-x10 | ||
40 | u8 xPirConsoleMode; // Piranha console indicator x11-x11 | ||
41 | u8 xPirDasdMode; // Piranha dasd indicator x12-x12 | ||
42 | u8 xRsvd1_0[5]; // Reserved for Piranha related x13-x17 | ||
43 | u8 flags; // flags, see below x18-x1F | ||
44 | u8 xSpVpdFormat; // VPD areas are in CSP format ... | ||
45 | u8 xIntProcRatio; // Ratio of int procs to procs ... | ||
46 | u8 xRsvd1_2[5]; // Reserved ... | ||
47 | u16 xRsvd1_3; // Reserved x20-x21 | ||
48 | u16 xPlicVrmIndex; // VRM index of PLIC x22-x23 | ||
49 | u16 xMinSupportedSlicVrmInd;// Min supported OS VRM index x24-x25 | ||
50 | u16 xMinCompatableSlicVrmInd;// Min compatible OS VRM index x26-x27 | ||
51 | u64 xLoadAreaAddr; // ER address of load area x28-x2F | ||
52 | u32 xLoadAreaChunks; // Chunks for the load area x30-x33 | ||
53 | u32 xPaseSysCallCRMask; // Mask used to test CR before x34-x37 | ||
54 | // doing an ASR switch on PASE | ||
55 | // system call. | ||
56 | u64 xSlicSegmentTablePtr; // Pointer to Slic seg table. x38-x3f | ||
57 | u8 xRsvd1_4[64]; // x40-x7F | ||
58 | |||
59 | // CACHE_LINE_2 0x0080 - 0x00FF Contains local read-write data | ||
60 | u8 xRsvd2_0[128]; // Reserved x00-x7F | ||
61 | |||
62 | // CACHE_LINE_3-6 0x0100 - 0x02FF Contains LP Queue indicators | ||
63 | // NB: Padding required to keep xInterrruptHdlr at x300 which is required | ||
64 | // for v4r4 PLIC. | ||
65 | u8 xOldLpQueue[128]; // LP Queue needed for v4r4 100-17F | ||
66 | u8 xRsvd3_0[384]; // Reserved 180-2FF | ||
67 | |||
68 | // CACHE_LINE_7-8 0x0300 - 0x03FF Contains the address of the OS interrupt | ||
69 | // handlers | ||
70 | u64 xInterruptHdlr[32]; // Interrupt handlers 300-x3FF | ||
71 | }; | ||
72 | |||
73 | extern struct ItLpNaca itLpNaca; | ||
74 | |||
75 | #define ITLPNACA_LPAR 0x80 /* Is LPAR installed on the system */ | ||
76 | #define ITLPNACA_PARTITIONED 0x40 /* Is the system partitioned */ | ||
77 | #define ITLPNACA_HWSYNCEDTBS 0x20 /* Hardware synced TBs */ | ||
78 | #define ITLPNACA_HMTINT 0x10 /* Utilize MHT for interrupts */ | ||
79 | |||
80 | #endif /* _ASM_POWERPC_ISERIES_IT_LP_NACA_H */ | ||
diff --git a/include/asm-powerpc/iseries/it_lp_queue.h b/include/asm-powerpc/iseries/it_lp_queue.h index 284c5a7db3ac..3f6814769295 100644 --- a/include/asm-powerpc/iseries/it_lp_queue.h +++ b/include/asm-powerpc/iseries/it_lp_queue.h | |||
@@ -27,8 +27,6 @@ | |||
27 | #include <asm/types.h> | 27 | #include <asm/types.h> |
28 | #include <asm/ptrace.h> | 28 | #include <asm/ptrace.h> |
29 | 29 | ||
30 | struct HvLpEvent; | ||
31 | |||
32 | #define IT_LP_MAX_QUEUES 8 | 30 | #define IT_LP_MAX_QUEUES 8 |
33 | 31 | ||
34 | #define IT_LP_NOT_USED 0 /* Queue will not be used by PLIC */ | 32 | #define IT_LP_NOT_USED 0 /* Queue will not be used by PLIC */ |
diff --git a/include/asm-powerpc/iseries/vio.h b/include/asm-powerpc/iseries/vio.h index 72a97d37aac3..7a95d296abd1 100644 --- a/include/asm-powerpc/iseries/vio.h +++ b/include/asm-powerpc/iseries/vio.h | |||
@@ -122,6 +122,34 @@ enum viorc { | |||
122 | viorc_openRejected = 0x0301 | 122 | viorc_openRejected = 0x0301 |
123 | }; | 123 | }; |
124 | 124 | ||
125 | /* | ||
126 | * The structure of the events that flow between us and OS/400 for chario | ||
127 | * events. You can't mess with this unless the OS/400 side changes too. | ||
128 | */ | ||
129 | struct viocharlpevent { | ||
130 | struct HvLpEvent event; | ||
131 | u32 reserved; | ||
132 | u16 version; | ||
133 | u16 subtype_result_code; | ||
134 | u8 virtual_device; | ||
135 | u8 len; | ||
136 | u8 data[VIOCHAR_MAX_DATA]; | ||
137 | }; | ||
138 | |||
139 | #define VIOCHAR_WINDOW 10 | ||
140 | |||
141 | enum viocharsubtype { | ||
142 | viocharopen = 0x0001, | ||
143 | viocharclose = 0x0002, | ||
144 | viochardata = 0x0003, | ||
145 | viocharack = 0x0004, | ||
146 | viocharconfig = 0x0005 | ||
147 | }; | ||
148 | |||
149 | enum viochar_rc { | ||
150 | viochar_rc_ebusy = 1 | ||
151 | }; | ||
152 | |||
125 | struct device; | 153 | struct device; |
126 | 154 | ||
127 | extern struct device *iSeries_vio_dev; | 155 | extern struct device *iSeries_vio_dev; |
diff --git a/include/asm-powerpc/lppaca.h b/include/asm-powerpc/lppaca.h index 4dc514aabfe7..821ea0c512b4 100644 --- a/include/asm-powerpc/lppaca.h +++ b/include/asm-powerpc/lppaca.h | |||
@@ -27,7 +27,9 @@ | |||
27 | // | 27 | // |
28 | // | 28 | // |
29 | //---------------------------------------------------------------------------- | 29 | //---------------------------------------------------------------------------- |
30 | #include <linux/cache.h> | ||
30 | #include <asm/types.h> | 31 | #include <asm/types.h> |
32 | #include <asm/mmu.h> | ||
31 | 33 | ||
32 | /* The Hypervisor barfs if the lppaca crosses a page boundary. A 1k | 34 | /* The Hypervisor barfs if the lppaca crosses a page boundary. A 1k |
33 | * alignment is sufficient to prevent this */ | 35 | * alignment is sufficient to prevent this */ |
@@ -114,7 +116,7 @@ struct lppaca { | |||
114 | 116 | ||
115 | 117 | ||
116 | //============================================================================= | 118 | //============================================================================= |
117 | // CACHE_LINE_3 0x0100 - 0x007F: This line is shared with other processors | 119 | // CACHE_LINE_3 0x0100 - 0x017F: This line is shared with other processors |
118 | //============================================================================= | 120 | //============================================================================= |
119 | // This is the yield_count. An "odd" value (low bit on) means that | 121 | // This is the yield_count. An "odd" value (low bit on) means that |
120 | // the processor is yielded (either because of an OS yield or a PLIC | 122 | // the processor is yielded (either because of an OS yield or a PLIC |
@@ -126,12 +128,29 @@ struct lppaca { | |||
126 | u8 reserved6[124]; // Reserved x04-x7F | 128 | u8 reserved6[124]; // Reserved x04-x7F |
127 | 129 | ||
128 | //============================================================================= | 130 | //============================================================================= |
129 | // CACHE_LINE_4-5 0x0100 - 0x01FF Contains PMC interrupt data | 131 | // CACHE_LINE_4-5 0x0180 - 0x027F Contains PMC interrupt data |
130 | //============================================================================= | 132 | //============================================================================= |
131 | u8 pmc_save_area[256]; // PMC interrupt Area x00-xFF | 133 | u8 pmc_save_area[256]; // PMC interrupt Area x00-xFF |
132 | } __attribute__((__aligned__(0x400))); | 134 | } __attribute__((__aligned__(0x400))); |
133 | 135 | ||
134 | extern struct lppaca lppaca[]; | 136 | extern struct lppaca lppaca[]; |
135 | 137 | ||
138 | /* | ||
139 | * SLB shadow buffer structure as defined in the PAPR. The save_area | ||
140 | * contains adjacent ESID and VSID pairs for each shadowed SLB. The | ||
141 | * ESID is stored in the lower 64bits, then the VSID. | ||
142 | */ | ||
143 | struct slb_shadow { | ||
144 | u32 persistent; // Number of persistent SLBs x00-x03 | ||
145 | u32 buffer_length; // Total shadow buffer length x04-x07 | ||
146 | u64 reserved; // Alignment x08-x0f | ||
147 | struct { | ||
148 | u64 esid; | ||
149 | u64 vsid; | ||
150 | } save_area[SLB_NUM_BOLTED]; // x10-x40 | ||
151 | } ____cacheline_aligned; | ||
152 | |||
153 | extern struct slb_shadow slb_shadow[]; | ||
154 | |||
136 | #endif /* __KERNEL__ */ | 155 | #endif /* __KERNEL__ */ |
137 | #endif /* _ASM_POWERPC_LPPACA_H */ | 156 | #endif /* _ASM_POWERPC_LPPACA_H */ |
diff --git a/include/asm-powerpc/paca.h b/include/asm-powerpc/paca.h index 2d4585f06209..7ffa2512524e 100644 --- a/include/asm-powerpc/paca.h +++ b/include/asm-powerpc/paca.h | |||
@@ -23,6 +23,7 @@ | |||
23 | register struct paca_struct *local_paca asm("r13"); | 23 | register struct paca_struct *local_paca asm("r13"); |
24 | #define get_paca() local_paca | 24 | #define get_paca() local_paca |
25 | #define get_lppaca() (get_paca()->lppaca_ptr) | 25 | #define get_lppaca() (get_paca()->lppaca_ptr) |
26 | #define get_slb_shadow() (get_paca()->slb_shadow_ptr) | ||
26 | 27 | ||
27 | struct task_struct; | 28 | struct task_struct; |
28 | 29 | ||
@@ -98,6 +99,8 @@ struct paca_struct { | |||
98 | u64 user_time; /* accumulated usermode TB ticks */ | 99 | u64 user_time; /* accumulated usermode TB ticks */ |
99 | u64 system_time; /* accumulated system TB ticks */ | 100 | u64 system_time; /* accumulated system TB ticks */ |
100 | u64 startpurr; /* PURR/TB value snapshot */ | 101 | u64 startpurr; /* PURR/TB value snapshot */ |
102 | |||
103 | struct slb_shadow *slb_shadow_ptr; | ||
101 | }; | 104 | }; |
102 | 105 | ||
103 | extern struct paca_struct paca[]; | 106 | extern struct paca_struct paca[]; |
diff --git a/include/asm-powerpc/processor.h b/include/asm-powerpc/processor.h index 22e54a2a6604..6cb6fb19e57f 100644 --- a/include/asm-powerpc/processor.h +++ b/include/asm-powerpc/processor.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define _CHRP_Motorola 0x04 /* motorola chrp, the cobra */ | 32 | #define _CHRP_Motorola 0x04 /* motorola chrp, the cobra */ |
33 | #define _CHRP_IBM 0x05 /* IBM chrp, the longtrail and longtrail 2 */ | 33 | #define _CHRP_IBM 0x05 /* IBM chrp, the longtrail and longtrail 2 */ |
34 | #define _CHRP_Pegasos 0x06 /* Genesi/bplan's Pegasos and Pegasos2 */ | 34 | #define _CHRP_Pegasos 0x06 /* Genesi/bplan's Pegasos and Pegasos2 */ |
35 | #define _CHRP_briq 0x07 /* TotalImpact's briQ */ | ||
35 | 36 | ||
36 | #if defined(__KERNEL__) && defined(CONFIG_PPC32) | 37 | #if defined(__KERNEL__) && defined(CONFIG_PPC32) |
37 | 38 | ||
diff --git a/include/asm-powerpc/prom.h b/include/asm-powerpc/prom.h index d0fa1b9aed35..c15e66a2e681 100644 --- a/include/asm-powerpc/prom.h +++ b/include/asm-powerpc/prom.h | |||
@@ -72,8 +72,8 @@ struct property { | |||
72 | }; | 72 | }; |
73 | 73 | ||
74 | struct device_node { | 74 | struct device_node { |
75 | char *name; | 75 | const char *name; |
76 | char *type; | 76 | const char *type; |
77 | phandle node; | 77 | phandle node; |
78 | phandle linux_phandle; | 78 | phandle linux_phandle; |
79 | char *full_name; | 79 | char *full_name; |
@@ -160,7 +160,7 @@ extern void unflatten_device_tree(void); | |||
160 | extern void early_init_devtree(void *); | 160 | extern void early_init_devtree(void *); |
161 | extern int device_is_compatible(struct device_node *device, const char *); | 161 | extern int device_is_compatible(struct device_node *device, const char *); |
162 | extern int machine_is_compatible(const char *compat); | 162 | extern int machine_is_compatible(const char *compat); |
163 | extern void *get_property(struct device_node *node, const char *name, | 163 | extern const void *get_property(struct device_node *node, const char *name, |
164 | int *lenp); | 164 | int *lenp); |
165 | extern void print_properties(struct device_node *node); | 165 | extern void print_properties(struct device_node *node); |
166 | extern int prom_n_addr_cells(struct device_node* np); | 166 | extern int prom_n_addr_cells(struct device_node* np); |
@@ -198,7 +198,7 @@ extern int release_OF_resource(struct device_node* node, int index); | |||
198 | 198 | ||
199 | 199 | ||
200 | /* Helper to read a big number */ | 200 | /* Helper to read a big number */ |
201 | static inline u64 of_read_number(u32 *cell, int size) | 201 | static inline u64 of_read_number(const u32 *cell, int size) |
202 | { | 202 | { |
203 | u64 r = 0; | 203 | u64 r = 0; |
204 | while (size--) | 204 | while (size--) |
@@ -209,15 +209,15 @@ static inline u64 of_read_number(u32 *cell, int size) | |||
209 | /* Translate an OF address block into a CPU physical address | 209 | /* Translate an OF address block into a CPU physical address |
210 | */ | 210 | */ |
211 | #define OF_BAD_ADDR ((u64)-1) | 211 | #define OF_BAD_ADDR ((u64)-1) |
212 | extern u64 of_translate_address(struct device_node *np, u32 *addr); | 212 | extern u64 of_translate_address(struct device_node *np, const u32 *addr); |
213 | 213 | ||
214 | /* Extract an address from a device, returns the region size and | 214 | /* Extract an address from a device, returns the region size and |
215 | * the address space flags too. The PCI version uses a BAR number | 215 | * the address space flags too. The PCI version uses a BAR number |
216 | * instead of an absolute index | 216 | * instead of an absolute index |
217 | */ | 217 | */ |
218 | extern u32 *of_get_address(struct device_node *dev, int index, | 218 | extern const u32 *of_get_address(struct device_node *dev, int index, |
219 | u64 *size, unsigned int *flags); | 219 | u64 *size, unsigned int *flags); |
220 | extern u32 *of_get_pci_address(struct device_node *dev, int bar_no, | 220 | extern const u32 *of_get_pci_address(struct device_node *dev, int bar_no, |
221 | u64 *size, unsigned int *flags); | 221 | u64 *size, unsigned int *flags); |
222 | 222 | ||
223 | /* Get an address as a resource. Note that if your address is | 223 | /* Get an address as a resource. Note that if your address is |
@@ -234,7 +234,7 @@ extern int of_pci_address_to_resource(struct device_node *dev, int bar, | |||
234 | /* Parse the ibm,dma-window property of an OF node into the busno, phys and | 234 | /* Parse the ibm,dma-window property of an OF node into the busno, phys and |
235 | * size parameters. | 235 | * size parameters. |
236 | */ | 236 | */ |
237 | void of_parse_dma_window(struct device_node *dn, unsigned char *dma_window_prop, | 237 | void of_parse_dma_window(struct device_node *dn, const void *dma_window_prop, |
238 | unsigned long *busno, unsigned long *phys, unsigned long *size); | 238 | unsigned long *busno, unsigned long *phys, unsigned long *size); |
239 | 239 | ||
240 | extern void kdump_move_device_tree(void); | 240 | extern void kdump_move_device_tree(void); |
@@ -259,7 +259,7 @@ struct of_irq { | |||
259 | u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */ | 259 | u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */ |
260 | }; | 260 | }; |
261 | 261 | ||
262 | /*** | 262 | /** |
263 | * of_irq_map_init - Initialize the irq remapper | 263 | * of_irq_map_init - Initialize the irq remapper |
264 | * @flags: flags defining workarounds to enable | 264 | * @flags: flags defining workarounds to enable |
265 | * | 265 | * |
@@ -272,7 +272,7 @@ struct of_irq { | |||
272 | 272 | ||
273 | extern void of_irq_map_init(unsigned int flags); | 273 | extern void of_irq_map_init(unsigned int flags); |
274 | 274 | ||
275 | /*** | 275 | /** |
276 | * of_irq_map_raw - Low level interrupt tree parsing | 276 | * of_irq_map_raw - Low level interrupt tree parsing |
277 | * @parent: the device interrupt parent | 277 | * @parent: the device interrupt parent |
278 | * @intspec: interrupt specifier ("interrupts" property of the device) | 278 | * @intspec: interrupt specifier ("interrupts" property of the device) |
@@ -289,12 +289,12 @@ extern void of_irq_map_init(unsigned int flags); | |||
289 | * | 289 | * |
290 | */ | 290 | */ |
291 | 291 | ||
292 | extern int of_irq_map_raw(struct device_node *parent, u32 *intspec, | 292 | extern int of_irq_map_raw(struct device_node *parent, const u32 *intspec, |
293 | u32 ointsize, u32 *addr, | 293 | u32 ointsize, const u32 *addr, |
294 | struct of_irq *out_irq); | 294 | struct of_irq *out_irq); |
295 | 295 | ||
296 | 296 | ||
297 | /*** | 297 | /** |
298 | * of_irq_map_one - Resolve an interrupt for a device | 298 | * of_irq_map_one - Resolve an interrupt for a device |
299 | * @device: the device whose interrupt is to be resolved | 299 | * @device: the device whose interrupt is to be resolved |
300 | * @index: index of the interrupt to resolve | 300 | * @index: index of the interrupt to resolve |
@@ -307,7 +307,7 @@ extern int of_irq_map_raw(struct device_node *parent, u32 *intspec, | |||
307 | extern int of_irq_map_one(struct device_node *device, int index, | 307 | extern int of_irq_map_one(struct device_node *device, int index, |
308 | struct of_irq *out_irq); | 308 | struct of_irq *out_irq); |
309 | 309 | ||
310 | /*** | 310 | /** |
311 | * of_irq_map_pci - Resolve the interrupt for a PCI device | 311 | * of_irq_map_pci - Resolve the interrupt for a PCI device |
312 | * @pdev: the device whose interrupt is to be resolved | 312 | * @pdev: the device whose interrupt is to be resolved |
313 | * @out_irq: structure of_irq filled by this function | 313 | * @out_irq: structure of_irq filled by this function |
diff --git a/include/asm-powerpc/rtas.h b/include/asm-powerpc/rtas.h index 82a27e9a041f..d34f9e1f242c 100644 --- a/include/asm-powerpc/rtas.h +++ b/include/asm-powerpc/rtas.h | |||
@@ -230,5 +230,21 @@ extern unsigned long rtas_rmo_buf; | |||
230 | 230 | ||
231 | #define GLOBAL_INTERRUPT_QUEUE 9005 | 231 | #define GLOBAL_INTERRUPT_QUEUE 9005 |
232 | 232 | ||
233 | /** | ||
234 | * rtas_config_addr - Format a busno, devfn and reg for RTAS. | ||
235 | * @busno: The bus number. | ||
236 | * @devfn: The device and function number as encoded by PCI_DEVFN(). | ||
237 | * @reg: The register number. | ||
238 | * | ||
239 | * This function encodes the given busno, devfn and register number as | ||
240 | * required for RTAS calls that take a "config_addr" parameter. | ||
241 | * See PAPR requirement 7.3.4-1 for more info. | ||
242 | */ | ||
243 | static inline u32 rtas_config_addr(int busno, int devfn, int reg) | ||
244 | { | ||
245 | return ((reg & 0xf00) << 20) | ((busno & 0xff) << 16) | | ||
246 | (devfn << 8) | (reg & 0xff); | ||
247 | } | ||
248 | |||
233 | #endif /* __KERNEL__ */ | 249 | #endif /* __KERNEL__ */ |
234 | #endif /* _POWERPC_RTAS_H */ | 250 | #endif /* _POWERPC_RTAS_H */ |
diff --git a/include/asm-powerpc/smu.h b/include/asm-powerpc/smu.h index 51e65fc46a03..e49f644ca63a 100644 --- a/include/asm-powerpc/smu.h +++ b/include/asm-powerpc/smu.h | |||
@@ -517,7 +517,7 @@ struct smu_sdbp_cpupiddata { | |||
517 | * This returns the pointer to an SMU "sdb" partition data or NULL | 517 | * This returns the pointer to an SMU "sdb" partition data or NULL |
518 | * if not found. The data format is described below | 518 | * if not found. The data format is described below |
519 | */ | 519 | */ |
520 | extern struct smu_sdbp_header *smu_get_sdb_partition(int id, | 520 | extern const struct smu_sdbp_header *smu_get_sdb_partition(int id, |
521 | unsigned int *size); | 521 | unsigned int *size); |
522 | 522 | ||
523 | /* Get "sdb" partition data from an SMU satellite */ | 523 | /* Get "sdb" partition data from an SMU satellite */ |
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h index c02d105d8294..b42b53c40f5d 100644 --- a/include/asm-powerpc/spu.h +++ b/include/asm-powerpc/spu.h | |||
@@ -106,7 +106,7 @@ struct spu_context; | |||
106 | struct spu_runqueue; | 106 | struct spu_runqueue; |
107 | 107 | ||
108 | struct spu { | 108 | struct spu { |
109 | char *name; | 109 | const char *name; |
110 | unsigned long local_store_phys; | 110 | unsigned long local_store_phys; |
111 | u8 *local_store; | 111 | u8 *local_store; |
112 | unsigned long problem_phys; | 112 | unsigned long problem_phys; |
diff --git a/include/asm-powerpc/system.h b/include/asm-powerpc/system.h index 4c9f5229e833..4b41deaa8d8d 100644 --- a/include/asm-powerpc/system.h +++ b/include/asm-powerpc/system.h | |||
@@ -177,11 +177,6 @@ extern u32 booke_wdt_enabled; | |||
177 | extern u32 booke_wdt_period; | 177 | extern u32 booke_wdt_period; |
178 | #endif /* CONFIG_BOOKE_WDT */ | 178 | #endif /* CONFIG_BOOKE_WDT */ |
179 | 179 | ||
180 | /* EBCDIC -> ASCII conversion for [0-9A-Z] on iSeries */ | ||
181 | extern unsigned char e2a(unsigned char); | ||
182 | extern unsigned char* strne2a(unsigned char *dest, | ||
183 | const unsigned char *src, size_t n); | ||
184 | |||
185 | struct device_node; | 180 | struct device_node; |
186 | extern void note_scsi_host(struct device_node *, void *); | 181 | extern void note_scsi_host(struct device_node *, void *); |
187 | 182 | ||
diff --git a/include/asm-powerpc/vio.h b/include/asm-powerpc/vio.h index dc9bd101ca14..4b51d42e1419 100644 --- a/include/asm-powerpc/vio.h +++ b/include/asm-powerpc/vio.h | |||
@@ -46,8 +46,8 @@ struct iommu_table; | |||
46 | */ | 46 | */ |
47 | struct vio_dev { | 47 | struct vio_dev { |
48 | struct iommu_table *iommu_table; /* vio_map_* uses this */ | 48 | struct iommu_table *iommu_table; /* vio_map_* uses this */ |
49 | char *name; | 49 | const char *name; |
50 | char *type; | 50 | const char *type; |
51 | uint32_t unit_address; | 51 | uint32_t unit_address; |
52 | unsigned int irq; | 52 | unsigned int irq; |
53 | struct device dev; | 53 | struct device dev; |