diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-06 22:32:52 +0000 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-01-06 22:32:52 +0000 | 
| commit | 4073723acb9cdcdbe4df9c0e0c376c65d1697e43 (patch) | |
| tree | f41c17eac157b1223ce104845cf9b1e5a9e6a83d /arch/arm/kernel/setup.c | |
| parent | 58daf18cdcab550262a5f4681e1f1e073e21965a (diff) | |
| parent | 4ec3eb13634529c0bc7466658d84d0bbe3244aea (diff) | |
| download | olio-linux-3.10-4073723acb9cdcdbe4df9c0e0c376c65d1697e43.tar.xz olio-linux-3.10-4073723acb9cdcdbe4df9c0e0c376c65d1697e43.zip  | |
Merge branch 'misc' into devel
Conflicts:
	arch/arm/Kconfig
	arch/arm/common/Makefile
	arch/arm/kernel/Makefile
	arch/arm/kernel/smp.c
Diffstat (limited to 'arch/arm/kernel/setup.c')
| -rw-r--r-- | arch/arm/kernel/setup.c | 37 | 
1 files changed, 18 insertions, 19 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 336f14e0e5c..3455ad33de4 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c @@ -75,9 +75,9 @@ extern void reboot_setup(char *str);  unsigned int processor_id;  EXPORT_SYMBOL(processor_id); -unsigned int __machine_arch_type; +unsigned int __machine_arch_type __read_mostly;  EXPORT_SYMBOL(__machine_arch_type); -unsigned int cacheid; +unsigned int cacheid __read_mostly;  EXPORT_SYMBOL(cacheid);  unsigned int __atags_pointer __initdata; @@ -91,24 +91,24 @@ EXPORT_SYMBOL(system_serial_low);  unsigned int system_serial_high;  EXPORT_SYMBOL(system_serial_high); -unsigned int elf_hwcap; +unsigned int elf_hwcap __read_mostly;  EXPORT_SYMBOL(elf_hwcap);  #ifdef MULTI_CPU -struct processor processor; +struct processor processor __read_mostly;  #endif  #ifdef MULTI_TLB -struct cpu_tlb_fns cpu_tlb; +struct cpu_tlb_fns cpu_tlb __read_mostly;  #endif  #ifdef MULTI_USER -struct cpu_user_fns cpu_user; +struct cpu_user_fns cpu_user __read_mostly;  #endif  #ifdef MULTI_CACHE -struct cpu_cache_fns cpu_cache; +struct cpu_cache_fns cpu_cache __read_mostly;  #endif  #ifdef CONFIG_OUTER_CACHE -struct outer_cache_fns outer_cache; +struct outer_cache_fns outer_cache __read_mostly;  EXPORT_SYMBOL(outer_cache);  #endif @@ -126,6 +126,7 @@ EXPORT_SYMBOL(elf_platform);  static const char *cpu_name;  static const char *machine_name;  static char __initdata cmd_line[COMMAND_LINE_SIZE]; +struct machine_desc *machine_desc __initdata;  static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;  static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } }; @@ -708,13 +709,11 @@ static struct init_tags {  	{ 0, ATAG_NONE }  }; -static void (*init_machine)(void) __initdata; -  static int __init customize_machine(void)  {  	/* customizes platform devices, or adds new ones */ -	if (init_machine) -		init_machine(); +	if (machine_desc->init_machine) +		machine_desc->init_machine();  	return 0;  }  arch_initcall(customize_machine); @@ -809,6 +808,7 @@ void __init setup_arch(char **cmdline_p)  	setup_processor();  	mdesc = setup_machine(machine_arch_type); +	machine_desc = mdesc;  	machine_name = mdesc->name;  	if (mdesc->soft_reboot) @@ -868,13 +868,9 @@ void __init setup_arch(char **cmdline_p)  	cpu_init();  	tcm_init(); -	/* -	 * Set up various architecture-specific pointers -	 */ -	arch_nr_irqs = mdesc->nr_irqs; -	init_arch_irq = mdesc->init_irq; -	system_timer = mdesc->timer; -	init_machine = mdesc->init_machine; +#ifdef CONFIG_MULTI_IRQ_HANDLER +	handle_arch_irq = mdesc->handle_irq; +#endif  #ifdef CONFIG_VT  #if defined(CONFIG_VGA_CONSOLE) @@ -884,6 +880,9 @@ void __init setup_arch(char **cmdline_p)  #endif  #endif  	early_trap_init(); + +	if (mdesc->init_early) +		mdesc->init_early();  }  |