diff options
-rw-r--r-- | xen/drivers/char/ns16550.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index 7cbe5fd50c..ddca62fccf 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -59,6 +59,8 @@ static struct ns16550 { u8 bar_idx; } ns16550_com[2] = { { 0 } }; +static void ns16550_delayed_resume(void *data); + static char ns_read_reg(struct ns16550 *uart, int reg) { if ( uart->remapped_io_base == NULL ) @@ -256,6 +258,7 @@ static void __init ns16550_init_postirq(struct serial_port *port) serial_async_transmit(port); init_timer(&uart->timer, ns16550_poll, port, 0); + init_timer(&uart->resume_timer, ns16550_delayed_resume, port, 0); /* Calculate time to fill RX FIFO and/or empty TX FIFO for polling. */ bits = uart->data_bits + uart->stop_bits + !!uart->parity; @@ -346,7 +349,6 @@ static void ns16550_resume(struct serial_port *port) if ( ns16550_ioport_invalid(uart) ) { delayed_resume_tries = RESUME_RETRIES; - init_timer(&uart->resume_timer, ns16550_delayed_resume, port, 0); set_timer(&uart->resume_timer, NOW() + RESUME_DELAY); } else |