[PATCH] solaris emulation: incorrect tty locking
[linux-2.6] / drivers / char / decserial.c
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_DZ
27 extern int dz_init(void);
28 #endif
29
30 #ifdef CONFIG_SERIAL_CONSOLE
31
32 #ifdef CONFIG_ZS
33 extern void zs_serial_console_init(void);
34 #endif
35
36 #ifdef CONFIG_DZ
37 extern void dz_serial_console_init(void);
38 #endif
39
40 #endif
41
42 /* rs_init - starts up the serial interface -
43    handle normal case of starting up the serial interface */
44
45 #ifdef CONFIG_SERIAL
46
47 int __init rs_init(void)
48 {
49
50 #if defined(CONFIG_ZS) && defined(CONFIG_DZ)
51     if (IOASIC)
52         return zs_init();
53     else
54         return dz_init();
55 #else
56
57 #ifdef CONFIG_ZS
58     return zs_init();
59 #endif
60
61 #ifdef CONFIG_DZ
62     return dz_init();
63 #endif
64
65 #endif
66 }
67
68 __initcall(rs_init);
69
70 #endif
71
72 #ifdef CONFIG_SERIAL_CONSOLE
73
74 /* serial_console_init handles the special case of starting
75  *   up the console on the serial port
76  */
77 static int __init decserial_console_init(void)
78 {
79 #if defined(CONFIG_ZS) && defined(CONFIG_DZ)
80     if (IOASIC)
81         zs_serial_console_init();
82     else
83         dz_serial_console_init();
84 #else
85
86 #ifdef CONFIG_ZS
87     zs_serial_console_init();
88 #endif
89
90 #ifdef CONFIG_DZ
91     dz_serial_console_init();
92 #endif
93
94 #endif
95     return 0;
96 }
97 console_initcall(decserial_console_init);
98
99 #endif