lkml.org 
[lkml]   [2012]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 08/13] serial: omap: move THRE check to transmit_chars()
    Date
    since all other IRQ types now do all necessary
    checks inside their handlers, transmit_chars()
    was the only one left expecting serial_omap_irq()
    to check THRE for it. We can move THRE check to
    transmit_chars() in order to make serial_omap_irq()
    more uniform.

    Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    ---
    drivers/tty/serial/omap-serial.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
    index fe9852b..bb63dc9 100644
    --- a/drivers/tty/serial/omap-serial.c
    +++ b/drivers/tty/serial/omap-serial.c
    @@ -195,11 +195,14 @@ static void serial_omap_stop_rx(struct uart_port *port)
    pm_runtime_put_autosuspend(up->dev);
    }

    -static void transmit_chars(struct uart_omap_port *up)
    +static void transmit_chars(struct uart_omap_port *up, unsigned int lsr)
    {
    struct circ_buf *xmit = &up->port.state->xmit;
    int count;

    + if (!(lsr & UART_LSR_THRE))
    + return;
    +
    if (up->port.x_char) {
    serial_out(up, UART_TX, up->port.x_char);
    up->port.icount.tx++;
    @@ -370,8 +373,7 @@ static inline irqreturn_t serial_omap_irq(int irq, void *dev_id)
    check_modem_status(up);
    break;
    case UART_IIR_THRI:
    - if (lsr & UART_LSR_THRE)
    - transmit_chars(up);
    + transmit_chars(up, lsr);
    break;
    case UART_IIR_RX_TIMEOUT:
    /* FALLTHROUGH */
    --
    1.7.12.rc3


    \
     
     \ /
      Last update: 2012-08-21 16:01    [W:0.024 / U:30.688 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site