[RFC v1 7/8] x86/init: user linker table for ce4100 early setup

From: Luis R. Rodriguez
Date: Tue Dec 15 2015 - 17:17:22 EST


From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx>

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

Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
---
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 1db8eec5b0e2..ec6912873395 100644
--- a/arch/x86/kernel/head32.c
+++ b/arch/x86/kernel/head32.c
@@ -41,9 +41,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.6.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/