lkml.org 
[lkml]   [2008]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/12] [Blackfin] serial driver: Fix bug serial driver in DMA mode spams history to console on shell restart
    Date
    From: Sonic Zhang <sonic.zhang@analog.com>

    http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=2920
    Fix by increasing buffer tail immediately before starting tx dma.

    Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
    Signed-off-by: Bryan Wu <bryan.wu@analog.com>
    ---
    drivers/serial/bfin_5xx.c | 7 ++++---
    1 files changed, 4 insertions(+), 3 deletions(-)

    diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
    index 838f491..0074146 100644
    --- a/drivers/serial/bfin_5xx.c
    +++ b/drivers/serial/bfin_5xx.c
    @@ -411,6 +411,10 @@ static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart)
    set_dma_x_count(uart->tx_dma_channel, uart->tx_count);
    set_dma_x_modify(uart->tx_dma_channel, 1);
    enable_dma(uart->tx_dma_channel);
    +
    + xmit->tail = (xmit->tail + uart->tx_count) & (UART_XMIT_SIZE - 1);
    + uart->port.icount.tx += uart->tx_count;
    +
    #ifdef CONFIG_BF54x
    UART_SET_IER(uart, ETBEI);
    #else
    @@ -502,9 +506,6 @@ static irqreturn_t bfin_serial_dma_tx_int(int irq, void *dev_id)
    ier &= ~ETBEI;
    UART_PUT_IER(uart, ier);
    #endif
    - xmit->tail = (xmit->tail+uart->tx_count) &(UART_XMIT_SIZE -1);
    - uart->port.icount.tx+=uart->tx_count;
    -
    if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
    uart_write_wakeup(&uart->port);

    --
    1.5.3.4

    \
     
     \ /
      Last update: 2008-01-30 10:35    [W:0.028 / U:0.272 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site