diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2006-12-06 23:38:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 11:39:41 -0500 |
commit | 9399575dd30edcb84e821583daf81d4ba774a95b (patch) | |
tree | 0dbd1b3607277dfb67ecffaf5a35197d08a8b563 /drivers/char | |
parent | f7dff2b12654149c9cac8d8c79b6588759edd5a9 (diff) |
[PATCH] dz: Fixes to make it work
This a set of fixes mostly to make the driver actually work:
1. Actually select the line for setting parameters and receiver
disable/enable.
2. Select the line for receive and transmit interrupt handling correctly.
3. Report the transmitter empty state correctly.
4. Set the I/O type of ports correctly.
5. Perform polled transmission correctly.
6. Don't fix the console line at ttyS3.
7. Magic SysRq support.
8. Various small bits here and there.
Tested with a DECstation 2100 (thanks Flo for making this possible).
[akpm@osdl.org: fix typo]
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/decserial.c | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/drivers/char/decserial.c b/drivers/char/decserial.c index 85f404e25c73..8ea2bea2b183 100644 --- a/drivers/char/decserial.c +++ b/drivers/char/decserial.c | |||
@@ -23,20 +23,12 @@ | |||
23 | extern int zs_init(void); | 23 | extern int zs_init(void); |
24 | #endif | 24 | #endif |
25 | 25 | ||
26 | #ifdef CONFIG_DZ | ||
27 | extern int dz_init(void); | ||
28 | #endif | ||
29 | |||
30 | #ifdef CONFIG_SERIAL_CONSOLE | 26 | #ifdef CONFIG_SERIAL_CONSOLE |
31 | 27 | ||
32 | #ifdef CONFIG_ZS | 28 | #ifdef CONFIG_ZS |
33 | extern void zs_serial_console_init(void); | 29 | extern void zs_serial_console_init(void); |
34 | #endif | 30 | #endif |
35 | 31 | ||
36 | #ifdef CONFIG_DZ | ||
37 | extern void dz_serial_console_init(void); | ||
38 | #endif | ||
39 | |||
40 | #endif | 32 | #endif |
41 | 33 | ||
42 | /* rs_init - starts up the serial interface - | 34 | /* rs_init - starts up the serial interface - |
@@ -46,23 +38,11 @@ extern void dz_serial_console_init(void); | |||
46 | 38 | ||
47 | int __init rs_init(void) | 39 | int __init rs_init(void) |
48 | { | 40 | { |
49 | 41 | #ifdef CONFIG_ZS | |
50 | #if defined(CONFIG_ZS) && defined(CONFIG_DZ) | ||
51 | if (IOASIC) | 42 | if (IOASIC) |
52 | return zs_init(); | 43 | 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 | 44 | #endif |
45 | return -ENXIO; | ||
66 | } | 46 | } |
67 | 47 | ||
68 | __initcall(rs_init); | 48 | __initcall(rs_init); |
@@ -76,21 +56,9 @@ __initcall(rs_init); | |||
76 | */ | 56 | */ |
77 | static int __init decserial_console_init(void) | 57 | static int __init decserial_console_init(void) |
78 | { | 58 | { |
79 | #if defined(CONFIG_ZS) && defined(CONFIG_DZ) | 59 | #ifdef CONFIG_ZS |
80 | if (IOASIC) | 60 | if (IOASIC) |
81 | zs_serial_console_init(); | 61 | 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 | 62 | #endif |
95 | return 0; | 63 | return 0; |
96 | } | 64 | } |