From af52e7df1607f3ba1b8c50588ee96f832a8db8a0 Mon Sep 17 00:00:00 2001 From: Peter Chubb Date: Tue, 21 Aug 2007 13:51:45 +1000 Subject: [PATCH] --- yaml --- r: 64694 b: refs/heads/master c: 8b713c67bccef7cabb0ee915f47eb33d82636af9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/ia64/hp/sim/hpsim_console.c | 15 ++++++++++++++- trunk/arch/ia64/hp/sim/hpsim_setup.c | 9 ++------- trunk/arch/ia64/kernel/setup.c | 8 ++------ trunk/include/asm-ia64/hpsim.h | 10 ++++++++++ 5 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 trunk/include/asm-ia64/hpsim.h diff --git a/[refs] b/[refs] index 9f921cfd2592..e74f20c0dba1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 99a19cf1c0eb22bad83fff060f08330ee9e029e2 +refs/heads/master: 8b713c67bccef7cabb0ee915f47eb33d82636af9 diff --git a/trunk/arch/ia64/hp/sim/hpsim_console.c b/trunk/arch/ia64/hp/sim/hpsim_console.c index 6e149c8ab835..0475a5452404 100644 --- a/trunk/arch/ia64/hp/sim/hpsim_console.c +++ b/trunk/arch/ia64/hp/sim/hpsim_console.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "hpsim_ssc.h" @@ -28,7 +29,7 @@ static int simcons_init (struct console *, char *); static void simcons_write (struct console *, const char *, unsigned); static struct tty_driver *simcons_console_device (struct console *, int *); -struct console hpsim_cons = { +static struct console hpsim_cons = { .name = "simcons", .write = simcons_write, .device = simcons_console_device, @@ -62,3 +63,15 @@ static struct tty_driver *simcons_console_device (struct console *c, int *index) *index = c->index; return hp_simserial_driver; } + +int simcons_register(void) +{ + if (!ia64_platform_is("hpsim")) + return 1; + + if (hpsim_cons.flags & CON_ENABLED) + return 1; + + register_console(&hpsim_cons); + return 0; +} diff --git a/trunk/arch/ia64/hp/sim/hpsim_setup.c b/trunk/arch/ia64/hp/sim/hpsim_setup.c index f2297192a582..f629e903ebc7 100644 --- a/trunk/arch/ia64/hp/sim/hpsim_setup.c +++ b/trunk/arch/ia64/hp/sim/hpsim_setup.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "hpsim_ssc.h" @@ -41,11 +42,5 @@ hpsim_setup (char **cmdline_p) { ROOT_DEV = Root_SDA1; /* default to first SCSI drive */ -#ifdef CONFIG_HP_SIMSERIAL_CONSOLE - { - extern struct console hpsim_cons; - if (ia64_platform_is("hpsim")) - register_console(&hpsim_cons); - } -#endif + simcons_register(); } diff --git a/trunk/arch/ia64/kernel/setup.c b/trunk/arch/ia64/kernel/setup.c index 1f9b1d818dcd..9e392a30d197 100644 --- a/trunk/arch/ia64/kernel/setup.c +++ b/trunk/arch/ia64/kernel/setup.c @@ -60,6 +60,7 @@ #include #include #include +#include #if defined(CONFIG_SMP) && (IA64_CPU_SIZE > PAGE_SIZE) # error "struct cpuinfo_ia64 too big!" @@ -389,13 +390,8 @@ early_console_setup (char *cmdline) if (!efi_setup_pcdp_console(cmdline)) earlycons++; #endif -#ifdef CONFIG_HP_SIMSERIAL_CONSOLE - { - extern struct console hpsim_cons; - register_console(&hpsim_cons); + if (!simcons_register()) earlycons++; - } -#endif return (earlycons) ? 0 : -1; } diff --git a/trunk/include/asm-ia64/hpsim.h b/trunk/include/asm-ia64/hpsim.h new file mode 100644 index 000000000000..d6be3fdc39fa --- /dev/null +++ b/trunk/include/asm-ia64/hpsim.h @@ -0,0 +1,10 @@ +#ifndef _ASMIA64_HPSIM_H +#define _ASMIA64_HPSIM_H + +#ifndef CONFIG_HP_SIMSERIAL_CONSOLE +static inline int simcons_register(void) { return 1; } +#else +int simcons_register(void); +#endif + +#endif