diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2007-07-18 03:49:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-18 11:38:22 -0400 |
commit | 8b4a40809e5330c9da5d20107d693d92d73b31dc (patch) | |
tree | 14de7320d32a7e72dc2cddf4833405db0f49a7ba /drivers/char | |
parent | b187f180cc942e50007aa039f8e3a620ee5f3171 (diff) |
zs: move to the serial subsystem
This is a reimplementation of the zs driver for the serial subsystem. Any
resemblance to the old driver is purely coincidential. ;-) I do hope I got
the handling of modem lines right -- better do not tackle me about the
issue unless you feel too good...
Any users of the old driver: please note the numbers of the serial lines
have now been swapped, i.e. ttyS0 <-> ttyS1 and ttyS2 <-> ttyS3. It has
to do with the modem lines mentioned above; basically the port A in a given
chip has to be initialised before the port B if you want to use the latter
as the serial console (which is usually the case), as operations on modem
lines of the serial line associated with the port B access both ports (see
the comment at the top of the driver for the details of wiring used).
Please update your scripts.
This is also the reason each SCC now requests an IRQ once only (as seen in
"/proc/interrupts") -- the handler takes care of both ports at once as the
line associated with the port B has to take status update interrupts from
both ports (and yet the line of the port A takes its own for itself too).
The old driver never got it right...
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/Kconfig | 33 | ||||
-rw-r--r-- | drivers/char/decserial.c | 67 |
2 files changed, 0 insertions, 100 deletions
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index d8d7125529c4..97bd71bc3aea 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
@@ -372,39 +372,6 @@ config ISTALLION | |||
372 | To compile this driver as a module, choose M here: the | 372 | To compile this driver as a module, choose M here: the |
373 | module will be called istallion. | 373 | module will be called istallion. |
374 | 374 | ||
375 | config SERIAL_DEC | ||
376 | bool "DECstation serial support" | ||
377 | depends on MACH_DECSTATION | ||
378 | default y | ||
379 | help | ||
380 | This selects whether you want to be asked about drivers for | ||
381 | DECstation serial ports. | ||
382 | |||
383 | Note that the answer to this question won't directly affect the | ||
384 | kernel: saying N will just cause the configurator to skip all | ||
385 | the questions about DECstation serial ports. | ||
386 | |||
387 | config SERIAL_DEC_CONSOLE | ||
388 | bool "Support for console on a DECstation serial port" | ||
389 | depends on SERIAL_DEC | ||
390 | default y | ||
391 | help | ||
392 | If you say Y here, it will be possible to use a serial port as the | ||
393 | system console (the system console is the device which receives all | ||
394 | kernel messages and warnings and which allows logins in single user | ||
395 | mode). Note that the firmware uses ttyS0 as the serial console on | ||
396 | the Maxine and ttyS2 on the others. | ||
397 | |||
398 | If unsure, say Y. | ||
399 | |||
400 | config ZS | ||
401 | bool "Z85C30 Serial Support" | ||
402 | depends on SERIAL_DEC | ||
403 | default y | ||
404 | help | ||
405 | Documentation on the Zilog 85C350 serial communications controller | ||
406 | is downloadable at <http://www.zilog.com/pdfs/serial/z85c30.pdf> | ||
407 | |||
408 | config A2232 | 375 | config A2232 |
409 | tristate "Commodore A2232 serial support (EXPERIMENTAL)" | 376 | tristate "Commodore A2232 serial support (EXPERIMENTAL)" |
410 | depends on EXPERIMENTAL && ZORRO && BROKEN_ON_SMP | 377 | depends on EXPERIMENTAL && ZORRO && BROKEN_ON_SMP |
diff --git a/drivers/char/decserial.c b/drivers/char/decserial.c deleted file mode 100644 index 8ea2bea2b183..000000000000 --- a/drivers/char/decserial.c +++ /dev/null | |||
@@ -1,67 +0,0 @@ | |||
1 | /* | ||
2 | * sercons.c | ||
3 | * choose the right serial device at boot time | ||
4 | * | ||
5 | * triemer 6-SEP-1998 | ||
6 | * sercons.c is designed to allow the three different kinds | ||
7 | * of serial devices under the decstation world to co-exist | ||
8 | * in the same kernel. The idea here is to abstract | ||
9 | * the pieces of the drivers that are common to this file | ||
10 | * so that they do not clash at compile time and runtime. | ||
11 | * | ||
12 | * HK 16-SEP-1998 v0.002 | ||
13 | * removed the PROM console as this is not a real serial | ||
14 | * device. Added support for PROM console in drivers/char/tty_io.c | ||
15 | * instead. Although it may work to enable more than one | ||
16 | * console device I strongly recommend to use only one. | ||
17 | */ | ||
18 | |||
19 | #include <linux/init.h> | ||
20 | #include <asm/dec/machtype.h> | ||
21 | |||
22 | #ifdef CONFIG_ZS | ||
23 | extern int zs_init(void); | ||
24 | #endif | ||
25 | |||
26 | #ifdef CONFIG_SERIAL_CONSOLE | ||
27 | |||
28 | #ifdef CONFIG_ZS | ||
29 | extern void zs_serial_console_init(void); | ||
30 | #endif | ||
31 | |||
32 | #endif | ||
33 | |||
34 | /* rs_init - starts up the serial interface - | ||
35 | handle normal case of starting up the serial interface */ | ||
36 | |||
37 | #ifdef CONFIG_SERIAL | ||
38 | |||
39 | int __init rs_init(void) | ||
40 | { | ||
41 | #ifdef CONFIG_ZS | ||
42 | if (IOASIC) | ||
43 | return zs_init(); | ||
44 | #endif | ||
45 | return -ENXIO; | ||
46 | } | ||
47 | |||
48 | __initcall(rs_init); | ||
49 | |||
50 | #endif | ||
51 | |||
52 | #ifdef CONFIG_SERIAL_CONSOLE | ||
53 | |||
54 | /* serial_console_init handles the special case of starting | ||
55 | * up the console on the serial port | ||
56 | */ | ||
57 | static int __init decserial_console_init(void) | ||
58 | { | ||
59 | #ifdef CONFIG_ZS | ||
60 | if (IOASIC) | ||
61 | zs_serial_console_init(); | ||
62 | #endif | ||
63 | return 0; | ||
64 | } | ||
65 | console_initcall(decserial_console_init); | ||
66 | |||
67 | #endif | ||