• Paul Walmsley's avatar
    tty: serial: OMAP: use a 1-byte RX FIFO threshold in PIO mode · 0ba5f668
    Paul Walmsley authored
    In the (default) PIO mode, use a one-byte RX FIFO threshold.  The OMAP
    UART IP blocks do not appear to be capable of waking the system under
    an RX timeout condition.  Since the previous RX FIFO threshold was 16
    bytes, this meant that omap-serial.c did not become aware of any
    received data until all those bytes arrived or until another UART
    interrupt occurred.  This made the serial console and presumably other
    serial applications (GPS, serial Bluetooth) unusable or extremely
    slow.  A 1-byte RX FIFO threshold also allows the MPU to enter a
    low-power consumption state while waiting for the FIFO to fill.
    
    This can be verified using the serial console by comparing the
    behavior when "0123456789abcde" is pasted in from another window, with
    the behavior when "0123456789abcdef" is pasted in.  Since the former
    string is less than sixteen bytes long, the string is not echoed for
    some time, while the latter string is echoed immediately.
    
    DMA operation is unaffected by this patch.
    
    Thanks to Russell King - ARM Linux <linux@arm.linux.org.uk> for some
    additional information on the standard behavior of the RX timeout
    event, which was used to improve this commit description.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Govindraj Raja <govindraj.r@ti.com>
    Cc: Alan Cox <alan@linux.intel.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
    Tested-by: default avatarKevin Hilman <khilman@ti.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0ba5f668
omap-serial.c 44.5 KB