From: Jakub Kicinski Date: Fri, 29 May 2015 19:20:28 +0000 (+0200) Subject: sc16is7xx: use LSR_TEMT_BIT in .tx_empty() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=4ae82e5d23961515796d76850499db3866c5e73b;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git sc16is7xx: use LSR_TEMT_BIT in .tx_empty() LSR_TEMT_BIT (LSR bit 6) provides us exactly the information we need to determine if transmission is finished - FIFO level and shift register empty. We can save ourselves reading FIFO level explicitly if we use this bit. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 0509be025399..ea61a297b463 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -683,12 +683,11 @@ static void sc16is7xx_start_tx(struct uart_port *port) static unsigned int sc16is7xx_tx_empty(struct uart_port *port) { - unsigned int lvl, lsr; + unsigned int lsr; - lvl = sc16is7xx_port_read(port, SC16IS7XX_TXLVL_REG); lsr = sc16is7xx_port_read(port, SC16IS7XX_LSR_REG); - return ((lsr & SC16IS7XX_LSR_THRE_BIT) && !lvl) ? TIOCSER_TEMT : 0; + return (lsr & SC16IS7XX_LSR_TEMT_BIT) ? TIOCSER_TEMT : 0; } static unsigned int sc16is7xx_get_mctrl(struct uart_port *port)