lkml.org 
[lkml]   [2014]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.11 126/137] sunsab: Fix detection of BREAK on sunsab serial console
    Date
    3.11.10.15 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>

    commit fe418231b195c205701c0cc550a03f6c9758fd9e upstream.

    Fix detection of BREAK on sunsab serial console: BREAK detection was only
    performed when there were also serial characters received simultaneously.
    To handle all BREAKs correctly, the check for BREAK and the corresponding
    call to uart_handle_break() must also be done if count == 0, therefore
    duplicate this code fragment and pull it out of the loop over the received
    characters.

    Patch applies to 3.16-rc6.

    Signed-off-by: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    drivers/tty/serial/sunsab.c | 9 +++++++++
    1 file changed, 9 insertions(+)

    diff --git a/drivers/tty/serial/sunsab.c b/drivers/tty/serial/sunsab.c
    index 5d6136b2a04a..edcb84980d60 100644
    --- a/drivers/tty/serial/sunsab.c
    +++ b/drivers/tty/serial/sunsab.c
    @@ -157,6 +157,15 @@ receive_chars(struct uart_sunsab_port *up,
    (up->port.line == up->port.cons->index))
    saw_console_brk = 1;

    + if (count == 0) {
    + if (unlikely(stat->sreg.isr1 & SAB82532_ISR1_BRK)) {
    + stat->sreg.isr0 &= ~(SAB82532_ISR0_PERR |
    + SAB82532_ISR0_FERR);
    + up->port.icount.brk++;
    + uart_handle_break(&up->port);
    + }
    + }
    +
    for (i = 0; i < count; i++) {
    unsigned char ch = buf[i], flag;

    --
    1.9.1


    \
     
     \ /
      Last update: 2014-08-18 12:21    [W:2.944 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site