lkml.org 
[lkml]   [2022]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 11/14] serial: liteuart: move function definitions
    Date
    Move definitions for liteuart_[stop|start]_tx(), liteuart_stop_rx(),
    and liteuart_putchar() to a more convenient location in preparation
    for adding IRQ support. This patch contains no functional changes.

    Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    ---
    drivers/tty/serial/liteuart.c | 82 +++++++++++++++++------------------
    1 file changed, 41 insertions(+), 41 deletions(-)

    diff --git a/drivers/tty/serial/liteuart.c b/drivers/tty/serial/liteuart.c
    index ab6837f3e40d..0b9d96e5efcf 100644
    --- a/drivers/tty/serial/liteuart.c
    +++ b/drivers/tty/serial/liteuart.c
    @@ -68,6 +68,47 @@ static struct uart_driver liteuart_driver = {
    #endif
    };

    +static void liteuart_putchar(struct uart_port *port, unsigned char ch)
    +{
    + while (litex_read8(port->membase + OFF_TXFULL))
    + cpu_relax();
    +
    + litex_write8(port->membase + OFF_RXTX, ch);
    +}
    +
    +static void liteuart_stop_tx(struct uart_port *port)
    +{
    +}
    +
    +static void liteuart_start_tx(struct uart_port *port)
    +{
    + struct circ_buf *xmit = &port->state->xmit;
    + unsigned char ch;
    +
    + if (unlikely(port->x_char)) {
    + litex_write8(port->membase + OFF_RXTX, port->x_char);
    + port->icount.tx++;
    + port->x_char = 0;
    + } else if (!uart_circ_empty(xmit)) {
    + while (xmit->head != xmit->tail) {
    + ch = xmit->buf[xmit->tail];
    + uart_xmit_advance(port, 1);
    + liteuart_putchar(port, ch);
    + }
    + }
    +
    + if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
    + uart_write_wakeup(port);
    +}
    +
    +static void liteuart_stop_rx(struct uart_port *port)
    +{
    + struct liteuart_port *uart = to_liteuart_port(port);
    +
    + /* just delete timer */
    + del_timer(&uart->timer);
    +}
    +
    static void liteuart_rx_chars(struct uart_port *port)
    {
    unsigned char __iomem *membase = port->membase;
    @@ -98,14 +139,6 @@ static void liteuart_timer(struct timer_list *t)
    mod_timer(&uart->timer, jiffies + uart_poll_timeout(port));
    }

    -static void liteuart_putchar(struct uart_port *port, unsigned char ch)
    -{
    - while (litex_read8(port->membase + OFF_TXFULL))
    - cpu_relax();
    -
    - litex_write8(port->membase + OFF_RXTX, ch);
    -}
    -
    static unsigned int liteuart_tx_empty(struct uart_port *port)
    {
    /* not really tx empty, just checking if tx is not full */
    @@ -125,39 +158,6 @@ static unsigned int liteuart_get_mctrl(struct uart_port *port)
    return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR;
    }

    -static void liteuart_stop_tx(struct uart_port *port)
    -{
    -}
    -
    -static void liteuart_start_tx(struct uart_port *port)
    -{
    - struct circ_buf *xmit = &port->state->xmit;
    - unsigned char ch;
    -
    - if (unlikely(port->x_char)) {
    - litex_write8(port->membase + OFF_RXTX, port->x_char);
    - port->icount.tx++;
    - port->x_char = 0;
    - } else if (!uart_circ_empty(xmit)) {
    - while (xmit->head != xmit->tail) {
    - ch = xmit->buf[xmit->tail];
    - uart_xmit_advance(port, 1);
    - liteuart_putchar(port, ch);
    - }
    - }
    -
    - if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
    - uart_write_wakeup(port);
    -}
    -
    -static void liteuart_stop_rx(struct uart_port *port)
    -{
    - struct liteuart_port *uart = to_liteuart_port(port);
    -
    - /* just delete timer */
    - del_timer(&uart->timer);
    -}
    -
    static int liteuart_startup(struct uart_port *port)
    {
    struct liteuart_port *uart = to_liteuart_port(port);
    --
    2.38.1
    \
     
     \ /
      Last update: 2022-11-23 14:27    [W:2.118 / U:1.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site