Commit c35c7b98 authored by Hans de Goede's avatar Hans de Goede
Browse files

platform/x86: msi-laptop: Add msi_scm_disable_hw_fn_handling() helper



Add a msi_scm_disable_hw_fn_handling() to remove the duplicate code
for this in the resume and init paths.

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220826111453.178962-2-hdegoede@redhat.com
parent 57209ddd
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -913,8 +913,7 @@ static int rfkill_init(struct platform_device *sdev)
	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 @@ static int __init msi_laptop_input_setup(void)

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;