serial: fix serial_txx9 console initialization
[sfrench/cifs-2.6.git] / drivers / serial / serial_txx9.c
index 6846a6c38b6d5535784bafd4884a51bbbc2e5be4..7ad21925869a0550465b56bac0e5a7c771f2fb31 100644 (file)
@@ -657,7 +657,15 @@ static void
 serial_txx9_pm(struct uart_port *port, unsigned int state,
              unsigned int oldstate)
 {
-       if (state == 0)
+       /*
+        * If oldstate was -1 this is called from
+        * uart_configure_port().  In this case do not initialize the
+        * port now, because the port was already initialized (for
+        * non-console port) or should not be initialized here (for
+        * console port).  If we initialized the port here we lose
+        * serial console settings.
+        */
+       if (state == 0 && oldstate != -1)
                serial_txx9_initialize(port);
 }