platform/x86: ideapad-laptop: Refactor ideapad_sync_touchpad_state()
authorHans de Goede <hdegoede@redhat.com>
Thu, 17 Nov 2022 11:02:39 +0000 (12:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jan 2023 10:11:42 +0000 (11:11 +0100)
[ Upstream commit 289a59895e7a380cdc7fe2780d3073f4b9237020 ]

Add an error exit for read_ec_data() failing instead of putting the main
body in an if (success) block.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Tested-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Tested-by: Maxim Mikityanskiy <maxtram95@gmail.com>
Link: https://lore.kernel.org/r/20221117110244.67811-2-hdegoede@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/platform/x86/ideapad-laptop.c

index 13e3ae7..dcb3a82 100644 (file)
@@ -1490,23 +1490,26 @@ static void ideapad_kbd_bl_exit(struct ideapad_private *priv)
 static void ideapad_sync_touchpad_state(struct ideapad_private *priv)
 {
        unsigned long value;
+       unsigned char param;
+       int ret;
 
        if (!priv->features.touchpad_ctrl_via_ec)
                return;
 
        /* Without reading from EC touchpad LED doesn't switch state */
-       if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) {
-               unsigned char param;
-               /*
-                * Some IdeaPads don't really turn off touchpad - they only
-                * switch the LED state. We (de)activate KBC AUX port to turn
-                * touchpad off and on. We send KEY_TOUCHPAD_OFF and
-                * KEY_TOUCHPAD_ON to not to get out of sync with LED
-                */
-               i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
-               ideapad_input_report(priv, value ? 67 : 66);
-               sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
-       }
+       ret = read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value);
+       if (ret)
+               return;
+
+       /*
+        * Some IdeaPads don't really turn off touchpad - they only
+        * switch the LED state. We (de)activate KBC AUX port to turn
+        * touchpad off and on. We send KEY_TOUCHPAD_OFF and
+        * KEY_TOUCHPAD_ON to not to get out of sync with LED
+        */
+       i8042_command(&param, value ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE);
+       ideapad_input_report(priv, value ? 67 : 66);
+       sysfs_notify(&priv->platform_device->dev.kobj, NULL, "touchpad");
 }
 
 static void ideapad_acpi_notify(acpi_handle handle, u32 event, void *data)