diff options
| author | David S. Miller <davem@nuts.ninka.net> | 2003-06-24 07:50:45 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2003-06-24 07:50:45 -0700 |
| commit | 4131df98e086f2ccc2e30acf0c1a13f9dfde6e8a (patch) | |
| tree | 302cdca23b5c223659e8d785569e01e41176ae27 /drivers/serial | |
| parent | df791bdffab351a743b4adaa5a15934e7cc3b054 (diff) | |
[SERIAL]: Sanitize sparc serial console configuration.
Diffstat (limited to 'drivers/serial')
| -rw-r--r-- | drivers/serial/Kconfig | 26 | ||||
| -rw-r--r-- | drivers/serial/sunsab.c | 14 | ||||
| -rw-r--r-- | drivers/serial/sunsu.c | 12 | ||||
| -rw-r--r-- | drivers/serial/sunzilog.c | 13 |
4 files changed, 59 insertions, 6 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 98bb4fc127dc..94b36c3a01c8 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -326,6 +326,14 @@ config SERIAL_SUNZILOG This driver supports the Zilog8530 serial ports found on many Sparc systems. Say Y or M if you want to be able to these serial ports. +config SERIAL_SUNZILOG_CONSOLE + bool "Console on Sun Zilog8530 serial port" + depends on SERIAL_SUNZILOG=y + help + If you would like to be able to use the Zilog8530 serial port + on your Sparc system as the console, you can do so by answering + Y to this option. + config SERIAL_SUNSU tristate "Sun SU serial support" depends on (SPARC32 || SPARC64) && PCI @@ -334,6 +342,14 @@ config SERIAL_SUNSU mouse on (PCI) UltraSPARC systems. Say Y or M if you want to be able to these serial ports. +config SERIAL_SUNSU_CONSOLE + bool "Console on Sun SU serial port" + depends on SERIAL_SUNSU=y + help + If you would like to be able to use the SU serial port + on your Sparc system as the console, you can do so by answering + Y to this option. + config SERIAL_MUX tristate "Serial MUX support" depends on PARISC @@ -380,6 +396,14 @@ config SERIAL_SUNSAB (PCI) UltraSPARC systems. Say Y or M if you want to be able to these serial ports. +config SERIAL_SUNSAB_CONSOLE + bool "Console on Sun Siemens SAB82532 serial port" + depends on SERIAL_SUNSAB=y + help + If you would like to be able to use the SAB82532 serial port + on your Sparc system as the console, you can do so by answering + Y to this option. + config V850E_NB85E_UART bool "NEC V850E on-chip UART support" depends on V850E_NB85E || V850E2_ANNA || V850E_AS85EP1 @@ -407,7 +431,7 @@ config SERIAL_CORE config SERIAL_CORE_CONSOLE bool - depends on SERIAL_AMBA_CONSOLE || SERIAL_CLPS711X_CONSOLE || SERIAL_21285_CONSOLE || SERIAL_SA1100_CONSOLE || SERIAL_ANAKIN_CONSOLE || SERIAL_UART00_CONSOLE || SERIAL_8250_CONSOLE || SERIAL_MUX_CONSOLE || SERIAL_SUNCORE || V850E_NB85E_UART_CONSOLE || SERIAL98_CONSOLE + depends on SERIAL_AMBA_CONSOLE || SERIAL_CLPS711X_CONSOLE || SERIAL_21285_CONSOLE || SERIAL_SA1100_CONSOLE || SERIAL_ANAKIN_CONSOLE || SERIAL_UART00_CONSOLE || SERIAL_8250_CONSOLE || SERIAL_MUX_CONSOLE || SERIAL_SUNZILOG_CONSOLE || SERIAL_SUNSU_CONSOLE || SERIAL_SUNSAB_CONSOLE || V850E_NB85E_UART_CONSOLE || SERIAL98_CONSOLE default y config SERIAL_68328 diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c index f69dccdfc530..5ddd135d99bb 100644 --- a/drivers/serial/sunsab.c +++ b/drivers/serial/sunsab.c @@ -28,6 +28,7 @@ #include <linux/ioport.h> #include <linux/circ_buf.h> #include <linux/serial.h> +#include <linux/sysrq.h> #include <linux/console.h> #include <linux/spinlock.h> #include <linux/slab.h> @@ -38,6 +39,10 @@ #include <asm/oplib.h> #include <asm/ebus.h> +#if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +#define SUPPORT_SYSRQ +#endif + #include <linux/serial_core.h> #include "suncore.h" @@ -838,6 +843,8 @@ static struct uart_driver sunsab_reg = { static struct uart_sunsab_port *sunsab_ports; static int num_channels; +#ifdef CONFIG_SERIAL_SUNSAB_CONSOLE + static __inline__ void sunsab_console_putchar(struct uart_sunsab_port *up, char c) { unsigned long flags; @@ -929,6 +936,7 @@ static struct console sunsab_console = { .index = -1, .data = &sunsab_reg, }; +#define SUNSAB_CONSOLE (&sunsab_console) static void __init sunsab_console_init(void) { @@ -949,6 +957,10 @@ static void __init sunsab_console_init(void) sunsab_console.index = i; register_console(&sunsab_console); } +#else +#define SUNSAB_CONSOLE (NULL) +#define sunsab_console_init() do { } while (0) +#endif static void __init for_each_sab_edev(void (*callback)(struct linux_ebus_device *, void *), void *arg) { @@ -1091,7 +1103,7 @@ static int __init sunsab_init(void) sunsab_reg.minor = sunserial_current_minor; sunsab_reg.nr = num_channels; - sunsab_reg.cons = &sunsab_console; + sunsab_reg.cons = SUNSAB_CONSOLE; ret = uart_register_driver(&sunsab_reg); if (ret < 0) { diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 8a42e34130f5..57fc1906a4c1 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c @@ -46,8 +46,7 @@ #include <asm/isa.h> #endif -/* #if defined(CONFIG_SERIAL_8250_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) */ -#if defined(CONFIG_MAGIC_SYSRQ) +#if defined(CONFIG_SERIAL_SUNSU_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) #define SUPPORT_SYSRQ #endif @@ -1347,6 +1346,8 @@ static int __init sunsu_kbd_ms_init(void) * ------------------------------------------------------------ */ +#ifdef CONFIG_SERIAL_SUNSU_CONSOLE + #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) /* @@ -1465,6 +1466,7 @@ static struct console sunsu_cons = { .index = -1, .data = &sunsu_reg, }; +#define SUNSU_CONSOLE (&sunsu_cons) /* * Register console. @@ -1492,6 +1494,10 @@ static int __init sunsu_serial_console_init(void) register_console(&sunsu_cons); return 0; } +#else +#define SUNSU_CONSOLE (NULL) +#define sunsu_serial_console_init() do { } while (0) +#endif static int __init sunsu_serial_init(void) { @@ -1522,7 +1528,7 @@ static int __init sunsu_serial_init(void) sunserial_current_minor += instance; sunsu_reg.nr = instance; - sunsu_reg.cons = &sunsu_cons; + sunsu_reg.cons = SUNSU_CONSOLE; ret = uart_register_driver(&sunsu_reg); if (ret < 0) diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c index 8a5bcd6e19b3..1f63f74fdf57 100644 --- a/drivers/serial/sunzilog.c +++ b/drivers/serial/sunzilog.c @@ -28,6 +28,7 @@ #include <linux/slab.h> #include <linux/circ_buf.h> #include <linux/serial.h> +#include <linux/sysrq.h> #include <linux/console.h> #include <linux/spinlock.h> #ifdef CONFIG_SERIO @@ -42,6 +43,10 @@ #endif #include <asm/sbus.h> +#if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) +#define SUPPORT_SYSRQ +#endif + #include <linux/serial_core.h> #include "suncore.h" @@ -1331,6 +1336,7 @@ static void sunzilog_serio_close(struct serio *serio) #endif /* CONFIG_SERIO */ +#ifdef CONFIG_SERIAL_SUNZILOG_CONSOLE static void sunzilog_console_write(struct console *con, const char *s, unsigned int count) { @@ -1400,6 +1406,7 @@ static struct console sunzilog_console = { .index = -1, .data = &sunzilog_reg, }; +#define SUNZILOG_CONSOLE (&sunzilog_console) static int __init sunzilog_console_init(void) { @@ -1422,6 +1429,10 @@ static int __init sunzilog_console_init(void) register_console(&sunzilog_console); return 0; } +#else +#define SUNZILOG_CONSOLE (NULL) +#define sunzilog_console_init() do { } while (0) +#endif /* * We scan the PROM tree recursively. This is the most reliable way @@ -1639,7 +1650,7 @@ static int __init sunzilog_ports_init(void) * in the system. */ sunzilog_reg.nr = NUM_CHANNELS; - sunzilog_reg.cons = &sunzilog_console; + sunzilog_reg.cons = SUNZILOG_CONSOLE; sunzilog_reg.minor = sunserial_current_minor; sunserial_current_minor += NUM_CHANNELS; |
