git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
ppc
/
kernel
/
setup.c
diff --git
a/arch/ppc/kernel/setup.c
b/arch/ppc/kernel/setup.c
index
1f79e84
..
3c506af
100644
(file)
--- a/
arch/ppc/kernel/setup.c
+++ b/
arch/ppc/kernel/setup.c
@@
-2,7
+2,6
@@
* Common prep boot and setup code.
*/
* Common prep boot and setup code.
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/sched.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/sched.h>
@@
-12,7
+11,7
@@
#include <linux/delay.h>
#include <linux/initrd.h>
#include <linux/ide.h>
#include <linux/delay.h>
#include <linux/initrd.h>
#include <linux/ide.h>
-#include <linux/
tty
.h>
+#include <linux/
screen_info
.h>
#include <linux/bootmem.h>
#include <linux/seq_file.h>
#include <linux/root_dev.h>
#include <linux/bootmem.h>
#include <linux/seq_file.h>
#include <linux/root_dev.h>
@@
-39,6
+38,7
@@
#include <asm/nvram.h>
#include <asm/xmon.h>
#include <asm/ocp.h>
#include <asm/nvram.h>
#include <asm/xmon.h>
#include <asm/ocp.h>
+#include <asm/prom.h>
#define USES_PPC_SYS (defined(CONFIG_85xx) || defined(CONFIG_83xx) || \
defined(CONFIG_MPC10X_BRIDGE) || defined(CONFIG_8260) || \
#define USES_PPC_SYS (defined(CONFIG_85xx) || defined(CONFIG_83xx) || \
defined(CONFIG_MPC10X_BRIDGE) || defined(CONFIG_8260) || \
@@
-54,8
+54,6
@@
extern void platform_init(unsigned long r3, unsigned long r4,
unsigned long r5, unsigned long r6, unsigned long r7);
extern void platform_init(unsigned long r3, unsigned long r4,
unsigned long r5, unsigned long r6, unsigned long r7);
-extern void identify_cpu(unsigned long offset, unsigned long cpu);
-extern void do_cpu_ftr_fixups(unsigned long offset);
extern void reloc_got2(unsigned long offset);
extern void ppc6xx_idle(void);
extern void reloc_got2(unsigned long offset);
extern void ppc6xx_idle(void);
@@
-87,10
+85,6
@@
int ppc_do_canonicalize_irqs;
EXPORT_SYMBOL(ppc_do_canonicalize_irqs);
#endif
EXPORT_SYMBOL(ppc_do_canonicalize_irqs);
#endif
-#ifdef CONFIG_MAGIC_SYSRQ
-unsigned long SYSRQ_KEY = 0x54;
-#endif /* CONFIG_MAGIC_SYSRQ */
-
#ifdef CONFIG_VGA_CONSOLE
unsigned long vgacon_remap_base;
#endif
#ifdef CONFIG_VGA_CONSOLE
unsigned long vgacon_remap_base;
#endif
@@
-128,11
+122,8
@@
void machine_restart(char *cmd)
ppc_md.restart(cmd);
}
ppc_md.restart(cmd);
}
-
void machine
_power_off(void)
+
static void ppc_generic
_power_off(void)
{
{
-#ifdef CONFIG_NVRAM
- nvram_sync();
-#endif
ppc_md.power_off();
}
ppc_md.power_off();
}
@@
-144,7
+135,17
@@
void machine_halt(void)
ppc_md.halt();
}
ppc_md.halt();
}
-void (*pm_power_off)(void) = machine_power_off;
+void (*pm_power_off)(void) = ppc_generic_power_off;
+
+void machine_power_off(void)
+{
+#ifdef CONFIG_NVRAM
+ nvram_sync();
+#endif
+ if (pm_power_off)
+ pm_power_off();
+ ppc_generic_power_off();
+}
#ifdef CONFIG_TAU
extern u32 cpu_temp(unsigned long cpu);
#ifdef CONFIG_TAU
extern u32 cpu_temp(unsigned long cpu);
@@
-299,6
+300,7
@@
early_init(int r3, int r4, int r5)
{
unsigned long phys;
unsigned long offset = reloc_offset();
{
unsigned long phys;
unsigned long offset = reloc_offset();
+ struct cpu_spec *spec;
/* Default */
phys = offset + KERNELBASE;
/* Default */
phys = offset + KERNELBASE;
@@
-311,8
+313,10
@@
early_init(int r3, int r4, int r5)
* Identify the CPU type and fix up code sections
* that depend on which cpu we have.
*/
* Identify the CPU type and fix up code sections
* that depend on which cpu we have.
*/
- identify_cpu(offset, 0);
- do_cpu_ftr_fixups(offset);
+ spec = identify_cpu(offset, mfspr(SPRN_PVR));
+ do_feature_fixups(spec->cpu_features,
+ PTRRELOC(&__start___ftr_fixup),
+ PTRRELOC(&__stop___ftr_fixup));
return phys;
}
return phys;
}
@@
-475,7
+479,7
@@
int __init ppc_init(void)
/* register CPU devices */
for_each_possible_cpu(i)
/* register CPU devices */
for_each_possible_cpu(i)
- register_cpu(&cpu_devices[i], i
, NULL
);
+ register_cpu(&cpu_devices[i], i);
/* call platform init */
if (ppc_md.init != NULL) {
/* call platform init */
if (ppc_md.init != NULL) {