On Wed, 30 Oct 2002, Maciej W. Rozycki wrote: > On Tue, 29 Oct 2002, Jun Sun wrote: > > > My limited xconfig knowledge seems to tell me that moving to the generic > > config file is the only way to make it work. If you know a better way to fix > > this, I will be happy to see it. [...] > The problem is CONFIG_SERIAL having different meanings for the MIPS port. > It causes annoyance with dynamic parsers (like `make config') and I'm not > surprised it breaks the xconfig static parser. I renamed the guilty options and also I decided moving DECstation serial port configuration to drivers/char is the way to go. As a side effect you now may build both the dz11/z8530 drivers and the i8250 one (as an advance towards a generic kernel). Here is a patch for 2.4. Does it fix things for you? And is it acceptable for the others? Specifically, I mean putting the questions under CONFIG_SERIAL_NONSTANDARD (the name is unfortunate, but that's heritage from the old days and is going to vainsh in 2.6 anyway). If no objections arise, I'll check the patch in soon, probably tomorrow. Maciej -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available + patch-mips-2.4.20-pre6-20021017-dec-serial-1 diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/Documentation/Configure.help linux-mips-2.4.20-pre6-20021017/Documentation/Configure.help --- linux-mips-2.4.20-pre6-20021017.macro/Documentation/Configure.help 2002-10-03 02:56:16.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/Documentation/Configure.help 2002-11-05 21:01:48.000000000 +0000 @@ -2148,6 +2148,27 @@ SGI PROM Console Support CONFIG_SGI_PROM_CONSOLE Say Y here to set up the boot console on serial port 0. +DECstation serial support +CONFIG_SERIAL_DEC + This selects whether you want to be asked about drivers for + DECstation serial ports. + + Note that the answer to this question won't directly affect the + kernel: saying N will just cause the configurator to skip all + the questions about DECstation serial ports. + + If unsure, say Y. + +Support for console on a DECstation serial port +CONFIG_SERIAL_DEC_CONSOLE + If you say Y here, it will be possible to use a serial port as the + system console (the system console is the device which receives all + kernel messages and warnings and which allows logins in single user + mode). Note that the firmware uses ttyS0 as the serial console on + the Maxine and ttyS2 on the others. + + If unsure, say Y. + DZ11 Serial Support CONFIG_DZ DZ11-family serial controllers for VAXstations, including the diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/arch/mips/config-shared.in linux-mips-2.4.20-pre6-20021017/arch/mips/config-shared.in --- linux-mips-2.4.20-pre6-20021017.macro/arch/mips/config-shared.in 2002-10-07 02:56:25.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/arch/mips/config-shared.in 2002-10-30 23:31:32.000000000 +0000 @@ -764,19 +764,6 @@ source drivers/char/Config.in #source drivers/misc/Config.in -if [ "$CONFIG_DECSTATION" = "y" ]; then - mainmenu_option next_comment - comment 'DECStation Character devices' - - tristate 'Standard/generic (dumb) serial support' CONFIG_SERIAL - dep_bool ' DZ11 Serial Support' CONFIG_DZ $CONFIG_SERIAL - dep_bool ' Z85C30 Serial Support' CONFIG_ZS $CONFIG_SERIAL $CONFIG_TC - dep_bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE $CONFIG_SERIAL -# dep_bool 'MAXINE Access.Bus mouse (VSXXX-BB/GB) support' CONFIG_DTOP_MOUSE $CONFIG_ACCESSBUS - bool 'Enhanced Real Time Clock Support' CONFIG_RTC - endmenu -fi - if [ "$CONFIG_SGI_IP22" = "y" ]; then mainmenu_option next_comment comment 'SGI Character devices' diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/drivers/char/Config.in linux-mips-2.4.20-pre6-20021017/drivers/char/Config.in --- linux-mips-2.4.20-pre6-20021017.macro/drivers/char/Config.in 2002-10-08 02:56:56.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/drivers/char/Config.in 2002-11-05 20:54:55.000000000 +0000 @@ -104,7 +104,14 @@ if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" fi fi fi + if [ "$CONFIG_DECSTATION" = "y" ]; then + bool ' DECstation serial support' CONFIG_SERIAL_DEC + dep_bool ' Support for console on a DECstation serial port' CONFIG_SERIAL_DEC_CONSOLE $CONFIG_SERIAL_DEC + dep_bool ' DZ11 serial support' CONFIG_DZ $CONFIG_SERIAL_DEC + dep_bool ' Z85C30 serial support' CONFIG_ZS $CONFIG_SERIAL_DEC $CONFIG_TC + fi fi + if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232 fi @@ -161,6 +168,9 @@ if [ "$CONFIG_BUSMOUSE" != "n" ]; then if [ "$CONFIG_ADB" = "y" -a "$CONFIG_ADB_KEYBOARD" = "y" ]; then dep_tristate ' Apple Desktop Bus mouse support (old driver)' CONFIG_ADBMOUSE $CONFIG_BUSMOUSE fi +# if [ "$CONFIG_DECSTATION" = "y" ]; then +# dep_bool ' MAXINE Access.Bus mouse (VSXXX-BB/GB) support' CONFIG_DTOP_MOUSE $CONFIG_ACCESSBUS +# fi fi tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/drivers/char/Makefile linux-mips-2.4.20-pre6-20021017/drivers/char/Makefile --- linux-mips-2.4.20-pre6-20021017.macro/drivers/char/Makefile 2002-09-12 03:09:53.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/drivers/char/Makefile 2002-11-05 20:37:50.000000000 +0000 @@ -126,7 +126,6 @@ endif ifeq ($(CONFIG_DECSTATION),y) KEYMAP = KEYBD = - SERIAL = decserial.o endif ifeq ($(CONFIG_BAGET_MIPS),y) @@ -158,6 +157,7 @@ obj-$(CONFIG_SERIAL_21285) += serial_212 obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o obj-$(CONFIG_TS_AU1000_ADS7846) += au1000_ts.o +obj-$(CONFIG_SERIAL_DEC) += decserial.o ifndef CONFIG_SUN_KEYBOARD obj-$(CONFIG_VT) += keyboard.o $(KEYMAP) $(KEYBD) diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/drivers/char/decserial.c linux-mips-2.4.20-pre6-20021017/drivers/char/decserial.c --- linux-mips-2.4.20-pre6-20021017.macro/drivers/char/decserial.c 2001-07-17 19:49:00.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/drivers/char/decserial.c 2002-11-05 20:31:26.000000000 +0000 @@ -28,7 +28,7 @@ extern int zs_init(void); extern int dz_init(void); #endif -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE #ifdef CONFIG_ZS extern void zs_serial_console_init(void); @@ -43,7 +43,7 @@ extern void dz_serial_console_init(void) /* rs_init - starts up the serial interface - handle normal case of starting up the serial interface */ -#ifdef CONFIG_SERIAL +#ifdef CONFIG_SERIAL_DEC int __init rs_init(void) { @@ -70,12 +70,12 @@ __initcall(rs_init); #endif -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE -/* serial_console_init handles the special case of starting +/* dec_serial_console_init handles the special case of starting * up the console on the serial port */ -void __init serial_console_init(void) +void __init dec_serial_console_init(void) { #if defined(CONFIG_ZS) && defined(CONFIG_DZ) if (IOASIC) diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/drivers/char/dz.c linux-mips-2.4.20-pre6-20021017/drivers/char/dz.c --- linux-mips-2.4.20-pre6-20021017.macro/drivers/char/dz.c 2002-10-02 02:56:52.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/drivers/char/dz.c 2002-11-05 20:32:23.000000000 +0000 @@ -1411,7 +1411,7 @@ int __init dz_init(void) } /* reset the chip */ -#ifndef CONFIG_SERIAL_CONSOLE +#ifndef CONFIG_SERIAL_DEC_CONSOLE dz_out(info, DZ_CSR, DZ_CLR); while ((tmp = dz_in(info, DZ_CSR)) & DZ_CLR); iob(); @@ -1433,7 +1433,7 @@ int __init dz_init(void) return 0; } -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE static void dz_console_put_char(unsigned char ch) { unsigned long flags; @@ -1587,6 +1587,6 @@ void __init dz_serial_console_init(void) register_console(&dz_sercons); } -#endif /* CONFIG_SERIAL_CONSOLE */ +#endif /* CONFIG_SERIAL_DEC_CONSOLE */ MODULE_LICENSE("GPL"); diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/drivers/char/tty_io.c linux-mips-2.4.20-pre6-20021017/drivers/char/tty_io.c --- linux-mips-2.4.20-pre6-20021017.macro/drivers/char/tty_io.c 2002-09-16 02:58:19.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/drivers/char/tty_io.c 2002-11-05 20:30:00.000000000 +0000 @@ -2240,6 +2240,9 @@ void __init console_init(void) sci_console_init(); #endif #endif +#ifdef CONFIG_SERIAL_DEC_CONSOLE + dec_serial_console_init(); +#endif #ifdef CONFIG_TN3270_CONSOLE tub3270_con_init(); #endif diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021017.macro/drivers/tc/zs.c linux-mips-2.4.20-pre6-20021017/drivers/tc/zs.c --- linux-mips-2.4.20-pre6-20021017.macro/drivers/tc/zs.c 2002-08-06 02:58:08.000000000 +0000 +++ linux-mips-2.4.20-pre6-20021017/drivers/tc/zs.c 2002-11-05 20:39:27.000000000 +0000 @@ -56,7 +56,7 @@ #include <linux/delay.h> #include <linux/init.h> #include <linux/ioport.h> -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE #include <linux/console.h> #endif @@ -157,10 +157,10 @@ struct dec_serial *zs_chain; /* list of struct tty_struct zs_ttys[NUM_CHANNELS]; -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE static struct console sercons; #endif -#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) \ +#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) \ && !defined(MODULE) static unsigned long break_pressed; /* break, really ... */ #endif @@ -416,7 +416,7 @@ static _INLINE_ void receive_chars(struc if (tty_break) { tty_break = 0; -#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) +#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) if (info->line == sercons.index) { if (!break_pressed) { break_pressed = jiffies; @@ -442,7 +442,7 @@ static _INLINE_ void receive_chars(struc write_zsreg(info->zs_channel, R0, ERR_RES); } -#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) +#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) if (break_pressed && info->line == sercons.index) { if (ch != 0 && time_before(jiffies, break_pressed + HZ*5)) { @@ -473,7 +473,7 @@ static _INLINE_ void receive_chars(struc *tty->flip.flag_buf_ptr++ = flag; *tty->flip.char_buf_ptr++ = ch; -#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) +#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE) ignore_char: #endif } @@ -1701,7 +1701,7 @@ int rs_open(struct tty_struct *tty, stru *tty->termios = info->callout_termios; change_speed(info); } -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE if (sercons.cflag && sercons.index == line) { tty->termios->c_cflag = sercons.cflag; sercons.cflag = 0; @@ -1801,7 +1801,7 @@ static void __init probe_sccs(void) zs_channels[n_channels].data = zs_channels[n_channels].control + 4; -#ifndef CONFIG_SERIAL_CONSOLE +#ifndef CONFIG_SERIAL_DEC_CONSOLE /* * We're called early and memory managment isn't up, yet. * Thus check_region would fail. @@ -2111,7 +2111,7 @@ unsigned int unregister_zs_hook(unsigned * Serial console driver * ------------------------------------------------------------ */ -#ifdef CONFIG_SERIAL_CONSOLE +#ifdef CONFIG_SERIAL_DEC_CONSOLE /* @@ -2279,7 +2279,7 @@ void __init zs_serial_console_init(void) { register_console(&sercons); } -#endif /* ifdef CONFIG_SERIAL_CONSOLE */ +#endif /* ifdef CONFIG_SERIAL_DEC_CONSOLE */ #ifdef CONFIG_KGDB struct dec_zschannel *zs_kgdbchan;