Skip to content

Commit

Permalink
[SERIAL] Fix console initialisation ordering
Browse files Browse the repository at this point in the history
Ensure pm callback is called upon initialisation to place port in
correct power saving state.  Ensure console is initialised prior
to deciding whether to power down the port.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Russell King authored and Russell King committed Oct 15, 2007
1 parent a06748a commit 97d9722
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions drivers/serial/serial_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2126,6 +2126,14 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state,
port->ops->set_mctrl(port, 0);
spin_unlock_irqrestore(&port->lock, flags);

/*
* If this driver supports console, and it hasn't been
* successfully registered yet, try to re-register it.
* It may be that the port was not available.
*/
if (port->cons && !(port->cons->flags & CON_ENABLED))
register_console(port->cons);

/*
* Power down all ports by default, except the
* console if we have one.
Expand Down Expand Up @@ -2286,6 +2294,7 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *port)
}

state->port = port;
state->pm_state = -1;

port->cons = drv->cons;
port->info = state->info;
Expand All @@ -2307,15 +2316,6 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *port)
*/
tty_register_device(drv->tty_driver, port->line, port->dev);

/*
* If this driver supports console, and it hasn't been
* successfully registered yet, try to re-register it.
* It may be that the port was not available.
*/
if (port->type != PORT_UNKNOWN &&
port->cons && !(port->cons->flags & CON_ENABLED))
register_console(port->cons);

/*
* Ensure UPF_DEAD is not set.
*/
Expand Down

0 comments on commit 97d9722

Please sign in to comment.