diff options
| -rw-r--r-- | arch/x86/boot/early_serial_console.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/x86/boot/early_serial_console.c b/arch/x86/boot/early_serial_console.c index 407a8e26f0a7..5df2869c874b 100644 --- a/arch/x86/boot/early_serial_console.c +++ b/arch/x86/boot/early_serial_console.c | |||
| @@ -58,7 +58,19 @@ static void parse_earlyprintk(void) | |||
| 58 | if (arg[pos] == ',') | 58 | if (arg[pos] == ',') |
| 59 | pos++; | 59 | pos++; |
| 60 | 60 | ||
| 61 | if (!strncmp(arg + pos, "ttyS", 4)) { | 61 | /* |
| 62 | * make sure we have | ||
| 63 | * "serial,0x3f8,115200" | ||
| 64 | * "serial,ttyS0,115200" | ||
| 65 | * "ttyS0,115200" | ||
| 66 | */ | ||
| 67 | if (pos == 7 && !strncmp(arg + pos, "0x", 2)) { | ||
| 68 | port = simple_strtoull(arg + pos, &e, 16); | ||
| 69 | if (port == 0 || arg + pos == e) | ||
| 70 | port = DEFAULT_SERIAL_PORT; | ||
| 71 | else | ||
| 72 | pos = e - arg; | ||
| 73 | } else if (!strncmp(arg + pos, "ttyS", 4)) { | ||
| 62 | static const int bases[] = { 0x3f8, 0x2f8 }; | 74 | static const int bases[] = { 0x3f8, 0x2f8 }; |
| 63 | int idx = 0; | 75 | int idx = 0; |
| 64 | 76 | ||
