tty: serial: use FIELD_GET() in lqasc_tx_ready()
authorJiri Slaby <jslaby@suse.cz>
Tue, 27 Sep 2022 11:18:17 +0000 (13:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Sep 2022 12:58:45 +0000 (14:58 +0200)
FIELD_GET() can do the job smarter and more readable. We don't even need
ASCFSTAT_TXFREEOFF. So switch to the former and remove the latter.

Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20220927111819.18516-2-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/lantiq.c

index ba9739a..c892f3c 100644 (file)
@@ -8,6 +8,7 @@
  * Copyright (C) 2010 Thomas Langer, <thomas.langer@lantiq.com>
  */
 
+#include <linux/bitfield.h>
 #include <linux/clk.h>
 #include <linux/console.h>
 #include <linux/device.h>
@@ -93,7 +94,6 @@
 #define ASCFSTAT_RXFFLMASK     0x003F
 #define ASCFSTAT_TXFFLMASK     0x3F00
 #define ASCFSTAT_TXFREEMASK    0x3F000000
-#define ASCFSTAT_TXFREEOFF     24
 
 static void lqasc_tx_chars(struct uart_port *port);
 static struct ltq_uart_port *lqasc_port[MAXPORTS];
@@ -143,7 +143,7 @@ static bool lqasc_tx_ready(struct uart_port *port)
 {
        u32 fstat = __raw_readl(port->membase + LTQ_ASC_FSTAT);
 
-       return (fstat & ASCFSTAT_TXFREEMASK) >> ASCFSTAT_TXFREEOFF;
+       return FIELD_GET(ASCFSTAT_TXFREEMASK, fstat);
 }
 
 static void