[PATCH] powerpc: serial port discovery: cope with broken firmware
authorDavid Woodhouse <dwmw2@infradead.org>
Thu, 24 Nov 2005 17:08:56 +0000 (17:08 +0000)
committerPaul Mackerras <paulus@samba.org>
Mon, 9 Jan 2006 03:50:42 +0000 (14:50 +1100)
On Tue, 2005-11-22 at 15:49 +1100, Benjamin Herrenschmidt wrote:
> This moves the discovery of legacy serial ports to a separate file,
> makes it common to ppc32 and ppc64, and reworks it to use the new OF
> address translators to get to the ports early. This new version can also
> detect some PCI serial cards using legacy chips and will probably match
> those discovered port with the default console choice.

This makes it deal with the fact that the Pegasos firmware reports that
its clock frequency is zero...

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/legacy_serial.c

index 28ad50e424a9e07311b3cf79f125b2ba1a4720fd..7a685cae81ed627a067dfa57d36b3f8c0af04382 100644 (file)
@@ -43,7 +43,10 @@ static int __init add_legacy_port(struct device_node *np, int want_index,
 
        /* get clock freq. if present */
        clk = (u32 *)get_property(np, "clock-frequency", NULL);
-       clock = clk ? *clk : BASE_BAUD * 16;
+       if (clk && *clk)
+               clock = *clk;
+       else
+               clock = BASE_BAUD * 16;
 
        /* get default speed if present */
        spd = (u32 *)get_property(np, "current-speed", NULL);