serial: sirf: use uart_port's fifosize for fifo related operation
[deliverable/linux.git] / drivers / tty / serial / sirfsoc_uart.c
index e033b93f5e1b09dca8ff7b9eccea4ae4fcd48551..7214abe0d91344fe20049948ad478dd36c9c7117 100644 (file)
@@ -73,8 +73,7 @@ static inline unsigned int sirfsoc_uart_tx_empty(struct uart_port *port)
        struct sirfsoc_register *ureg = &sirfport->uart_reg->uart_reg;
        struct sirfsoc_fifo_status *ufifo_st = &sirfport->uart_reg->fifo_status;
        reg = rd_regl(port, ureg->sirfsoc_tx_fifo_status);
-
-       return (reg & ufifo_st->ff_empty(port->line)) ? TIOCSER_TEMT : 0;
+       return (reg & ufifo_st->ff_empty(port)) ? TIOCSER_TEMT : 0;
 }
 
 static unsigned int sirfsoc_uart_get_mctrl(struct uart_port *port)
@@ -247,8 +246,7 @@ static void sirfsoc_uart_start_tx(struct uart_port *port)
        if (sirfport->tx_dma_chan)
                sirfsoc_uart_tx_with_dma(sirfport);
        else {
-               sirfsoc_uart_pio_tx_chars(sirfport,
-                       SIRFSOC_UART_IO_TX_REASONABLE_CNT);
+               sirfsoc_uart_pio_tx_chars(sirfport, port->fifosize);
                wr_regl(port, ureg->sirfsoc_tx_fifo_op, SIRFUART_FIFO_START);
                if (!sirfport->is_atlas7)
                        wr_regl(port, ureg->sirfsoc_int_en_reg,
@@ -374,7 +372,7 @@ sirfsoc_uart_pio_rx_chars(struct uart_port *port, unsigned int max_rx_count)
        if (!tty)
                return -ENODEV;
        while (!(rd_regl(port, ureg->sirfsoc_rx_fifo_status) &
-                                       ufifo_st->ff_empty(port->line))) {
+                                       ufifo_st->ff_empty(port))) {
                ch = rd_regl(port, ureg->sirfsoc_rx_fifo_data) |
                        SIRFUART_DUMMY_READ;
                if (unlikely(uart_handle_sysrq_char(port, ch)))
@@ -401,7 +399,7 @@ sirfsoc_uart_pio_tx_chars(struct sirfsoc_uart_port *sirfport, int count)
        unsigned int num_tx = 0;
        while (!uart_circ_empty(xmit) &&
                !(rd_regl(port, ureg->sirfsoc_tx_fifo_status) &
-                                       ufifo_st->ff_full(port->line)) &&
+                                       ufifo_st->ff_full(port)) &&
                count--) {
                wr_regl(port, ureg->sirfsoc_tx_fifo_data,
                                xmit->buf[xmit->tail]);
@@ -626,8 +624,7 @@ recv_char:
                        sirfsoc_uart_handle_rx_done(sirfport);
        } else {
                if (intr_status & SIRFUART_RX_IO_INT_ST(uint_st))
-                       sirfsoc_uart_pio_rx_chars(port,
-                                       SIRFSOC_UART_IO_RX_MAX_CNT);
+                       sirfsoc_uart_pio_rx_chars(port, port->fifosize);
        }
        spin_unlock(&port->lock);
        tty_flip_buffer_push(&state->port);
@@ -641,10 +638,10 @@ recv_char:
                                return IRQ_HANDLED;
                        } else {
                                sirfsoc_uart_pio_tx_chars(sirfport,
-                                       SIRFSOC_UART_IO_TX_REASONABLE_CNT);
+                                               port->fifosize);
                                if ((uart_circ_empty(xmit)) &&
                                (rd_regl(port, ureg->sirfsoc_tx_fifo_status) &
-                               ufifo_st->ff_empty(port->line)))
+                               ufifo_st->ff_empty(port)))
                                        sirfsoc_uart_stop_tx(port);
                        }
                }
@@ -746,7 +743,7 @@ sirfsoc_usp_calc_sample_div(unsigned long set_rate,
        unsigned long ioclk_div = 0;
        unsigned long temp_delta;
 
-       for (sample_div = SIRF_MIN_SAMPLE_DIV;
+       for (sample_div = SIRF_USP_MIN_SAMPLE_DIV;
                        sample_div <= SIRF_MAX_SAMPLE_DIV; sample_div++) {
                temp_delta = ioclk_rate -
                (ioclk_rate + (set_rate * sample_div) / 2)
@@ -1012,7 +1009,6 @@ static int sirfsoc_uart_startup(struct uart_port *port)
                                                        index, port->irq);
                goto irq_err;
        }
-
        /* initial hardware settings */
        wr_regl(port, ureg->sirfsoc_tx_dma_io_ctrl,
                rd_regl(port, ureg->sirfsoc_tx_dma_io_ctrl) |
@@ -1174,8 +1170,8 @@ static void sirfsoc_uart_console_putchar(struct uart_port *port, int ch)
        struct sirfsoc_uart_port *sirfport = to_sirfport(port);
        struct sirfsoc_register *ureg = &sirfport->uart_reg->uart_reg;
        struct sirfsoc_fifo_status *ufifo_st = &sirfport->uart_reg->fifo_status;
-       while (rd_regl(port,
-               ureg->sirfsoc_tx_fifo_status) & ufifo_st->ff_full(port->line))
+       while (rd_regl(port, ureg->sirfsoc_tx_fifo_status) &
+               ufifo_st->ff_full(port))
                cpu_relax();
        wr_regl(port, ureg->sirfsoc_tx_fifo_data, ch);
 }
This page took 0.045228 seconds and 5 git commands to generate.