• Sebastian Andrzej Siewior's avatar
    serial: 8250_omap: provide complete custom startup & shutdown callbacks · 9809889c
    Sebastian Andrzej Siewior authored
    The currently in-use port->startup and port->shutdown are "okay". The
    startup part for instance does the tiny omap extra part and invokes
    serial8250_do_startup() for the remaining pieces. The workflow in
    serial8250_do_startup() is okay except for the part where UART_RX is
    read without a check if there is something to read. I tried to
    workaround it in commit 0aa525d1 ("tty: serial: 8250_core: read only
    RX if there is something in the FIFO") but then reverted it later in
    commit ca8bb4ae ("serial: 8250: Revert "tty: serial: 8250_core: read
    only RX if there is something in the FIFO"").
    
    This is the second attempt to get it to work on older OMAPs without
    breaking other chips this time
    Peter Hurley suggested to pull in the few needed lines from
    serial8250_do_startup() and drop everything else that is not required
    including making it simpler like using just request_irq() instead the
    chain handler like it is doing now.
    So lets try that.
    
    Fixes: ca8bb4ae ("serial: 8250: Revert "tty: serial: 8250_core:
           read only RX if there is something in the FIFO"")
    Tested-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    9809889c
8250_omap.c 35.6 KB