• Serge Semin's avatar
    tty: max310x: Split uart characters insertion loop · 9c12d739
    Serge Semin authored
    Batch read mode doesn't check any conditions or flags except the Rx
    overflow one. But it may only happen after the last character is pushed
    into the RHR register. In this case we shouldn't push all the read
    characters with overrun flag set, but only the last one caused the
    FIFO overflow. This commit splits the characters retrieval loop into
    two parts. First one is ordinary intsert-chars procedure without taking
    the overrun status into account. Second part inserts the last character
    checking whether the overrun happened and pushing a '\0' character with
    TTY_OVERRUN flag to a flip-buffer.
    
    If we left the loop the way it was the '\0' character would be inserted
    after each character retrieved at the overrun occasion.
    Signed-off-by: default avatarSerge Semin <fancer.lancer@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    9c12d739
max310x.c 42.1 KB