cpm_uart: Disable CPM udbg when re-initing CPM uart, even if not the console.
authorScott Wood <scottwood@freescale.com>
Fri, 3 Apr 2009 21:15:49 +0000 (16:15 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Mon, 6 Apr 2009 14:09:33 +0000 (09:09 -0500)
Previously, if udbg was using the CPM uart, and the normal CPM uart driver
was enabled, but the console was directed elsewhere, udbg would not be
stopped prior to initialization.  This resulted in udbg hanging forever
waiting for the CPM to process a descriptor.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
drivers/serial/cpm_uart/cpm_uart_core.c

index 4dd00bea191a162cdd7b47c49cc2d08831ff4efb..f8df0681e160da380826b5d7538c79b9ac08af3a 100644 (file)
@@ -1106,6 +1106,10 @@ static int cpm_uart_init_port(struct device_node *np,
        for (i = 0; i < NUM_GPIOS; i++)
                pinfo->gpios[i] = of_get_gpio(np, i);
 
+#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
+       udbg_putc = NULL;
+#endif
+
        return cpm_uart_request_port(&pinfo->port);
 
 out_pram:
@@ -1255,10 +1259,6 @@ static int __init cpm_uart_console_setup(struct console *co, char *options)
                        baud = 9600;
        }
 
-#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
-       udbg_putc = NULL;
-#endif
-
        if (IS_SMC(pinfo)) {
                out_be16(&pinfo->smcup->smc_brkcr, 0);
                cpm_line_cr_cmd(pinfo, CPM_CR_STOP_TX);