diff options
Diffstat (limited to 'arch/powerpc/platforms/cell')
-rw-r--r-- | arch/powerpc/platforms/cell/beat_htab.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/celleb_pci.c | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/celleb_scc_epci.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/celleb_scc_pciex.c | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/celleb_setup.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/interrupt.c | 6 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/qpace_setup.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/setup.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spu_base.c | 5 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/fault.c | 2 |
10 files changed, 16 insertions, 17 deletions
diff --git a/arch/powerpc/platforms/cell/beat_htab.c b/arch/powerpc/platforms/cell/beat_htab.c index d4d245c0d787..bee9232fe619 100644 --- a/arch/powerpc/platforms/cell/beat_htab.c +++ b/arch/powerpc/platforms/cell/beat_htab.c | |||
@@ -186,7 +186,7 @@ static long beat_lpar_hpte_updatepp(unsigned long slot, | |||
186 | unsigned long newpp, | 186 | unsigned long newpp, |
187 | unsigned long vpn, | 187 | unsigned long vpn, |
188 | int psize, int apsize, | 188 | int psize, int apsize, |
189 | int ssize, int local) | 189 | int ssize, unsigned long flags) |
190 | { | 190 | { |
191 | unsigned long lpar_rc; | 191 | unsigned long lpar_rc; |
192 | u64 dummy0, dummy1; | 192 | u64 dummy0, dummy1; |
@@ -369,7 +369,7 @@ static long beat_lpar_hpte_updatepp_v3(unsigned long slot, | |||
369 | unsigned long newpp, | 369 | unsigned long newpp, |
370 | unsigned long vpn, | 370 | unsigned long vpn, |
371 | int psize, int apsize, | 371 | int psize, int apsize, |
372 | int ssize, int local) | 372 | int ssize, unsigned long flags) |
373 | { | 373 | { |
374 | unsigned long lpar_rc; | 374 | unsigned long lpar_rc; |
375 | unsigned long want_v; | 375 | unsigned long want_v; |
diff --git a/arch/powerpc/platforms/cell/celleb_pci.c b/arch/powerpc/platforms/cell/celleb_pci.c index 2b98a36ef8fb..3ce70ded2d6a 100644 --- a/arch/powerpc/platforms/cell/celleb_pci.c +++ b/arch/powerpc/platforms/cell/celleb_pci.c | |||
@@ -29,7 +29,7 @@ | |||
29 | #include <linux/pci.h> | 29 | #include <linux/pci.h> |
30 | #include <linux/string.h> | 30 | #include <linux/string.h> |
31 | #include <linux/init.h> | 31 | #include <linux/init.h> |
32 | #include <linux/bootmem.h> | 32 | #include <linux/memblock.h> |
33 | #include <linux/pci_regs.h> | 33 | #include <linux/pci_regs.h> |
34 | #include <linux/of.h> | 34 | #include <linux/of.h> |
35 | #include <linux/of_device.h> | 35 | #include <linux/of_device.h> |
@@ -401,11 +401,11 @@ error: | |||
401 | } else { | 401 | } else { |
402 | if (config && *config) { | 402 | if (config && *config) { |
403 | size = 256; | 403 | size = 256; |
404 | free_bootmem(__pa(*config), size); | 404 | memblock_free(__pa(*config), size); |
405 | } | 405 | } |
406 | if (res && *res) { | 406 | if (res && *res) { |
407 | size = sizeof(struct celleb_pci_resource); | 407 | size = sizeof(struct celleb_pci_resource); |
408 | free_bootmem(__pa(*res), size); | 408 | memblock_free(__pa(*res), size); |
409 | } | 409 | } |
410 | } | 410 | } |
411 | 411 | ||
diff --git a/arch/powerpc/platforms/cell/celleb_scc_epci.c b/arch/powerpc/platforms/cell/celleb_scc_epci.c index 844c0facb4f7..9438bbed402f 100644 --- a/arch/powerpc/platforms/cell/celleb_scc_epci.c +++ b/arch/powerpc/platforms/cell/celleb_scc_epci.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/pci.h> | 25 | #include <linux/pci.h> |
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/pci_regs.h> | 27 | #include <linux/pci_regs.h> |
28 | #include <linux/bootmem.h> | ||
29 | 28 | ||
30 | #include <asm/io.h> | 29 | #include <asm/io.h> |
31 | #include <asm/irq.h> | 30 | #include <asm/irq.h> |
diff --git a/arch/powerpc/platforms/cell/celleb_scc_pciex.c b/arch/powerpc/platforms/cell/celleb_scc_pciex.c index 4278acfa2ede..f22387598040 100644 --- a/arch/powerpc/platforms/cell/celleb_scc_pciex.c +++ b/arch/powerpc/platforms/cell/celleb_scc_pciex.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/string.h> | 25 | #include <linux/string.h> |
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/init.h> | 27 | #include <linux/init.h> |
28 | #include <linux/bootmem.h> | ||
29 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
30 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
31 | 30 | ||
diff --git a/arch/powerpc/platforms/cell/celleb_setup.c b/arch/powerpc/platforms/cell/celleb_setup.c index 34e8ce2976aa..90be8ec51686 100644 --- a/arch/powerpc/platforms/cell/celleb_setup.c +++ b/arch/powerpc/platforms/cell/celleb_setup.c | |||
@@ -142,6 +142,7 @@ static int __init celleb_probe_beat(void) | |||
142 | powerpc_firmware_features |= FW_FEATURE_CELLEB_ALWAYS | 142 | powerpc_firmware_features |= FW_FEATURE_CELLEB_ALWAYS |
143 | | FW_FEATURE_BEAT | FW_FEATURE_LPAR; | 143 | | FW_FEATURE_BEAT | FW_FEATURE_LPAR; |
144 | hpte_init_beat_v3(); | 144 | hpte_init_beat_v3(); |
145 | pm_power_off = beat_power_off; | ||
145 | 146 | ||
146 | return 1; | 147 | return 1; |
147 | } | 148 | } |
@@ -190,6 +191,7 @@ static int __init celleb_probe_native(void) | |||
190 | 191 | ||
191 | powerpc_firmware_features |= FW_FEATURE_CELLEB_ALWAYS; | 192 | powerpc_firmware_features |= FW_FEATURE_CELLEB_ALWAYS; |
192 | hpte_init_native(); | 193 | hpte_init_native(); |
194 | pm_power_off = rtas_power_off; | ||
193 | 195 | ||
194 | return 1; | 196 | return 1; |
195 | } | 197 | } |
@@ -204,7 +206,6 @@ define_machine(celleb_beat) { | |||
204 | .setup_arch = celleb_setup_arch_beat, | 206 | .setup_arch = celleb_setup_arch_beat, |
205 | .show_cpuinfo = celleb_show_cpuinfo, | 207 | .show_cpuinfo = celleb_show_cpuinfo, |
206 | .restart = beat_restart, | 208 | .restart = beat_restart, |
207 | .power_off = beat_power_off, | ||
208 | .halt = beat_halt, | 209 | .halt = beat_halt, |
209 | .get_rtc_time = beat_get_rtc_time, | 210 | .get_rtc_time = beat_get_rtc_time, |
210 | .set_rtc_time = beat_set_rtc_time, | 211 | .set_rtc_time = beat_set_rtc_time, |
@@ -230,7 +231,6 @@ define_machine(celleb_native) { | |||
230 | .setup_arch = celleb_setup_arch_native, | 231 | .setup_arch = celleb_setup_arch_native, |
231 | .show_cpuinfo = celleb_show_cpuinfo, | 232 | .show_cpuinfo = celleb_show_cpuinfo, |
232 | .restart = rtas_restart, | 233 | .restart = rtas_restart, |
233 | .power_off = rtas_power_off, | ||
234 | .halt = rtas_halt, | 234 | .halt = rtas_halt, |
235 | .get_boot_time = rtas_get_boot_time, | 235 | .get_boot_time = rtas_get_boot_time, |
236 | .get_rtc_time = rtas_get_rtc_time, | 236 | .get_rtc_time = rtas_get_rtc_time, |
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c index 8a106b4172e0..4c11421847be 100644 --- a/arch/powerpc/platforms/cell/interrupt.c +++ b/arch/powerpc/platforms/cell/interrupt.c | |||
@@ -82,7 +82,7 @@ static void iic_unmask(struct irq_data *d) | |||
82 | 82 | ||
83 | static void iic_eoi(struct irq_data *d) | 83 | static void iic_eoi(struct irq_data *d) |
84 | { | 84 | { |
85 | struct iic *iic = &__get_cpu_var(cpu_iic); | 85 | struct iic *iic = this_cpu_ptr(&cpu_iic); |
86 | out_be64(&iic->regs->prio, iic->eoi_stack[--iic->eoi_ptr]); | 86 | out_be64(&iic->regs->prio, iic->eoi_stack[--iic->eoi_ptr]); |
87 | BUG_ON(iic->eoi_ptr < 0); | 87 | BUG_ON(iic->eoi_ptr < 0); |
88 | } | 88 | } |
@@ -148,7 +148,7 @@ static unsigned int iic_get_irq(void) | |||
148 | struct iic *iic; | 148 | struct iic *iic; |
149 | unsigned int virq; | 149 | unsigned int virq; |
150 | 150 | ||
151 | iic = &__get_cpu_var(cpu_iic); | 151 | iic = this_cpu_ptr(&cpu_iic); |
152 | *(unsigned long *) &pending = | 152 | *(unsigned long *) &pending = |
153 | in_be64((u64 __iomem *) &iic->regs->pending_destr); | 153 | in_be64((u64 __iomem *) &iic->regs->pending_destr); |
154 | if (!(pending.flags & CBE_IIC_IRQ_VALID)) | 154 | if (!(pending.flags & CBE_IIC_IRQ_VALID)) |
@@ -163,7 +163,7 @@ static unsigned int iic_get_irq(void) | |||
163 | 163 | ||
164 | void iic_setup_cpu(void) | 164 | void iic_setup_cpu(void) |
165 | { | 165 | { |
166 | out_be64(&__get_cpu_var(cpu_iic).regs->prio, 0xff); | 166 | out_be64(this_cpu_ptr(&cpu_iic.regs->prio), 0xff); |
167 | } | 167 | } |
168 | 168 | ||
169 | u8 iic_get_target_id(int cpu) | 169 | u8 iic_get_target_id(int cpu) |
diff --git a/arch/powerpc/platforms/cell/qpace_setup.c b/arch/powerpc/platforms/cell/qpace_setup.c index 6e3409d590ac..d328140dc6f5 100644 --- a/arch/powerpc/platforms/cell/qpace_setup.c +++ b/arch/powerpc/platforms/cell/qpace_setup.c | |||
@@ -127,6 +127,7 @@ static int __init qpace_probe(void) | |||
127 | return 0; | 127 | return 0; |
128 | 128 | ||
129 | hpte_init_native(); | 129 | hpte_init_native(); |
130 | pm_power_off = rtas_power_off; | ||
130 | 131 | ||
131 | return 1; | 132 | return 1; |
132 | } | 133 | } |
@@ -137,7 +138,6 @@ define_machine(qpace) { | |||
137 | .setup_arch = qpace_setup_arch, | 138 | .setup_arch = qpace_setup_arch, |
138 | .show_cpuinfo = qpace_show_cpuinfo, | 139 | .show_cpuinfo = qpace_show_cpuinfo, |
139 | .restart = rtas_restart, | 140 | .restart = rtas_restart, |
140 | .power_off = rtas_power_off, | ||
141 | .halt = rtas_halt, | 141 | .halt = rtas_halt, |
142 | .get_boot_time = rtas_get_boot_time, | 142 | .get_boot_time = rtas_get_boot_time, |
143 | .get_rtc_time = rtas_get_rtc_time, | 143 | .get_rtc_time = rtas_get_rtc_time, |
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index 6ae25fb62015..d62aa982d530 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
@@ -259,6 +259,7 @@ static int __init cell_probe(void) | |||
259 | return 0; | 259 | return 0; |
260 | 260 | ||
261 | hpte_init_native(); | 261 | hpte_init_native(); |
262 | pm_power_off = rtas_power_off; | ||
262 | 263 | ||
263 | return 1; | 264 | return 1; |
264 | } | 265 | } |
@@ -269,7 +270,6 @@ define_machine(cell) { | |||
269 | .setup_arch = cell_setup_arch, | 270 | .setup_arch = cell_setup_arch, |
270 | .show_cpuinfo = cell_show_cpuinfo, | 271 | .show_cpuinfo = cell_show_cpuinfo, |
271 | .restart = rtas_restart, | 272 | .restart = rtas_restart, |
272 | .power_off = rtas_power_off, | ||
273 | .halt = rtas_halt, | 273 | .halt = rtas_halt, |
274 | .get_boot_time = rtas_get_boot_time, | 274 | .get_boot_time = rtas_get_boot_time, |
275 | .get_rtc_time = rtas_get_rtc_time, | 275 | .get_rtc_time = rtas_get_rtc_time, |
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index ffcbd242e669..f7af74f83693 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
@@ -181,7 +181,8 @@ static int __spu_trap_data_seg(struct spu *spu, unsigned long ea) | |||
181 | return 0; | 181 | return 0; |
182 | } | 182 | } |
183 | 183 | ||
184 | extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap); //XXX | 184 | extern int hash_page(unsigned long ea, unsigned long access, |
185 | unsigned long trap, unsigned long dsisr); //XXX | ||
185 | static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) | 186 | static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) |
186 | { | 187 | { |
187 | int ret; | 188 | int ret; |
@@ -196,7 +197,7 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) | |||
196 | (REGION_ID(ea) != USER_REGION_ID)) { | 197 | (REGION_ID(ea) != USER_REGION_ID)) { |
197 | 198 | ||
198 | spin_unlock(&spu->register_lock); | 199 | spin_unlock(&spu->register_lock); |
199 | ret = hash_page(ea, _PAGE_PRESENT, 0x300); | 200 | ret = hash_page(ea, _PAGE_PRESENT, 0x300, dsisr); |
200 | spin_lock(&spu->register_lock); | 201 | spin_lock(&spu->register_lock); |
201 | 202 | ||
202 | if (!ret) { | 203 | if (!ret) { |
diff --git a/arch/powerpc/platforms/cell/spufs/fault.c b/arch/powerpc/platforms/cell/spufs/fault.c index e45894a08118..d98f845ac777 100644 --- a/arch/powerpc/platforms/cell/spufs/fault.c +++ b/arch/powerpc/platforms/cell/spufs/fault.c | |||
@@ -144,7 +144,7 @@ int spufs_handle_class1(struct spu_context *ctx) | |||
144 | access = (_PAGE_PRESENT | _PAGE_USER); | 144 | access = (_PAGE_PRESENT | _PAGE_USER); |
145 | access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_RW : 0UL; | 145 | access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_RW : 0UL; |
146 | local_irq_save(flags); | 146 | local_irq_save(flags); |
147 | ret = hash_page(ea, access, 0x300); | 147 | ret = hash_page(ea, access, 0x300, dsisr); |
148 | local_irq_restore(flags); | 148 | local_irq_restore(flags); |
149 | 149 | ||
150 | /* hashing failed, so try the actual fault handler */ | 150 | /* hashing failed, so try the actual fault handler */ |