ops->startup(port); uart_change_speed(state, NULL); spin_lock_irq(&port->lock); ops->set_mctrl(port, port->mctrl); ops->start_tx(port); spin_unlock_irq(&port->lock); 
ret = ops->startup(port); if (ret == 0) { uart_change_speed(state, NULL); spin_lock_irq(&port->lock); ops->set_mctrl(port, port->mctrl); ops->start_tx(port); spin_unlock_irq(&port->lock); } else { /* * Failed to resume - maybe hardware went away? * Clear the "initialized" flag so we won't try * to call the low level drivers shutdown method. */ state->info->flags &= ~UIF_INITIALIZED; uart_shutdown(state); } 
int uart_resume_port(struct uart_driver *drv, struct uart_port *port){	struct uart_state *state = drv->state + port->line;	down(&state->sem);	uart_change_pm(state, 0);	/*	 * Re-enable the console device after suspending.	 */	if (uart_console(port)) {		struct termios termios;		/*		 * First try to use the console cflag setting.		 */		memset(&termios, 0, sizeof(struct termios));		termios.c_cflag = port->cons->cflag;		/*		 * If that's unset, use the tty termios setting.		 */		if (state->info && state->info->tty && termios.c_cflag == 0)			termios = *state->info->tty->termios;		port->ops->set_termios(port, &termios, NULL);		console_start(port->cons);	}	if (state->info && state->info->flags & UIF_INITIALIZED) {		struct uart_ops *ops = port->ops;		ops->set_mctrl(port, 0);		ops->startup(port);		uart_change_speed(state, NULL);		spin_lock_irq(&port->lock);		ops->set_mctrl(port, port->mctrl);		ops->start_tx(port);		spin_unlock_irq(&port->lock);	}	up(&state->sem);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ee31b337852ca8a65840702544ff5c64d37740f5/serial_core.c/clean/drivers/serial/serial_core.c