]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Input: samsung-keypad - use BIT() and GENMASK() where appropriate
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 19 Aug 2024 04:58:05 +0000 (21:58 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 1 Jul 2025 21:31:17 +0000 (14:31 -0700)
Instead of using (1 << <shift>) construct use BIT() helper. Convert (1
<< <shift>) - 1 to GENMASK().

Link: https://lore.kernel.org/r/20240819045813.2154642-9-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/samsung-keypad.c

index dcb40ab939b915c8a479b31aa65388813c503156..17127269e3f0550bf9d099336820e357fa3cfc37 100644 (file)
@@ -7,6 +7,7 @@
  * Author: Donghwa Lee <dh09.lee@samsung.com>
  */
 
+#include <linux/bits.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/err.h>
 #define SAMSUNG_KEYIFFC                                0x10
 
 /* SAMSUNG_KEYIFCON */
-#define SAMSUNG_KEYIFCON_INT_F_EN              (1 << 0)
-#define SAMSUNG_KEYIFCON_INT_R_EN              (1 << 1)
-#define SAMSUNG_KEYIFCON_DF_EN                 (1 << 2)
-#define SAMSUNG_KEYIFCON_FC_EN                 (1 << 3)
-#define SAMSUNG_KEYIFCON_WAKEUPEN              (1 << 4)
+#define SAMSUNG_KEYIFCON_INT_F_EN              BIT(0)
+#define SAMSUNG_KEYIFCON_INT_R_EN              BIT(1)
+#define SAMSUNG_KEYIFCON_DF_EN                 BIT(2)
+#define SAMSUNG_KEYIFCON_FC_EN                 BIT(3)
+#define SAMSUNG_KEYIFCON_WAKEUPEN              BIT(4)
 
 /* SAMSUNG_KEYIFSTSCLR */
 #define SAMSUNG_KEYIFSTSCLR_P_INT_MASK         (0xff << 0)
@@ -81,14 +82,14 @@ static void samsung_keypad_scan(struct samsung_keypad *keypad,
        unsigned int val;
 
        for (col = 0; col < keypad->cols; col++) {
-               val = SAMSUNG_KEYIFCOL_MASK & ~(1 << col);
+               val = SAMSUNG_KEYIFCOL_MASK & ~BIT(col);
                val <<= keypad->chip->column_shift;
 
                writel(val, keypad->base + SAMSUNG_KEYIFCOL);
                mdelay(1);
 
                val = readl(keypad->base + SAMSUNG_KEYIFROW);
-               row_state[col] = ~val & ((1 << keypad->rows) - 1);
+               row_state[col] = ~val & GENMASK(keypad->rows - 1, 0);
        }
 
        /* KEYIFCOL reg clear */
@@ -112,10 +113,10 @@ static bool samsung_keypad_report(struct samsung_keypad *keypad,
                        continue;
 
                for (row = 0; row < keypad->rows; row++) {
-                       if (!(changed & (1 << row)))
+                       if (!(changed & BIT(row)))
                                continue;
 
-                       pressed = row_state[col] & (1 << row);
+                       pressed = row_state[col] & BIT(row);
 
                        dev_dbg(&keypad->input_dev->dev,
                                "key %s, row: %d, col: %d\n",