This one allows console autodetection for powermacs.



---

 25-akpm/arch/ppc64/kernel/setup.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff -puN arch/ppc64/kernel/setup.c~ppc64-console-autodetection-for-pmac arch/ppc64/kernel/setup.c
--- 25/arch/ppc64/kernel/setup.c~ppc64-console-autodetection-for-pmac	Fri May 21 16:07:42 2004
+++ 25-akpm/arch/ppc64/kernel/setup.c	Fri May 21 16:07:42 2004
@@ -476,6 +476,7 @@ static int __init set_preferred_console(
 {
 	struct device_node *prom_stdout;
 	char *name;
+	int offset;
 
 	/* The user has requested a console so this is already set up. */
 	if (strstr(saved_command_line, "console="))
@@ -493,7 +494,6 @@ static int __init set_preferred_console(
 		int i;
 		u32 *reg = (u32 *)get_property(prom_stdout, "reg", &i);
 		if (i > 8) {
-			int offset;
 			switch (reg[1]) {
 				case 0x3f8:
 					offset = 0;
@@ -511,15 +511,19 @@ static int __init set_preferred_console(
 					/* We dont recognise the serial port */
 					return -ENODEV;
 			}
-
-			return add_preferred_console("ttyS", offset, NULL);
 		}
-	} else if (strcmp(name, "vty") == 0) {
+	} else if (strcmp(name, "vty") == 0)
 		/* pSeries LPAR virtual console */
 		return add_preferred_console("hvc", 0, NULL);
-	}
+	else if (strcmp(name, "ch-a") == 0)
+		offset = 0;
+	else if (strcmp(name, "ch-b") == 0)
+		offset = 1;
+	else
+		return -ENODEV;
+
+	return add_preferred_console("ttyS", offset, NULL);
 
-	return -ENODEV;
 }
 console_initcall(set_preferred_console);
 

_