spi: spi-sun6i: sun6i_spi_get_tx_fifo_count: Convert manual shift+mask to FIELD_GET()
authorMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 6 Jul 2020 14:34:38 +0000 (16:34 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 7 Jul 2020 09:41:36 +0000 (10:41 +0100)
This patch converts the manual shift+mask in sun6i_spi_get_tx_fifo_count() to
make use of FIELD_GET()

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Link: https://lore.kernel.org/r/20200706143443.9855-6-mkl@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-sun6i.c

index 8824927..4036576 100644 (file)
@@ -7,6 +7,7 @@
  * Maxime Ripard <maxime.ripard@free-electrons.com>
  */
 
+#include <linux/bitfield.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/device.h>
@@ -60,8 +61,7 @@
 #define SUN6I_FIFO_STA_REG             0x1c
 #define SUN6I_FIFO_STA_RF_CNT_MASK             0x7f
 #define SUN6I_FIFO_STA_RF_CNT_BITS             0
-#define SUN6I_FIFO_STA_TF_CNT_MASK             0x7f
-#define SUN6I_FIFO_STA_TF_CNT_BITS             16
+#define SUN6I_FIFO_STA_TF_CNT_MASK             GENMASK(23, 16)
 
 #define SUN6I_CLK_CTL_REG              0x24
 #define SUN6I_CLK_CTL_CDR2_MASK                        0xff
@@ -110,9 +110,7 @@ static inline u32 sun6i_spi_get_tx_fifo_count(struct sun6i_spi *sspi)
 {
        u32 reg = sun6i_spi_read(sspi, SUN6I_FIFO_STA_REG);
 
-       reg >>= SUN6I_FIFO_STA_TF_CNT_BITS;
-
-       return reg & SUN6I_FIFO_STA_TF_CNT_MASK;
+       return FIELD_GET(SUN6I_FIFO_STA_TF_CNT_MASK, reg);
 }
 
 static inline void sun6i_spi_enable_interrupt(struct sun6i_spi *sspi, u32 mask)