@@ -51,12 +51,6 @@ extern void x86_intel_mid_early_setup(void);
static inline void x86_intel_mid_early_setup(void) { }
#endif
-#ifdef CONFIG_X86_INTEL_CE
-extern void x86_ce4100_early_setup(void);
-#else
-static inline void x86_ce4100_early_setup(void) { }
-#endif
-
#ifndef _SETUP
#include <asm/espfix.h>
@@ -42,9 +42,6 @@ asmlinkage __visible void __init i386_start_kernel(void)
case X86_SUBARCH_INTEL_MID:
x86_intel_mid_early_setup();
break;
- case X86_SUBARCH_CE4100:
- x86_ce4100_early_setup();
- break;
}
x86_init_fn_init_tables();
@@ -24,6 +24,7 @@
#include <asm/io.h>
#include <asm/io_apic.h>
#include <asm/emergency-restart.h>
+#include <asm/x86_init.h>
static int ce4100_i8042_detect(void)
{
@@ -144,7 +145,7 @@ static void sdv_pci_init(void)
* CE4100 specific x86_init function overrides and early setup
* calls.
*/
-void __init x86_ce4100_early_setup(void)
+static void __init x86_ce4100_early_setup(void)
{
x86_init.oem.arch_setup = sdv_arch_setup;
x86_platform.i8042_detect = ce4100_i8042_detect;
@@ -166,3 +167,4 @@ void __init x86_ce4100_early_setup(void)
pm_power_off = ce4100_power_off;
}
+x86_init_early(BIT(X86_SUBARCH_CE4100), NULL, NULL, x86_ce4100_early_setup);
Using the linker table removes the need for the #ifdef'ery and clutter on head32.c. Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org> --- arch/x86/include/asm/setup.h | 6 ------ arch/x86/kernel/head32.c | 3 --- arch/x86/platform/ce4100/ce4100.c | 4 +++- 3 files changed, 3 insertions(+), 10 deletions(-)