[RFC v2 5/6] x86/init: user linker table for ce4100 early setup

From: Luis R. Rodriguez
Date: Fri Feb 19 2016 - 09:16:45 EST


Using the linker table removes the need for the #ifdef'ery
and clutter on head32.c.

Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxx>
---
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(-)

diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 11af24e09c8a..f1e111a9d558 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -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>
diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
index 0b41626e57fc..9357feb09863 100644
--- a/arch/x86/kernel/head32.c
+++ b/arch/x86/kernel/head32.c
@@ -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();
diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 701fd5843c87..db2a709402e2 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -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);
--
2.7.0