diff options
-rw-r--r-- | drivers/tty/serial/exynos_tty.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/tty/serial/exynos_tty.c b/drivers/tty/serial/exynos_tty.c index c086ad2e5..92cfcba8f 100644 --- a/drivers/tty/serial/exynos_tty.c +++ b/drivers/tty/serial/exynos_tty.c @@ -2462,17 +2462,13 @@ static void exynos_serial_rx_fifo_wait(struct exynos_uart_port *ourport) exynos_clear_bit(port, S3C64XX_UINTM_RXD, S3C64XX_UINTM); ourport->rx_enabled = 1; - wait_time = loops_per_jiffy * HZ; + wait_time = jiffies + HZ; do { port = &ourport->port; fifo_stat = rd_regl(port, S3C2410_UFSTAT); cpu_relax(); } while (exynos_serial_rx_fifocnt(ourport, fifo_stat) && - --wait_time); - if (wait_time == 0) { - dev_warn(port->dev, "Timed out flushing RX FIFO\n"); - uart_sfr_dump(ourport); - } + time_before(jiffies, wait_time)); } if (ourport->rx_enabled) @@ -2487,17 +2483,13 @@ void exynos_serial_fifo_wait(void) unsigned long wait_time; list_for_each_entry(ourport, &drvdata_list, node) { - wait_time = loops_per_jiffy / 4 * HZ; + wait_time = jiffies + HZ / 4; do { port = &ourport->port; fifo_stat = rd_regl(port, S3C2410_UFSTAT); cpu_relax(); } while (exynos_serial_tx_fifocnt(ourport, fifo_stat) && - --wait_time); - if (wait_time == 0) { - dev_warn(port->dev, "Timed out flushing FIFO\n"); - uart_sfr_dump(ourport); - } + time_before(jiffies, wait_time)); } } EXPORT_SYMBOL_GPL(exynos_serial_fifo_wait); |