serial: sh-sci: Fix module clock refcount for serial console.
Paul Mundt [Thu, 26 Apr 2007 02:45:32 +0000 (11:45 +0900)]
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

drivers/serial/sh-sci.c

index e5cf57f..1f89496 100644 (file)
@@ -78,8 +78,10 @@ struct sci_port {
        struct timer_list       break_timer;
        int                     break_flag;
 
+#if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64)
        /* Port clock */
        struct clk              *clk;
+#endif
 };
 
 #ifdef CONFIG_SH_KGDB
@@ -958,7 +960,9 @@ static int sci_startup(struct uart_port *port)
        if (s->enable)
                s->enable(port);
 
+#if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64)
        s->clk = clk_get(NULL, "module_clk");
+#endif
 
        sci_request_irq(s);
        sci_start_tx(port);
@@ -978,8 +982,10 @@ static void sci_shutdown(struct uart_port *port)
        if (s->disable)
                s->disable(port);
 
+#if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64)
        clk_put(s->clk);
        s->clk = NULL;
+#endif
 }
 
 static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
@@ -1231,6 +1237,11 @@ static int __init serial_console_setup(struct console *co, char *options)
 
        port->type = serial_console_port->type;
 
+#if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64)
+       if (!serial_console_port->clk)
+               serial_console_port->clk = clk_get(NULL, "module_clk");
+#endif
+
        if (port->flags & UPF_IOREMAP)
                sci_config_port(port, 0);