You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.5 KiB
45 lines
1.5 KiB
From 25abc0cde3f4865910b380d68ffda0916b5870e7 Mon Sep 17 00:00:00 2001
|
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
|
Date: Sat, 27 Nov 2010 12:25:21 +0100
|
|
Subject: [PATCH 4/6] MIPS: BCM47xx: Swap serial console if ttyS1 was specified.
|
|
|
|
Some devices like the Netgear WGT634U are using ttyS1 for default
|
|
console output. We should switch to that console if it was given in
|
|
the kernel_args parameters.
|
|
|
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
|
---
|
|
arch/mips/bcm47xx/setup.c | 16 ++++++++++++++++
|
|
1 files changed, 16 insertions(+), 0 deletions(-)
|
|
|
|
--- a/arch/mips/bcm47xx/setup.c
|
|
+++ b/arch/mips/bcm47xx/setup.c
|
|
@@ -169,12 +169,28 @@ static int bcm47xx_get_invariants(struct
|
|
void __init plat_mem_setup(void)
|
|
{
|
|
int err;
|
|
+ char buf[100];
|
|
+ struct ssb_mipscore *mcore;
|
|
|
|
err = ssb_bus_ssbbus_register(&ssb_bcm47xx, SSB_ENUM_BASE,
|
|
bcm47xx_get_invariants);
|
|
if (err)
|
|
panic("Failed to initialize SSB bus (err %d)\n", err);
|
|
|
|
+ mcore = &ssb_bcm47xx.mipscore;
|
|
+ if (nvram_getenv("kernel_args", buf, sizeof(buf)) >= 0) {
|
|
+ if (strstr(buf, "console=ttyS1")) {
|
|
+ struct ssb_serial_port port;
|
|
+
|
|
+ printk(KERN_DEBUG "Swapping serial ports!\n");
|
|
+ /* swap serial ports */
|
|
+ memcpy(&port, &mcore->serial_ports[0], sizeof(port));
|
|
+ memcpy(&mcore->serial_ports[0], &mcore->serial_ports[1],
|
|
+ sizeof(port));
|
|
+ memcpy(&mcore->serial_ports[1], &port, sizeof(port));
|
|
+ }
|
|
+ }
|
|
+
|
|
_machine_restart = bcm47xx_machine_restart;
|
|
_machine_halt = bcm47xx_machine_halt;
|
|
pm_power_off = bcm47xx_machine_halt;
|
|
|