]> git.baikalelectronics.ru Git - kernel.git/commitdiff
Input: xpad - refactor using BIT() macro
authorPavel Rojtberg <rojtberg@gmail.com>
Wed, 28 Sep 2022 01:01:16 +0000 (18:01 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 28 Sep 2022 01:03:44 +0000 (18:03 -0700)
reduces the amount of magic numbers and makes the code more readable

Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
Link: https://lore.kernel.org/r/20220913213133.584979-2-rojtberg@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/joystick/xpad.c

index fceb0d342945b21afc73308482a2b8510014669f..2d9a92551499968663118bcc370afa65d4a01432 100644 (file)
@@ -61,6 +61,7 @@
  * Later changes can be tracked in SCM.
  */
 
+#include <linux/bits.h>
 #include <linux/kernel.h>
 #include <linux/input.h>
 #include <linux/rcupdate.h>
@@ -709,10 +710,10 @@ static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *d
        /* digital pad */
        if (xpad->mapping & MAP_DPAD_TO_BUTTONS) {
                /* dpad as buttons (left, right, up, down) */
-               input_report_key(dev, BTN_TRIGGER_HAPPY1, data[2] & 0x04);
-               input_report_key(dev, BTN_TRIGGER_HAPPY2, data[2] & 0x08);
-               input_report_key(dev, BTN_TRIGGER_HAPPY3, data[2] & 0x01);
-               input_report_key(dev, BTN_TRIGGER_HAPPY4, data[2] & 0x02);
+               input_report_key(dev, BTN_TRIGGER_HAPPY1, data[2] & BIT(2));
+               input_report_key(dev, BTN_TRIGGER_HAPPY2, data[2] & BIT(3));
+               input_report_key(dev, BTN_TRIGGER_HAPPY3, data[2] & BIT(0));
+               input_report_key(dev, BTN_TRIGGER_HAPPY4, data[2] & BIT(1));
        } else {
                input_report_abs(dev, ABS_HAT0X,
                                 !!(data[2] & 0x08) - !!(data[2] & 0x04));
@@ -721,10 +722,10 @@ static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *d
        }
 
        /* start/back buttons and stick press left/right */
-       input_report_key(dev, BTN_START,  data[2] & 0x10);
-       input_report_key(dev, BTN_SELECT, data[2] & 0x20);
-       input_report_key(dev, BTN_THUMBL, data[2] & 0x40);
-       input_report_key(dev, BTN_THUMBR, data[2] & 0x80);
+       input_report_key(dev, BTN_START,  data[2] & BIT(4));
+       input_report_key(dev, BTN_SELECT, data[2] & BIT(5));
+       input_report_key(dev, BTN_THUMBL, data[2] & BIT(6));
+       input_report_key(dev, BTN_THUMBR, data[2] & BIT(7));
 
        /* "analog" buttons A, B, X, Y */
        input_report_key(dev, BTN_A, data[4]);
@@ -759,10 +760,10 @@ static void xpad360_process_packet(struct usb_xpad *xpad, struct input_dev *dev,
        /* digital pad */
        if (xpad->mapping & MAP_DPAD_TO_BUTTONS) {
                /* dpad as buttons (left, right, up, down) */
-               input_report_key(dev, BTN_TRIGGER_HAPPY1, data[2] & 0x04);
-               input_report_key(dev, BTN_TRIGGER_HAPPY2, data[2] & 0x08);
-               input_report_key(dev, BTN_TRIGGER_HAPPY3, data[2] & 0x01);
-               input_report_key(dev, BTN_TRIGGER_HAPPY4, data[2] & 0x02);
+               input_report_key(dev, BTN_TRIGGER_HAPPY1, data[2] & BIT(2));
+               input_report_key(dev, BTN_TRIGGER_HAPPY2, data[2] & BIT(3));
+               input_report_key(dev, BTN_TRIGGER_HAPPY3, data[2] & BIT(0));
+               input_report_key(dev, BTN_TRIGGER_HAPPY4, data[2] & BIT(1));
        }
 
        /*
@@ -780,21 +781,21 @@ static void xpad360_process_packet(struct usb_xpad *xpad, struct input_dev *dev,
        }
 
        /* start/back buttons */
-       input_report_key(dev, BTN_START,  data[2] & 0x10);
-       input_report_key(dev, BTN_SELECT, data[2] & 0x20);
+       input_report_key(dev, BTN_START,  data[2] & BIT(4));
+       input_report_key(dev, BTN_SELECT, data[2] & BIT(5));
 
        /* stick press left/right */
-       input_report_key(dev, BTN_THUMBL, data[2] & 0x40);
-       input_report_key(dev, BTN_THUMBR, data[2] & 0x80);
+       input_report_key(dev, BTN_THUMBL, data[2] & BIT(6));
+       input_report_key(dev, BTN_THUMBR, data[2] & BIT(7));
 
        /* buttons A,B,X,Y,TL,TR and MODE */
-       input_report_key(dev, BTN_A,    data[3] & 0x10);
-       input_report_key(dev, BTN_B,    data[3] & 0x20);
-       input_report_key(dev, BTN_X,    data[3] & 0x40);
-       input_report_key(dev, BTN_Y,    data[3] & 0x80);
-       input_report_key(dev, BTN_TL,   data[3] & 0x01);
-       input_report_key(dev, BTN_TR,   data[3] & 0x02);
-       input_report_key(dev, BTN_MODE, data[3] & 0x04);
+       input_report_key(dev, BTN_A,    data[3] & BIT(4));
+       input_report_key(dev, BTN_B,    data[3] & BIT(5));
+       input_report_key(dev, BTN_X,    data[3] & BIT(6));
+       input_report_key(dev, BTN_Y,    data[3] & BIT(7));
+       input_report_key(dev, BTN_TL,   data[3] & BIT(0));
+       input_report_key(dev, BTN_TR,   data[3] & BIT(1));
+       input_report_key(dev, BTN_MODE, data[3] & BIT(2));
 
        if (!(xpad->mapping & MAP_STICKS_TO_NULL)) {
                /* left stick */
@@ -832,7 +833,7 @@ static void xpad360_process_packet(struct usb_xpad *xpad, struct input_dev *dev,
                }
 
                /* mode button down/up */
-               if (data[3] & 0x04)
+               if (data[3] & BIT(2))
                        xpad->mode_btn_down_ts = ktime_get_seconds();
                else
                        xpad->mode_btn_down_ts = 0;
@@ -928,7 +929,7 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
                if (data[1] == 0x30)
                        xpadone_ack_mode_report(xpad, data[2]);
 
-               input_report_key(dev, BTN_MODE, data[4] & 0x01);
+               input_report_key(dev, BTN_MODE, data[4] & BIT(0));
 
                do_sync = true;
        } else if (data[0] == 0X0C) {
@@ -942,33 +943,33 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
                                data[18] = 0;
 
                        /* Elite Series 2 split packet paddle bits */
-                       input_report_key(dev, BTN_TRIGGER_HAPPY5, data[18] & 0x01);
-                       input_report_key(dev, BTN_TRIGGER_HAPPY6, data[18] & 0x02);
-                       input_report_key(dev, BTN_TRIGGER_HAPPY7, data[18] & 0x04);
-                       input_report_key(dev, BTN_TRIGGER_HAPPY8, data[18] & 0x08);
+                       input_report_key(dev, BTN_TRIGGER_HAPPY5, data[18] & BIT(0));
+                       input_report_key(dev, BTN_TRIGGER_HAPPY6, data[18] & BIT(1));
+                       input_report_key(dev, BTN_TRIGGER_HAPPY7, data[18] & BIT(2));
+                       input_report_key(dev, BTN_TRIGGER_HAPPY8, data[18] & BIT(3));
 
                        do_sync = true;
                }
        } else if (data[0] == 0X20) { /* The main valid packet type for inputs */
                /* menu/view buttons */
-               input_report_key(dev, BTN_START,  data[4] & 0x04);
-               input_report_key(dev, BTN_SELECT, data[4] & 0x08);
+               input_report_key(dev, BTN_START,  data[4] & BIT(2));
+               input_report_key(dev, BTN_SELECT, data[4] & BIT(3));
                if (xpad->mapping & MAP_SELECT_BUTTON)
-                       input_report_key(dev, KEY_RECORD, data[22] & 0x01);
+                       input_report_key(dev, KEY_RECORD, data[22] & BIT(0));
 
                /* buttons A,B,X,Y */
-               input_report_key(dev, BTN_A,    data[4] & 0x10);
-               input_report_key(dev, BTN_B,    data[4] & 0x20);
-               input_report_key(dev, BTN_X,    data[4] & 0x40);
-               input_report_key(dev, BTN_Y,    data[4] & 0x80);
+               input_report_key(dev, BTN_A,    data[4] & BIT(4));
+               input_report_key(dev, BTN_B,    data[4] & BIT(5));
+               input_report_key(dev, BTN_X,    data[4] & BIT(6));
+               input_report_key(dev, BTN_Y,    data[4] & BIT(7));
 
                /* digital pad */
                if (xpad->mapping & MAP_DPAD_TO_BUTTONS) {
                        /* dpad as buttons (left, right, up, down) */
-                       input_report_key(dev, BTN_TRIGGER_HAPPY1, data[5] & 0x04);
-                       input_report_key(dev, BTN_TRIGGER_HAPPY2, data[5] & 0x08);
-                       input_report_key(dev, BTN_TRIGGER_HAPPY3, data[5] & 0x01);
-                       input_report_key(dev, BTN_TRIGGER_HAPPY4, data[5] & 0x02);
+                       input_report_key(dev, BTN_TRIGGER_HAPPY1, data[5] & BIT(2));
+                       input_report_key(dev, BTN_TRIGGER_HAPPY2, data[5] & BIT(3));
+                       input_report_key(dev, BTN_TRIGGER_HAPPY3, data[5] & BIT(0));
+                       input_report_key(dev, BTN_TRIGGER_HAPPY4, data[5] & BIT(1));
                } else {
                        input_report_abs(dev, ABS_HAT0X,
                                        !!(data[5] & 0x08) - !!(data[5] & 0x04));
@@ -977,12 +978,12 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
                }
 
                /* TL/TR */
-               input_report_key(dev, BTN_TL,   data[5] & 0x10);
-               input_report_key(dev, BTN_TR,   data[5] & 0x20);
+               input_report_key(dev, BTN_TL,   data[5] & BIT(4));
+               input_report_key(dev, BTN_TR,   data[5] & BIT(5));
 
                /* stick press left/right */
-               input_report_key(dev, BTN_THUMBL, data[5] & 0x40);
-               input_report_key(dev, BTN_THUMBR, data[5] & 0x80);
+               input_report_key(dev, BTN_THUMBL, data[5] & BIT(6));
+               input_report_key(dev, BTN_THUMBR, data[5] & BIT(7));
 
                if (!(xpad->mapping & MAP_STICKS_TO_NULL)) {
                        /* left stick */
@@ -1023,10 +1024,10 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
                                        data[32] = 0;
 
                                /* OG Elite Series Controller paddle bits */
-                               input_report_key(dev, BTN_TRIGGER_HAPPY5, data[32] & 0x02);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY6, data[32] & 0x08);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY7, data[32] & 0x01);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY8, data[32] & 0x04);
+                               input_report_key(dev, BTN_TRIGGER_HAPPY5, data[32] & BIT(1));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY6, data[32] & BIT(3));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY7, data[32] & BIT(0));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY8, data[32] & BIT(2));
                        } else if (xpad->packet_type == PKT_XBE2_FW_OLD) {
                                /* Mute paddles if controller has a custom mapping applied.
                                 * Checked by comparing the current mapping
@@ -1036,10 +1037,10 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
                                        data[18] = 0;
 
                                /* Elite Series 2 4.x firmware paddle bits */
-                               input_report_key(dev, BTN_TRIGGER_HAPPY5, data[18] & 0x01);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY6, data[18] & 0x02);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY7, data[18] & 0x04);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY8, data[18] & 0x08);
+                               input_report_key(dev, BTN_TRIGGER_HAPPY5, data[18] & BIT(0));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY6, data[18] & BIT(1));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY7, data[18] & BIT(2));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY8, data[18] & BIT(3));
                        } else if (xpad->packet_type == PKT_XBE2_FW_5_EARLY) {
                                /* Mute paddles if controller has a custom mapping applied.
                                 * Checked by comparing the current mapping
@@ -1051,10 +1052,10 @@ static void xpadone_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char
                                /* Elite Series 2 5.x firmware paddle bits
                                 * (before the packet was split)
                                 */
-                               input_report_key(dev, BTN_TRIGGER_HAPPY5, data[22] & 0x01);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY6, data[22] & 0x02);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY7, data[22] & 0x04);
-                               input_report_key(dev, BTN_TRIGGER_HAPPY8, data[22] & 0x08);
+                               input_report_key(dev, BTN_TRIGGER_HAPPY5, data[22] & BIT(0));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY6, data[22] & BIT(1));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY7, data[22] & BIT(2));
+                               input_report_key(dev, BTN_TRIGGER_HAPPY8, data[22] & BIT(3));
                        }
                }