platform/x86: msi-laptop: Add msi_scm_disable_hw_fn_handling() helper
authorHans de Goede <hdegoede@redhat.com>
Fri, 26 Aug 2022 11:14:53 +0000 (13:14 +0200)
committerHans de Goede <hdegoede@redhat.com>
Fri, 26 Aug 2022 11:16:20 +0000 (13:16 +0200)
Add a msi_scm_disable_hw_fn_handling() to remove the duplicate code
for this in the resume and init paths.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220826111453.178962-2-hdegoede@redhat.com
drivers/platform/x86/msi-laptop.c

index 74829f7..1c29678 100644 (file)
@@ -913,8 +913,7 @@ err_bluetooth:
        return retval;
 }
 
-#ifdef CONFIG_PM_SLEEP
-static int msi_laptop_resume(struct device *device)
+static int msi_scm_disable_hw_fn_handling(void)
 {
        u8 data;
        int result;
@@ -934,6 +933,12 @@ static int msi_laptop_resume(struct device *device)
 
        return 0;
 }
+
+#ifdef CONFIG_PM_SLEEP
+static int msi_laptop_resume(struct device *device)
+{
+       return msi_scm_disable_hw_fn_handling();
+}
 #endif
 
 static int __init msi_laptop_input_setup(void)
@@ -966,7 +971,6 @@ err_free_dev:
 
 static int __init load_scm_model_init(struct platform_device *sdev)
 {
-       u8 data;
        int result;
 
        if (!quirks->ec_read_only) {
@@ -980,12 +984,7 @@ static int __init load_scm_model_init(struct platform_device *sdev)
        }
 
        /* disable hardware control by fn key */
-       result = ec_read(MSI_STANDARD_EC_SCM_LOAD_ADDRESS, &data);
-       if (result < 0)
-               return result;
-
-       result = ec_write(MSI_STANDARD_EC_SCM_LOAD_ADDRESS,
-               data | MSI_STANDARD_EC_SCM_LOAD_MASK);
+       result = msi_scm_disable_hw_fn_handling();
        if (result < 0)
                return result;