Commit 28cbc66c authored by Jan Engelhardt's avatar Jan Engelhardt Committed by Adrian Bunk

[SPARC]: Linux always started with 9600 8N1

The Linux kernel ignored the PROM's serial settings (115200,n,8,1 in
my case). This was because mode_prop remained "ttyX-mode" (expected:
"ttya-mode") due to the constness of string literals when used with
"char *". Since there is no "ttyX-mode" property in the PROM, Linux
always used the default 9600.

[ Investigation of the suncore.s assembler reveals that gcc optimizied
  away the stores, yet did not emit a warning, which is a pretty
  anti-social thing to do and is the only reason this bug lived for
  so long -DaveM ]
Signed-off-by: default avatarJan Engelhardt <jengelh@gmx.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
parent 0b566037
...@@ -31,9 +31,9 @@ void ...@@ -31,9 +31,9 @@ void
sunserial_console_termios(struct console *con) sunserial_console_termios(struct console *con)
{ {
char mode[16], buf[16], *s; char mode[16], buf[16], *s;
char *mode_prop = "ttyX-mode"; char mode_prop[] = "ttyX-mode";
char *cd_prop = "ttyX-ignore-cd"; char cd_prop[] = "ttyX-ignore-cd";
char *dtr_prop = "ttyX-rts-dtr-off"; char dtr_prop[] = "ttyX-rts-dtr-off";
char *ssp_console_modes_prop = "ssp-console-modes"; char *ssp_console_modes_prop = "ssp-console-modes";
int baud, bits, stop, cflag; int baud, bits, stop, cflag;
char parity; char parity;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment