On 07/17/2014 04:54 PM, Felipe Balbi wrote: > Hi, > > On Wed, Jul 16, 2014 at 04:45:03PM +0200, Sebastian Andrzej Siewior wrote: >> +static int omap_8250_startup(struct uart_port *port) >> +{ >> + struct uart_8250_port *up = >> + container_of(port, struct uart_8250_port, port); >> + struct omap8250_priv *priv = port->private_data; >> + >> + int ret; >> + >> + if (priv->wakeirq) { >> + ret = request_irq(priv->wakeirq, omap_wake_irq, >> + port->irqflags, "wakeup irq", port); >> + if (ret) >> + return ret; >> + disable_irq(priv->wakeirq); >> + } >> + >> + ret = serial8250_do_startup(port); >> + if (ret) >> + goto err; >> + >> + pm_runtime_get_sync(port->dev); > > should this pm_runtime_get_sync() be placed above > serial8250_do_startup() call ? I don't think it matters since serial8250_do_startup() has its own pm_runtime_get_sync(). ->startup(), ->shutdown() are called via omap callbacks so we could spare in the 8250-core if we do it in the omap code before invoking the function. The same goes for serial8250_set_termios() which is not used by omap but has those runtime-pm stuff, too. It would be wrong if someone would use the serial8250_do_startup() without his own runtime-pm get but it is omap only which does this things. So it is not used by anyone else (right now) and if you want to keep it to a minimum I could remove them from those places. Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html