Input: cypress_ps2 - clean up setting reporting rate
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 28 Jun 2024 22:47:23 +0000 (15:47 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 3 Jul 2024 20:48:53 +0000 (13:48 -0700)
Casting an integer field containing desired rate to a pointer to bytes
works on little endian architectures where the driver is used, but not
a good practice. Use a temporary of proper type instead.

Link: https://lore.kernel.org/r/20240628224728.2180126-1-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/cypress_ps2.c

index c693130bef4144c3b0f707ca93495960adab6b25..32b55b2b9b763abfc3c35f7453f5809d6271e422 100644 (file)
@@ -612,6 +612,7 @@ static psmouse_ret_t cypress_protocol_handler(struct psmouse *psmouse)
 static void cypress_set_rate(struct psmouse *psmouse, unsigned int rate)
 {
        struct cytp_data *cytp = psmouse->private;
+       u8 rate_param;
 
        if (rate >= 80) {
                psmouse->rate = 80;
@@ -621,8 +622,8 @@ static void cypress_set_rate(struct psmouse *psmouse, unsigned int rate)
                cytp->mode &= ~CYTP_BIT_HIGH_RATE;
        }
 
-       ps2_command(&psmouse->ps2dev, (unsigned char *)&psmouse->rate,
-                   PSMOUSE_CMD_SETRATE);
+       rate_param = (u8)rate;
+       ps2_command(&psmouse->ps2dev, &rate_param, PSMOUSE_CMD_SETRATE);
 }
 
 static void cypress_disconnect(struct psmouse *psmouse)