diff options
Diffstat (limited to 'arch/powerpc')
23 files changed, 98 insertions, 181 deletions
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 6403275553ea..aac1406ccba5 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -195,7 +195,7 @@ image-$(CONFIG_PPC_CELLEB) += zImage.pseries | |||
195 | image-$(CONFIG_PPC_CHRP) += zImage.chrp | 195 | image-$(CONFIG_PPC_CHRP) += zImage.chrp |
196 | image-$(CONFIG_PPC_EFIKA) += zImage.chrp | 196 | image-$(CONFIG_PPC_EFIKA) += zImage.chrp |
197 | image-$(CONFIG_PPC_PMAC) += zImage.pmac | 197 | image-$(CONFIG_PPC_PMAC) += zImage.pmac |
198 | image-$(CONFIG_PPC_HOLLY) += zImage.holly | 198 | image-$(CONFIG_PPC_HOLLY) += dtbImage.holly |
199 | image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800 | 199 | image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800 |
200 | image-$(CONFIG_PPC_ISERIES) += zImage.iseries | 200 | image-$(CONFIG_PPC_ISERIES) += zImage.iseries |
201 | image-$(CONFIG_DEFAULT_UIMAGE) += uImage | 201 | image-$(CONFIG_DEFAULT_UIMAGE) += uImage |
diff --git a/arch/powerpc/boot/dts/holly.dts b/arch/powerpc/boot/dts/holly.dts index f87fe7b9ced9..c6e11ebecebb 100644 --- a/arch/powerpc/boot/dts/holly.dts +++ b/arch/powerpc/boot/dts/holly.dts | |||
@@ -133,61 +133,61 @@ | |||
133 | reg = <0x00007400 0x00000400>; | 133 | reg = <0x00007400 0x00000400>; |
134 | big-endian; | 134 | big-endian; |
135 | }; | 135 | }; |
136 | }; | ||
136 | 137 | ||
137 | pci@1000 { | 138 | pci@c0001000 { |
138 | device_type = "pci"; | 139 | device_type = "pci"; |
139 | compatible = "tsi109-pci", "tsi108-pci"; | 140 | compatible = "tsi109-pci", "tsi108-pci"; |
140 | #interrupt-cells = <1>; | 141 | #interrupt-cells = <1>; |
141 | #size-cells = <2>; | 142 | #size-cells = <2>; |
142 | #address-cells = <3>; | 143 | #address-cells = <3>; |
143 | reg = <0x00001000 0x00001000>; | 144 | reg = <0xc0001000 0x00001000>; |
144 | bus-range = <0x0 0x0>; | 145 | bus-range = <0x0 0x0>; |
145 | /*----------------------------------------------------+ | 146 | /*----------------------------------------------------+ |
146 | | PCI memory range. | 147 | | PCI memory range. |
147 | | 01 denotes I/O space | 148 | | 01 denotes I/O space |
148 | | 02 denotes 32-bit memory space | 149 | | 02 denotes 32-bit memory space |
149 | +----------------------------------------------------*/ | 150 | +----------------------------------------------------*/ |
150 | ranges = <0x02000000 0x00000000 0x40000000 0x40000000 0x00000000 0x10000000 | 151 | ranges = <0x02000000 0x00000000 0x40000000 0x40000000 0x00000000 0x10000000 |
151 | 0x01000000 0x00000000 0x00000000 0x7e000000 0x00000000 0x00010000>; | 152 | 0x01000000 0x00000000 0x00000000 0x7e000000 0x00000000 0x00010000>; |
152 | clock-frequency = <133333332>; | 153 | clock-frequency = <133333332>; |
153 | interrupt-parent = <&MPIC>; | 154 | interrupt-parent = <&MPIC>; |
155 | interrupts = <0x17 0x2>; | ||
156 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
157 | /*----------------------------------------------------+ | ||
158 | | The INTA, INTB, INTC, INTD are shared. | ||
159 | +----------------------------------------------------*/ | ||
160 | interrupt-map = < | ||
161 | 0x800 0x0 0x0 0x1 &RT0 0x24 0x0 | ||
162 | 0x800 0x0 0x0 0x2 &RT0 0x25 0x0 | ||
163 | 0x800 0x0 0x0 0x3 &RT0 0x26 0x0 | ||
164 | 0x800 0x0 0x0 0x4 &RT0 0x27 0x0 | ||
165 | |||
166 | 0x1000 0x0 0x0 0x1 &RT0 0x25 0x0 | ||
167 | 0x1000 0x0 0x0 0x2 &RT0 0x26 0x0 | ||
168 | 0x1000 0x0 0x0 0x3 &RT0 0x27 0x0 | ||
169 | 0x1000 0x0 0x0 0x4 &RT0 0x24 0x0 | ||
170 | |||
171 | 0x1800 0x0 0x0 0x1 &RT0 0x26 0x0 | ||
172 | 0x1800 0x0 0x0 0x2 &RT0 0x27 0x0 | ||
173 | 0x1800 0x0 0x0 0x3 &RT0 0x24 0x0 | ||
174 | 0x1800 0x0 0x0 0x4 &RT0 0x25 0x0 | ||
175 | |||
176 | 0x2000 0x0 0x0 0x1 &RT0 0x27 0x0 | ||
177 | 0x2000 0x0 0x0 0x2 &RT0 0x24 0x0 | ||
178 | 0x2000 0x0 0x0 0x3 &RT0 0x25 0x0 | ||
179 | 0x2000 0x0 0x0 0x4 &RT0 0x26 0x0 | ||
180 | >; | ||
181 | |||
182 | RT0: router@1180 { | ||
183 | device_type = "pic-router"; | ||
184 | interrupt-controller; | ||
185 | big-endian; | ||
186 | clock-frequency = <0>; | ||
187 | #address-cells = <0>; | ||
188 | #interrupt-cells = <2>; | ||
154 | interrupts = <0x17 0x2>; | 189 | interrupts = <0x17 0x2>; |
155 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | 190 | interrupt-parent = <&MPIC>; |
156 | /*----------------------------------------------------+ | ||
157 | | The INTA, INTB, INTC, INTD are shared. | ||
158 | +----------------------------------------------------*/ | ||
159 | interrupt-map = < | ||
160 | 0x800 0x0 0x0 0x1 &RT0 0x24 0x0 | ||
161 | 0x800 0x0 0x0 0x2 &RT0 0x25 0x0 | ||
162 | 0x800 0x0 0x0 0x3 &RT0 0x26 0x0 | ||
163 | 0x800 0x0 0x0 0x4 &RT0 0x27 0x0 | ||
164 | |||
165 | 0x1000 0x0 0x0 0x1 &RT0 0x25 0x0 | ||
166 | 0x1000 0x0 0x0 0x2 &RT0 0x26 0x0 | ||
167 | 0x1000 0x0 0x0 0x3 &RT0 0x27 0x0 | ||
168 | 0x1000 0x0 0x0 0x4 &RT0 0x24 0x0 | ||
169 | |||
170 | 0x1800 0x0 0x0 0x1 &RT0 0x26 0x0 | ||
171 | 0x1800 0x0 0x0 0x2 &RT0 0x27 0x0 | ||
172 | 0x1800 0x0 0x0 0x3 &RT0 0x24 0x0 | ||
173 | 0x1800 0x0 0x0 0x4 &RT0 0x25 0x0 | ||
174 | |||
175 | 0x2000 0x0 0x0 0x1 &RT0 0x27 0x0 | ||
176 | 0x2000 0x0 0x0 0x2 &RT0 0x24 0x0 | ||
177 | 0x2000 0x0 0x0 0x3 &RT0 0x25 0x0 | ||
178 | 0x2000 0x0 0x0 0x4 &RT0 0x26 0x0 | ||
179 | >; | ||
180 | |||
181 | RT0: router@1180 { | ||
182 | device_type = "pic-router"; | ||
183 | interrupt-controller; | ||
184 | big-endian; | ||
185 | clock-frequency = <0>; | ||
186 | #address-cells = <0>; | ||
187 | #interrupt-cells = <2>; | ||
188 | interrupts = <0x17 0x2>; | ||
189 | interrupt-parent = <&MPIC>; | ||
190 | }; | ||
191 | }; | 191 | }; |
192 | }; | 192 | }; |
193 | 193 | ||
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts index 3f4c6102e4e1..f724d72c7b92 100644 --- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts +++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts | |||
@@ -283,7 +283,7 @@ | |||
283 | cell-index = <0>; | 283 | cell-index = <0>; |
284 | reg = <0x0 0x80>; | 284 | reg = <0x0 0x80>; |
285 | interrupt-parent = <&mpic>; | 285 | interrupt-parent = <&mpic>; |
286 | interrupts = <60 2>; | 286 | interrupts = <76 2>; |
287 | }; | 287 | }; |
288 | dma-channel@1 { | 288 | dma-channel@1 { |
289 | compatible = "fsl,mpc8610-dma-channel", | 289 | compatible = "fsl,mpc8610-dma-channel", |
@@ -291,7 +291,7 @@ | |||
291 | cell-index = <1>; | 291 | cell-index = <1>; |
292 | reg = <0x80 0x80>; | 292 | reg = <0x80 0x80>; |
293 | interrupt-parent = <&mpic>; | 293 | interrupt-parent = <&mpic>; |
294 | interrupts = <61 2>; | 294 | interrupts = <77 2>; |
295 | }; | 295 | }; |
296 | dma-channel@2 { | 296 | dma-channel@2 { |
297 | compatible = "fsl,mpc8610-dma-channel", | 297 | compatible = "fsl,mpc8610-dma-channel", |
@@ -299,7 +299,7 @@ | |||
299 | cell-index = <2>; | 299 | cell-index = <2>; |
300 | reg = <0x100 0x80>; | 300 | reg = <0x100 0x80>; |
301 | interrupt-parent = <&mpic>; | 301 | interrupt-parent = <&mpic>; |
302 | interrupts = <62 2>; | 302 | interrupts = <78 2>; |
303 | }; | 303 | }; |
304 | dma-channel@3 { | 304 | dma-channel@3 { |
305 | compatible = "fsl,mpc8610-dma-channel", | 305 | compatible = "fsl,mpc8610-dma-channel", |
@@ -307,7 +307,7 @@ | |||
307 | cell-index = <3>; | 307 | cell-index = <3>; |
308 | reg = <0x180 0x80>; | 308 | reg = <0x180 0x80>; |
309 | interrupt-parent = <&mpic>; | 309 | interrupt-parent = <&mpic>; |
310 | interrupts = <63 2>; | 310 | interrupts = <79 2>; |
311 | }; | 311 | }; |
312 | }; | 312 | }; |
313 | 313 | ||
diff --git a/arch/powerpc/include/asm/a.out.h b/arch/powerpc/include/asm/a.out.h deleted file mode 100644 index 89cead6b176e..000000000000 --- a/arch/powerpc/include/asm/a.out.h +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | #ifndef _ASM_POWERPC_A_OUT_H | ||
2 | #define _ASM_POWERPC_A_OUT_H | ||
3 | |||
4 | struct exec | ||
5 | { | ||
6 | unsigned long a_info; /* Use macros N_MAGIC, etc for access */ | ||
7 | unsigned a_text; /* length of text, in bytes */ | ||
8 | unsigned a_data; /* length of data, in bytes */ | ||
9 | unsigned a_bss; /* length of uninitialized data area for file, in bytes */ | ||
10 | unsigned a_syms; /* length of symbol table data in file, in bytes */ | ||
11 | unsigned a_entry; /* start address */ | ||
12 | unsigned a_trsize; /* length of relocation info for text, in bytes */ | ||
13 | unsigned a_drsize; /* length of relocation info for data, in bytes */ | ||
14 | }; | ||
15 | |||
16 | #define N_TRSIZE(a) ((a).a_trsize) | ||
17 | #define N_DRSIZE(a) ((a).a_drsize) | ||
18 | #define N_SYMSIZE(a) ((a).a_syms) | ||
19 | |||
20 | #endif /* _ASM_POWERPC_A_OUT_H */ | ||
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h index 80d1f399ee51..64c6ee22eefd 100644 --- a/arch/powerpc/include/asm/elf.h +++ b/arch/powerpc/include/asm/elf.h | |||
@@ -409,6 +409,13 @@ do { \ | |||
409 | /* Keep this the last entry. */ | 409 | /* Keep this the last entry. */ |
410 | #define R_PPC64_NUM 107 | 410 | #define R_PPC64_NUM 107 |
411 | 411 | ||
412 | /* There's actually a third entry here, but it's unused */ | ||
413 | struct ppc64_opd_entry | ||
414 | { | ||
415 | unsigned long funcaddr; | ||
416 | unsigned long r2; | ||
417 | }; | ||
418 | |||
412 | #ifdef __KERNEL__ | 419 | #ifdef __KERNEL__ |
413 | 420 | ||
414 | #ifdef CONFIG_SPU_BASE | 421 | #ifdef CONFIG_SPU_BASE |
diff --git a/arch/powerpc/include/asm/sections.h b/arch/powerpc/include/asm/sections.h index baf318aec533..6fbce725c710 100644 --- a/arch/powerpc/include/asm/sections.h +++ b/arch/powerpc/include/asm/sections.h | |||
@@ -2,6 +2,8 @@ | |||
2 | #define _ASM_POWERPC_SECTIONS_H | 2 | #define _ASM_POWERPC_SECTIONS_H |
3 | #ifdef __KERNEL__ | 3 | #ifdef __KERNEL__ |
4 | 4 | ||
5 | #include <linux/elf.h> | ||
6 | #include <linux/uaccess.h> | ||
5 | #include <asm-generic/sections.h> | 7 | #include <asm-generic/sections.h> |
6 | 8 | ||
7 | #ifdef __powerpc64__ | 9 | #ifdef __powerpc64__ |
@@ -23,7 +25,15 @@ static inline int overlaps_kernel_text(unsigned long start, unsigned long end) | |||
23 | } | 25 | } |
24 | 26 | ||
25 | #undef dereference_function_descriptor | 27 | #undef dereference_function_descriptor |
26 | void *dereference_function_descriptor(void *); | 28 | static inline void *dereference_function_descriptor(void *ptr) |
29 | { | ||
30 | struct ppc64_opd_entry *desc = ptr; | ||
31 | void *p; | ||
32 | |||
33 | if (!probe_kernel_address(&desc->funcaddr, p)) | ||
34 | ptr = p; | ||
35 | return ptr; | ||
36 | } | ||
27 | 37 | ||
28 | #endif | 38 | #endif |
29 | 39 | ||
diff --git a/arch/powerpc/include/asm/siginfo.h b/arch/powerpc/include/asm/siginfo.h index 12f1bce037be..49495b0534ed 100644 --- a/arch/powerpc/include/asm/siginfo.h +++ b/arch/powerpc/include/asm/siginfo.h | |||
@@ -15,11 +15,6 @@ | |||
15 | 15 | ||
16 | #include <asm-generic/siginfo.h> | 16 | #include <asm-generic/siginfo.h> |
17 | 17 | ||
18 | /* | ||
19 | * SIGTRAP si_codes | ||
20 | */ | ||
21 | #define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */ | ||
22 | #define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint or watchpoint */ | ||
23 | #undef NSIGTRAP | 18 | #undef NSIGTRAP |
24 | #define NSIGTRAP 4 | 19 | #define NSIGTRAP 4 |
25 | 20 | ||
diff --git a/arch/powerpc/include/asm/statfs.h b/arch/powerpc/include/asm/statfs.h index 67024026c10d..5244834583a4 100644 --- a/arch/powerpc/include/asm/statfs.h +++ b/arch/powerpc/include/asm/statfs.h | |||
@@ -1,60 +1,6 @@ | |||
1 | #ifndef _ASM_POWERPC_STATFS_H | 1 | #ifndef _ASM_POWERPC_STATFS_H |
2 | #define _ASM_POWERPC_STATFS_H | 2 | #define _ASM_POWERPC_STATFS_H |
3 | 3 | ||
4 | /* For ppc32 we just use the generic definitions, not so simple on ppc64 */ | ||
5 | |||
6 | #ifndef __powerpc64__ | ||
7 | #include <asm-generic/statfs.h> | 4 | #include <asm-generic/statfs.h> |
8 | #else | ||
9 | |||
10 | #ifndef __KERNEL_STRICT_NAMES | ||
11 | #include <linux/types.h> | ||
12 | typedef __kernel_fsid_t fsid_t; | ||
13 | #endif | ||
14 | |||
15 | /* | ||
16 | * We're already 64-bit, so duplicate the definition | ||
17 | */ | ||
18 | struct statfs { | ||
19 | long f_type; | ||
20 | long f_bsize; | ||
21 | long f_blocks; | ||
22 | long f_bfree; | ||
23 | long f_bavail; | ||
24 | long f_files; | ||
25 | long f_ffree; | ||
26 | __kernel_fsid_t f_fsid; | ||
27 | long f_namelen; | ||
28 | long f_frsize; | ||
29 | long f_spare[5]; | ||
30 | }; | ||
31 | |||
32 | struct statfs64 { | ||
33 | long f_type; | ||
34 | long f_bsize; | ||
35 | long f_blocks; | ||
36 | long f_bfree; | ||
37 | long f_bavail; | ||
38 | long f_files; | ||
39 | long f_ffree; | ||
40 | __kernel_fsid_t f_fsid; | ||
41 | long f_namelen; | ||
42 | long f_frsize; | ||
43 | long f_spare[5]; | ||
44 | }; | ||
45 | 5 | ||
46 | struct compat_statfs64 { | ||
47 | __u32 f_type; | ||
48 | __u32 f_bsize; | ||
49 | __u64 f_blocks; | ||
50 | __u64 f_bfree; | ||
51 | __u64 f_bavail; | ||
52 | __u64 f_files; | ||
53 | __u64 f_ffree; | ||
54 | __kernel_fsid_t f_fsid; | ||
55 | __u32 f_namelen; | ||
56 | __u32 f_frsize; | ||
57 | __u32 f_spare[5]; | ||
58 | }; | ||
59 | #endif /* ! __powerpc64__ */ | ||
60 | #endif | 6 | #endif |
diff --git a/arch/powerpc/kernel/idle.c b/arch/powerpc/kernel/idle.c index d308a9f70f1b..31982d05d81a 100644 --- a/arch/powerpc/kernel/idle.c +++ b/arch/powerpc/kernel/idle.c | |||
@@ -34,11 +34,7 @@ | |||
34 | #include <asm/smp.h> | 34 | #include <asm/smp.h> |
35 | 35 | ||
36 | #ifdef CONFIG_HOTPLUG_CPU | 36 | #ifdef CONFIG_HOTPLUG_CPU |
37 | /* this is used for software suspend, and that shuts down | 37 | #define cpu_should_die() cpu_is_offline(smp_processor_id()) |
38 | * CPUs even while the system is still booting... */ | ||
39 | #define cpu_should_die() (cpu_is_offline(smp_processor_id()) && \ | ||
40 | (system_state == SYSTEM_RUNNING \ | ||
41 | || system_state == SYSTEM_BOOTING)) | ||
42 | #else | 38 | #else |
43 | #define cpu_should_die() 0 | 39 | #define cpu_should_die() 0 |
44 | #endif | 40 | #endif |
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c index b4fdf2f2743c..fe8f71dd0b3f 100644 --- a/arch/powerpc/kernel/kgdb.c +++ b/arch/powerpc/kernel/kgdb.c | |||
@@ -347,9 +347,8 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code, | |||
347 | linux_regs->msr |= MSR_SE; | 347 | linux_regs->msr |= MSR_SE; |
348 | #endif | 348 | #endif |
349 | kgdb_single_step = 1; | 349 | kgdb_single_step = 1; |
350 | if (kgdb_contthread) | 350 | atomic_set(&kgdb_cpu_doing_single_step, |
351 | atomic_set(&kgdb_cpu_doing_single_step, | 351 | raw_smp_processor_id()); |
352 | raw_smp_processor_id()); | ||
353 | } | 352 | } |
354 | return 0; | 353 | return 0; |
355 | } | 354 | } |
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c index ad79de272ff3..1af2377e4992 100644 --- a/arch/powerpc/kernel/module_64.c +++ b/arch/powerpc/kernel/module_64.c | |||
@@ -21,9 +21,7 @@ | |||
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/vmalloc.h> | 22 | #include <linux/vmalloc.h> |
23 | #include <linux/bug.h> | 23 | #include <linux/bug.h> |
24 | #include <linux/uaccess.h> | ||
25 | #include <asm/module.h> | 24 | #include <asm/module.h> |
26 | #include <asm/sections.h> | ||
27 | #include <asm/firmware.h> | 25 | #include <asm/firmware.h> |
28 | #include <asm/code-patching.h> | 26 | #include <asm/code-patching.h> |
29 | #include <linux/sort.h> | 27 | #include <linux/sort.h> |
@@ -43,13 +41,6 @@ | |||
43 | #define DEBUGP(fmt , ...) | 41 | #define DEBUGP(fmt , ...) |
44 | #endif | 42 | #endif |
45 | 43 | ||
46 | /* There's actually a third entry here, but it's unused */ | ||
47 | struct ppc64_opd_entry | ||
48 | { | ||
49 | unsigned long funcaddr; | ||
50 | unsigned long r2; | ||
51 | }; | ||
52 | |||
53 | /* Like PPC32, we need little trampolines to do > 24-bit jumps (into | 44 | /* Like PPC32, we need little trampolines to do > 24-bit jumps (into |
54 | the kernel itself). But on PPC64, these need to be used for every | 45 | the kernel itself). But on PPC64, these need to be used for every |
55 | jump, actually, to reset r2 (TOC+0x8000). */ | 46 | jump, actually, to reset r2 (TOC+0x8000). */ |
@@ -452,13 +443,3 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, | |||
452 | 443 | ||
453 | return 0; | 444 | return 0; |
454 | } | 445 | } |
455 | |||
456 | void *dereference_function_descriptor(void *ptr) | ||
457 | { | ||
458 | struct ppc64_opd_entry *desc = ptr; | ||
459 | void *p; | ||
460 | |||
461 | if (!probe_kernel_address(&desc->funcaddr, p)) | ||
462 | ptr = p; | ||
463 | return ptr; | ||
464 | } | ||
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index 3ee736fa8b1d..ff9f7010097d 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -452,6 +452,7 @@ int __devinit start_secondary(void *unused) | |||
452 | secondary_cpu_time_init(); | 452 | secondary_cpu_time_init(); |
453 | 453 | ||
454 | ipi_call_lock(); | 454 | ipi_call_lock(); |
455 | notify_cpu_starting(cpu); | ||
455 | cpu_set(cpu, cpu_online_map); | 456 | cpu_set(cpu, cpu_online_map); |
456 | /* Update sibling maps */ | 457 | /* Update sibling maps */ |
457 | base = cpu_first_thread_in_core(cpu); | 458 | base = cpu_first_thread_in_core(cpu); |
diff --git a/arch/powerpc/kernel/softemu8xx.c b/arch/powerpc/kernel/softemu8xx.c index c906c4bf6835..23c8c5e7dc4d 100644 --- a/arch/powerpc/kernel/softemu8xx.c +++ b/arch/powerpc/kernel/softemu8xx.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/ptrace.h> | 23 | #include <linux/ptrace.h> |
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/user.h> | 25 | #include <linux/user.h> |
26 | #include <linux/a.out.h> | ||
27 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
28 | 27 | ||
29 | #include <asm/pgtable.h> | 28 | #include <asm/pgtable.h> |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 81ccb8dd1a54..f5def6cf5cd6 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/ptrace.h> | 23 | #include <linux/ptrace.h> |
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/user.h> | 25 | #include <linux/user.h> |
26 | #include <linux/a.out.h> | ||
27 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | #include <linux/module.h> | 28 | #include <linux/module.h> |
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c index d5770fdf7f09..0eb6d7f62241 100644 --- a/arch/powerpc/platforms/82xx/ep8248e.c +++ b/arch/powerpc/platforms/82xx/ep8248e.c | |||
@@ -137,7 +137,7 @@ static int __devinit ep8248e_mdio_probe(struct of_device *ofdev, | |||
137 | bus->irq[i] = -1; | 137 | bus->irq[i] = -1; |
138 | 138 | ||
139 | bus->name = "ep8248e-mdio-bitbang"; | 139 | bus->name = "ep8248e-mdio-bitbang"; |
140 | bus->dev = &ofdev->dev; | 140 | bus->parent = &ofdev->dev; |
141 | snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start); | 141 | snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start); |
142 | 142 | ||
143 | return mdiobus_register(bus); | 143 | return mdiobus_register(bus); |
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c index 6b7c7b132454..cb85d237e492 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c | |||
@@ -661,7 +661,7 @@ enum { | |||
661 | Opt_uid, Opt_gid, Opt_mode, Opt_debug, Opt_err, | 661 | Opt_uid, Opt_gid, Opt_mode, Opt_debug, Opt_err, |
662 | }; | 662 | }; |
663 | 663 | ||
664 | static match_table_t spufs_tokens = { | 664 | static const match_table_t spufs_tokens = { |
665 | { Opt_uid, "uid=%d" }, | 665 | { Opt_uid, "uid=%d" }, |
666 | { Opt_gid, "gid=%d" }, | 666 | { Opt_gid, "gid=%d" }, |
667 | { Opt_mode, "mode=%o" }, | 667 | { Opt_mode, "mode=%o" }, |
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index 1ba7ce5aafae..272d79a8d289 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/ptrace.h> | 17 | #include <linux/ptrace.h> |
18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
19 | #include <linux/user.h> | 19 | #include <linux/user.h> |
20 | #include <linux/a.out.h> | ||
21 | #include <linux/tty.h> | 20 | #include <linux/tty.h> |
22 | #include <linux/major.h> | 21 | #include <linux/major.h> |
23 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c index ef74a0763ec1..8c619963becc 100644 --- a/arch/powerpc/platforms/fsl_uli1575.c +++ b/arch/powerpc/platforms/fsl_uli1575.c | |||
@@ -219,11 +219,21 @@ static void __devinit quirk_final_uli5249(struct pci_dev *dev) | |||
219 | int i; | 219 | int i; |
220 | u8 *dummy; | 220 | u8 *dummy; |
221 | struct pci_bus *bus = dev->bus; | 221 | struct pci_bus *bus = dev->bus; |
222 | resource_size_t end = 0; | ||
223 | |||
224 | for (i = PCI_BRIDGE_RESOURCES; i < PCI_BRIDGE_RESOURCES+3; i++) { | ||
225 | unsigned long flags = pci_resource_flags(dev, i); | ||
226 | if ((flags & (IORESOURCE_MEM|IORESOURCE_PREFETCH)) == IORESOURCE_MEM) | ||
227 | end = pci_resource_end(dev, i); | ||
228 | } | ||
222 | 229 | ||
223 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { | 230 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { |
224 | if ((bus->resource[i]) && | 231 | if ((bus->resource[i]) && |
225 | (bus->resource[i]->flags & IORESOURCE_MEM)) { | 232 | (bus->resource[i]->flags & IORESOURCE_MEM)) { |
226 | dummy = ioremap(bus->resource[i]->end - 3, 0x4); | 233 | if (bus->resource[i]->end == end) |
234 | dummy = ioremap(bus->resource[i]->start, 0x4); | ||
235 | else | ||
236 | dummy = ioremap(bus->resource[i]->end - 3, 0x4); | ||
227 | if (dummy) { | 237 | if (dummy) { |
228 | in_8(dummy); | 238 | in_8(dummy); |
229 | iounmap(dummy); | 239 | iounmap(dummy); |
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c index 364714757cf1..d4c61c3c9669 100644 --- a/arch/powerpc/platforms/maple/setup.c +++ b/arch/powerpc/platforms/maple/setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/ptrace.h> | 23 | #include <linux/ptrace.h> |
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/user.h> | 25 | #include <linux/user.h> |
26 | #include <linux/a.out.h> | ||
27 | #include <linux/tty.h> | 26 | #include <linux/tty.h> |
28 | #include <linux/string.h> | 27 | #include <linux/string.h> |
29 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c index ab6955412ba4..75cc165d5bee 100644 --- a/arch/powerpc/platforms/pasemi/gpio_mdio.c +++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c | |||
@@ -230,7 +230,7 @@ static int __devinit gpio_mdio_probe(struct of_device *ofdev, | |||
230 | if (!priv) | 230 | if (!priv) |
231 | goto out; | 231 | goto out; |
232 | 232 | ||
233 | new_bus = kzalloc(sizeof(struct mii_bus), GFP_KERNEL); | 233 | new_bus = mdiobus_alloc(); |
234 | 234 | ||
235 | if (!new_bus) | 235 | if (!new_bus) |
236 | goto out_free_priv; | 236 | goto out_free_priv; |
@@ -272,7 +272,7 @@ static int __devinit gpio_mdio_probe(struct of_device *ofdev, | |||
272 | prop = of_get_property(np, "mdio-pin", NULL); | 272 | prop = of_get_property(np, "mdio-pin", NULL); |
273 | priv->mdio_pin = *prop; | 273 | priv->mdio_pin = *prop; |
274 | 274 | ||
275 | new_bus->dev = dev; | 275 | new_bus->parent = dev; |
276 | dev_set_drvdata(dev, new_bus); | 276 | dev_set_drvdata(dev, new_bus); |
277 | 277 | ||
278 | err = mdiobus_register(new_bus); | 278 | err = mdiobus_register(new_bus); |
@@ -306,7 +306,7 @@ static int gpio_mdio_remove(struct of_device *dev) | |||
306 | 306 | ||
307 | kfree(bus->priv); | 307 | kfree(bus->priv); |
308 | bus->priv = NULL; | 308 | bus->priv = NULL; |
309 | kfree(bus); | 309 | mdiobus_free(bus); |
310 | 310 | ||
311 | return 0; | 311 | return 0; |
312 | } | 312 | } |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 88ccf3a08a9c..82c14d203d8b 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/ptrace.h> | 33 | #include <linux/ptrace.h> |
34 | #include <linux/slab.h> | 34 | #include <linux/slab.h> |
35 | #include <linux/user.h> | 35 | #include <linux/user.h> |
36 | #include <linux/a.out.h> | ||
37 | #include <linux/tty.h> | 36 | #include <linux/tty.h> |
38 | #include <linux/string.h> | 37 | #include <linux/string.h> |
39 | #include <linux/delay.h> | 38 | #include <linux/delay.h> |
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 7b01d67b4e48..ec341707e41b 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/unistd.h> | 25 | #include <linux/unistd.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/user.h> | 27 | #include <linux/user.h> |
28 | #include <linux/a.out.h> | ||
29 | #include <linux/tty.h> | 28 | #include <linux/tty.h> |
30 | #include <linux/major.h> | 29 | #include <linux/major.h> |
31 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
diff --git a/arch/powerpc/sysdev/mv64x60_dev.c b/arch/powerpc/sysdev/mv64x60_dev.c index 32e0ad0ebea8..b6bd775d2e22 100644 --- a/arch/powerpc/sysdev/mv64x60_dev.c +++ b/arch/powerpc/sysdev/mv64x60_dev.c | |||
@@ -293,10 +293,8 @@ static int __init mv64x60_eth_device_setup(struct device_node *np, int id, | |||
293 | return -ENODEV; | 293 | return -ENODEV; |
294 | 294 | ||
295 | prop = of_get_property(phy, "reg", NULL); | 295 | prop = of_get_property(phy, "reg", NULL); |
296 | if (prop) { | 296 | if (prop) |
297 | pdata.force_phy_addr = 1; | 297 | pdata.phy_addr = MV643XX_ETH_PHY_ADDR(*prop); |
298 | pdata.phy_addr = *prop; | ||
299 | } | ||
300 | 298 | ||
301 | of_node_put(phy); | 299 | of_node_put(phy); |
302 | 300 | ||