diff options
-rw-r--r-- | arch/sparc64/defconfig | 24 | ||||
-rw-r--r-- | arch/sparc64/kernel/process.c | 4 | ||||
-rw-r--r-- | arch/sparc64/kernel/setup.c | 2 | ||||
-rw-r--r-- | arch/sparc64/prom/console.c | 8 | ||||
-rw-r--r-- | drivers/serial/suncore.c | 34 | ||||
-rw-r--r-- | drivers/serial/sunsab.c | 7 | ||||
-rw-r--r-- | include/asm-sparc64/oplib.h | 2 |
7 files changed, 70 insertions, 11 deletions
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig index 92b2fb6aaa46..9ceddad0fb49 100644 --- a/arch/sparc64/defconfig +++ b/arch/sparc64/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.15 | 3 | # Linux kernel version: 2.6.16-rc1 |
4 | # Mon Jan 9 14:36:29 2006 | 4 | # Wed Jan 18 13:41:02 2006 |
5 | # | 5 | # |
6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
@@ -233,6 +233,11 @@ CONFIG_VLAN_8021Q=m | |||
233 | # CONFIG_ATALK is not set | 233 | # CONFIG_ATALK is not set |
234 | # CONFIG_X25 is not set | 234 | # CONFIG_X25 is not set |
235 | # CONFIG_LAPB is not set | 235 | # CONFIG_LAPB is not set |
236 | |||
237 | # | ||
238 | # TIPC Configuration (EXPERIMENTAL) | ||
239 | # | ||
240 | # CONFIG_TIPC is not set | ||
236 | # CONFIG_NET_DIVERT is not set | 241 | # CONFIG_NET_DIVERT is not set |
237 | # CONFIG_ECONET is not set | 242 | # CONFIG_ECONET is not set |
238 | # CONFIG_WAN_ROUTER is not set | 243 | # CONFIG_WAN_ROUTER is not set |
@@ -420,8 +425,7 @@ CONFIG_ISCSI_TCP=m | |||
420 | # CONFIG_SCSI_QLOGIC_FC is not set | 425 | # CONFIG_SCSI_QLOGIC_FC is not set |
421 | # CONFIG_SCSI_QLOGIC_1280 is not set | 426 | # CONFIG_SCSI_QLOGIC_1280 is not set |
422 | # CONFIG_SCSI_QLOGICPTI is not set | 427 | # CONFIG_SCSI_QLOGICPTI is not set |
423 | CONFIG_SCSI_QLA2XXX=y | 428 | # CONFIG_SCSI_QLA_FC is not set |
424 | # CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set | ||
425 | # CONFIG_SCSI_LPFC is not set | 429 | # CONFIG_SCSI_LPFC is not set |
426 | # CONFIG_SCSI_DC395x is not set | 430 | # CONFIG_SCSI_DC395x is not set |
427 | # CONFIG_SCSI_DC390T is not set | 431 | # CONFIG_SCSI_DC390T is not set |
@@ -653,7 +657,6 @@ CONFIG_SERIAL_SUNSU_CONSOLE=y | |||
653 | CONFIG_SERIAL_SUNSAB=m | 657 | CONFIG_SERIAL_SUNSAB=m |
654 | CONFIG_SERIAL_CORE=y | 658 | CONFIG_SERIAL_CORE=y |
655 | CONFIG_SERIAL_CORE_CONSOLE=y | 659 | CONFIG_SERIAL_CORE_CONSOLE=y |
656 | # CONFIG_SERIAL_JSM is not set | ||
657 | CONFIG_UNIX98_PTYS=y | 660 | CONFIG_UNIX98_PTYS=y |
658 | # CONFIG_LEGACY_PTYS is not set | 661 | # CONFIG_LEGACY_PTYS is not set |
659 | 662 | ||
@@ -739,6 +742,12 @@ CONFIG_I2C_ALGOBIT=y | |||
739 | # CONFIG_I2C_DEBUG_CHIP is not set | 742 | # CONFIG_I2C_DEBUG_CHIP is not set |
740 | 743 | ||
741 | # | 744 | # |
745 | # SPI support | ||
746 | # | ||
747 | # CONFIG_SPI is not set | ||
748 | # CONFIG_SPI_MASTER is not set | ||
749 | |||
750 | # | ||
742 | # Dallas's 1-wire bus | 751 | # Dallas's 1-wire bus |
743 | # | 752 | # |
744 | # CONFIG_W1 is not set | 753 | # CONFIG_W1 is not set |
@@ -1015,6 +1024,7 @@ CONFIG_USB_UHCI_HCD=m | |||
1015 | # | 1024 | # |
1016 | CONFIG_USB_HID=y | 1025 | CONFIG_USB_HID=y |
1017 | CONFIG_USB_HIDINPUT=y | 1026 | CONFIG_USB_HIDINPUT=y |
1027 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1018 | # CONFIG_HID_FF is not set | 1028 | # CONFIG_HID_FF is not set |
1019 | CONFIG_USB_HIDDEV=y | 1029 | CONFIG_USB_HIDDEV=y |
1020 | # CONFIG_USB_AIPTEK is not set | 1030 | # CONFIG_USB_AIPTEK is not set |
@@ -1269,12 +1279,13 @@ CONFIG_KPROBES=y | |||
1269 | # Kernel hacking | 1279 | # Kernel hacking |
1270 | # | 1280 | # |
1271 | CONFIG_PRINTK_TIME=y | 1281 | CONFIG_PRINTK_TIME=y |
1272 | CONFIG_DEBUG_KERNEL=y | ||
1273 | CONFIG_MAGIC_SYSRQ=y | 1282 | CONFIG_MAGIC_SYSRQ=y |
1283 | CONFIG_DEBUG_KERNEL=y | ||
1274 | CONFIG_LOG_BUF_SHIFT=18 | 1284 | CONFIG_LOG_BUF_SHIFT=18 |
1275 | CONFIG_DETECT_SOFTLOCKUP=y | 1285 | CONFIG_DETECT_SOFTLOCKUP=y |
1276 | CONFIG_SCHEDSTATS=y | 1286 | CONFIG_SCHEDSTATS=y |
1277 | # CONFIG_DEBUG_SLAB is not set | 1287 | # CONFIG_DEBUG_SLAB is not set |
1288 | # CONFIG_DEBUG_MUTEXES is not set | ||
1278 | # CONFIG_DEBUG_SPINLOCK is not set | 1289 | # CONFIG_DEBUG_SPINLOCK is not set |
1279 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1290 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1280 | # CONFIG_DEBUG_KOBJECT is not set | 1291 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1282,6 +1293,7 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1282 | # CONFIG_DEBUG_INFO is not set | 1293 | # CONFIG_DEBUG_INFO is not set |
1283 | CONFIG_DEBUG_FS=y | 1294 | CONFIG_DEBUG_FS=y |
1284 | # CONFIG_DEBUG_VM is not set | 1295 | # CONFIG_DEBUG_VM is not set |
1296 | CONFIG_FORCED_INLINING=y | ||
1285 | # CONFIG_RCU_TORTURE_TEST is not set | 1297 | # CONFIG_RCU_TORTURE_TEST is not set |
1286 | # CONFIG_DEBUG_STACK_USAGE is not set | 1298 | # CONFIG_DEBUG_STACK_USAGE is not set |
1287 | # CONFIG_DEBUG_DCFLUSH is not set | 1299 | # CONFIG_DEBUG_DCFLUSH is not set |
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 1dc3650c5cae..059b0d025224 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c | |||
@@ -164,6 +164,7 @@ void machine_restart(char * cmd) | |||
164 | panic("Reboot failed!"); | 164 | panic("Reboot failed!"); |
165 | } | 165 | } |
166 | 166 | ||
167 | #ifdef CONFIG_COMPAT | ||
167 | static void show_regwindow32(struct pt_regs *regs) | 168 | static void show_regwindow32(struct pt_regs *regs) |
168 | { | 169 | { |
169 | struct reg_window32 __user *rw; | 170 | struct reg_window32 __user *rw; |
@@ -189,6 +190,9 @@ static void show_regwindow32(struct pt_regs *regs) | |||
189 | r_w.ins[0], r_w.ins[1], r_w.ins[2], r_w.ins[3], | 190 | r_w.ins[0], r_w.ins[1], r_w.ins[2], r_w.ins[3], |
190 | r_w.ins[4], r_w.ins[5], r_w.ins[6], r_w.ins[7]); | 191 | r_w.ins[4], r_w.ins[5], r_w.ins[6], r_w.ins[7]); |
191 | } | 192 | } |
193 | #else | ||
194 | #define show_regwindow32(regs) do { } while (0) | ||
195 | #endif | ||
192 | 196 | ||
193 | static void show_regwindow(struct pt_regs *regs) | 197 | static void show_regwindow(struct pt_regs *regs) |
194 | { | 198 | { |
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 250745896aee..054461e6946d 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -561,6 +561,8 @@ static int __init set_preferred_console(void) | |||
561 | serial_console = 1; | 561 | serial_console = 1; |
562 | } else if (idev == PROMDEV_ITTYB && odev == PROMDEV_OTTYB) { | 562 | } else if (idev == PROMDEV_ITTYB && odev == PROMDEV_OTTYB) { |
563 | serial_console = 2; | 563 | serial_console = 2; |
564 | } else if (idev == PROMDEV_IRSC && odev == PROMDEV_ORSC) { | ||
565 | serial_console = 3; | ||
564 | } else { | 566 | } else { |
565 | prom_printf("Inconsistent console: " | 567 | prom_printf("Inconsistent console: " |
566 | "input %d, output %d\n", | 568 | "input %d, output %d\n", |
diff --git a/arch/sparc64/prom/console.c b/arch/sparc64/prom/console.c index eae5db8dda56..ac6d035dd150 100644 --- a/arch/sparc64/prom/console.c +++ b/arch/sparc64/prom/console.c | |||
@@ -99,8 +99,12 @@ prom_query_input_device(void) | |||
99 | if (!strncmp(propb, "keyboard", 8)) | 99 | if (!strncmp(propb, "keyboard", 8)) |
100 | return PROMDEV_ITTYA; | 100 | return PROMDEV_ITTYA; |
101 | 101 | ||
102 | if (!strncmp (propb, "rsc", 3)) | ||
103 | return PROMDEV_IRSC; | ||
104 | |||
102 | if (strncmp (propb, "tty", 3) || !propb[3]) | 105 | if (strncmp (propb, "tty", 3) || !propb[3]) |
103 | return PROMDEV_I_UNK; | 106 | return PROMDEV_I_UNK; |
107 | |||
104 | switch (propb[3]) { | 108 | switch (propb[3]) { |
105 | case 'a': return PROMDEV_ITTYA; | 109 | case 'a': return PROMDEV_ITTYA; |
106 | case 'b': return PROMDEV_ITTYB; | 110 | case 'b': return PROMDEV_ITTYB; |
@@ -136,8 +140,12 @@ prom_query_output_device(void) | |||
136 | if (!strncmp(propb, "screen", 6)) | 140 | if (!strncmp(propb, "screen", 6)) |
137 | return PROMDEV_OTTYA; | 141 | return PROMDEV_OTTYA; |
138 | 142 | ||
143 | if (!strncmp (propb, "rsc", 3)) | ||
144 | return PROMDEV_ORSC; | ||
145 | |||
139 | if (strncmp (propb, "tty", 3) || !propb[3]) | 146 | if (strncmp (propb, "tty", 3) || !propb[3]) |
140 | return PROMDEV_O_UNK; | 147 | return PROMDEV_O_UNK; |
148 | |||
141 | switch (propb[3]) { | 149 | switch (propb[3]) { |
142 | case 'a': return PROMDEV_OTTYA; | 150 | case 'a': return PROMDEV_OTTYA; |
143 | case 'b': return PROMDEV_OTTYB; | 151 | case 'b': return PROMDEV_OTTYB; |
diff --git a/drivers/serial/suncore.c b/drivers/serial/suncore.c index 5fc4a62173d9..fa4ae94243c2 100644 --- a/drivers/serial/suncore.c +++ b/drivers/serial/suncore.c | |||
@@ -34,6 +34,7 @@ sunserial_console_termios(struct console *con) | |||
34 | char *mode_prop = "ttyX-mode"; | 34 | char *mode_prop = "ttyX-mode"; |
35 | char *cd_prop = "ttyX-ignore-cd"; | 35 | char *cd_prop = "ttyX-ignore-cd"; |
36 | char *dtr_prop = "ttyX-rts-dtr-off"; | 36 | char *dtr_prop = "ttyX-rts-dtr-off"; |
37 | char *ssp_console_modes_prop = "ssp-console-modes"; | ||
37 | int baud, bits, stop, cflag; | 38 | int baud, bits, stop, cflag; |
38 | char parity; | 39 | char parity; |
39 | int carrier = 0; | 40 | int carrier = 0; |
@@ -43,14 +44,39 @@ sunserial_console_termios(struct console *con) | |||
43 | if (!serial_console) | 44 | if (!serial_console) |
44 | return; | 45 | return; |
45 | 46 | ||
46 | if (serial_console == 1) { | 47 | switch (serial_console) { |
48 | case PROMDEV_OTTYA: | ||
47 | mode_prop[3] = 'a'; | 49 | mode_prop[3] = 'a'; |
48 | cd_prop[3] = 'a'; | 50 | cd_prop[3] = 'a'; |
49 | dtr_prop[3] = 'a'; | 51 | dtr_prop[3] = 'a'; |
50 | } else { | 52 | break; |
53 | |||
54 | case PROMDEV_OTTYB: | ||
51 | mode_prop[3] = 'b'; | 55 | mode_prop[3] = 'b'; |
52 | cd_prop[3] = 'b'; | 56 | cd_prop[3] = 'b'; |
53 | dtr_prop[3] = 'b'; | 57 | dtr_prop[3] = 'b'; |
58 | break; | ||
59 | |||
60 | case PROMDEV_ORSC: | ||
61 | |||
62 | nd = prom_pathtoinode("rsc"); | ||
63 | if (!nd) { | ||
64 | strcpy(mode, "115200,8,n,1,-"); | ||
65 | goto no_options; | ||
66 | } | ||
67 | |||
68 | if (!prom_node_has_property(nd, ssp_console_modes_prop)) { | ||
69 | strcpy(mode, "115200,8,n,1,-"); | ||
70 | goto no_options; | ||
71 | } | ||
72 | |||
73 | memset(mode, 0, sizeof(mode)); | ||
74 | prom_getstring(nd, ssp_console_modes_prop, mode, sizeof(mode)); | ||
75 | goto no_options; | ||
76 | |||
77 | default: | ||
78 | strcpy(mode, "9600,8,n,1,-"); | ||
79 | goto no_options; | ||
54 | } | 80 | } |
55 | 81 | ||
56 | topnd = prom_getchild(prom_root_node); | 82 | topnd = prom_getchild(prom_root_node); |
@@ -110,6 +136,10 @@ no_options: | |||
110 | case 9600: cflag |= B9600; break; | 136 | case 9600: cflag |= B9600; break; |
111 | case 19200: cflag |= B19200; break; | 137 | case 19200: cflag |= B19200; break; |
112 | case 38400: cflag |= B38400; break; | 138 | case 38400: cflag |= B38400; break; |
139 | case 57600: cflag |= B57600; break; | ||
140 | case 115200: cflag |= B115200; break; | ||
141 | case 230400: cflag |= B230400; break; | ||
142 | case 460800: cflag |= B460800; break; | ||
113 | default: baud = 9600; cflag |= B9600; break; | 143 | default: baud = 9600; cflag |= B9600; break; |
114 | } | 144 | } |
115 | 145 | ||
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c index 7e773ff76c61..8bcaebcc0ad7 100644 --- a/drivers/serial/sunsab.c +++ b/drivers/serial/sunsab.c | |||
@@ -897,9 +897,6 @@ static int sunsab_console_setup(struct console *con, char *options) | |||
897 | 897 | ||
898 | sunserial_console_termios(con); | 898 | sunserial_console_termios(con); |
899 | 899 | ||
900 | /* Firmware console speed is limited to 150-->38400 baud so | ||
901 | * this hackish cflag thing is OK. | ||
902 | */ | ||
903 | switch (con->cflag & CBAUD) { | 900 | switch (con->cflag & CBAUD) { |
904 | case B150: baud = 150; break; | 901 | case B150: baud = 150; break; |
905 | case B300: baud = 300; break; | 902 | case B300: baud = 300; break; |
@@ -910,6 +907,10 @@ static int sunsab_console_setup(struct console *con, char *options) | |||
910 | default: case B9600: baud = 9600; break; | 907 | default: case B9600: baud = 9600; break; |
911 | case B19200: baud = 19200; break; | 908 | case B19200: baud = 19200; break; |
912 | case B38400: baud = 38400; break; | 909 | case B38400: baud = 38400; break; |
910 | case B57600: baud = 57600; break; | ||
911 | case B115200: baud = 115200; break; | ||
912 | case B230400: baud = 230400; break; | ||
913 | case B460800: baud = 460800; break; | ||
913 | }; | 914 | }; |
914 | 915 | ||
915 | /* | 916 | /* |
diff --git a/include/asm-sparc64/oplib.h b/include/asm-sparc64/oplib.h index d02f1e8ae1a6..3c59b2693fb9 100644 --- a/include/asm-sparc64/oplib.h +++ b/include/asm-sparc64/oplib.h | |||
@@ -163,6 +163,7 @@ enum prom_input_device { | |||
163 | PROMDEV_IKBD, /* input from keyboard */ | 163 | PROMDEV_IKBD, /* input from keyboard */ |
164 | PROMDEV_ITTYA, /* input from ttya */ | 164 | PROMDEV_ITTYA, /* input from ttya */ |
165 | PROMDEV_ITTYB, /* input from ttyb */ | 165 | PROMDEV_ITTYB, /* input from ttyb */ |
166 | PROMDEV_IRSC, /* input from rsc */ | ||
166 | PROMDEV_I_UNK, | 167 | PROMDEV_I_UNK, |
167 | }; | 168 | }; |
168 | 169 | ||
@@ -174,6 +175,7 @@ enum prom_output_device { | |||
174 | PROMDEV_OSCREEN, /* to screen */ | 175 | PROMDEV_OSCREEN, /* to screen */ |
175 | PROMDEV_OTTYA, /* to ttya */ | 176 | PROMDEV_OTTYA, /* to ttya */ |
176 | PROMDEV_OTTYB, /* to ttyb */ | 177 | PROMDEV_OTTYB, /* to ttyb */ |
178 | PROMDEV_ORSC, /* to rsc */ | ||
177 | PROMDEV_O_UNK, | 179 | PROMDEV_O_UNK, |
178 | }; | 180 | }; |
179 | 181 | ||