Re: [PATCH 1/2] platform/x86: msi-laptop: Add msi_scm_model_exit() helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 8/26/22 13:14, Hans de Goede wrote:
> The probe-error-exit and remove paths both duplicate the exact same code
> to undo load_scm_model_init(). Add a helper for this.
> 
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>

I've added this series to my review-hans (soon to be for-next) branch now.

Regards,

Hans

> ---
>  drivers/platform/x86/msi-laptop.c | 29 +++++++++++++----------------
>  1 file changed, 13 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
> index 5d4b10b8d771..74829f766b88 100644
> --- a/drivers/platform/x86/msi-laptop.c
> +++ b/drivers/platform/x86/msi-laptop.c
> @@ -1014,9 +1014,19 @@ static int __init load_scm_model_init(struct platform_device *sdev)
>  	rfkill_cleanup();
>  
>  fail_rfkill:
> -
>  	return result;
> +}
> +
> +static void msi_scm_model_exit(void)
> +{
> +	if (!quirks->load_scm_model)
> +		return;
>  
> +	i8042_remove_filter(msi_laptop_i8042_filter);
> +	cancel_delayed_work_sync(&msi_touchpad_dwork);
> +	input_unregister_device(msi_laptop_input_dev);
> +	cancel_delayed_work_sync(&msi_rfkill_dwork);
> +	rfkill_cleanup();
>  }
>  
>  static int __init msi_init(void)
> @@ -1104,13 +1114,7 @@ static int __init msi_init(void)
>  fail_create_attr:
>  	sysfs_remove_group(&msipf_device->dev.kobj, &msipf_attribute_group);
>  fail_create_group:
> -	if (quirks->load_scm_model) {
> -		i8042_remove_filter(msi_laptop_i8042_filter);
> -		cancel_delayed_work_sync(&msi_touchpad_dwork);
> -		input_unregister_device(msi_laptop_input_dev);
> -		cancel_delayed_work_sync(&msi_rfkill_dwork);
> -		rfkill_cleanup();
> -	}
> +	msi_scm_model_exit();
>  fail_scm_model_init:
>  	platform_device_del(msipf_device);
>  fail_device_add:
> @@ -1125,14 +1129,7 @@ static int __init msi_init(void)
>  
>  static void __exit msi_cleanup(void)
>  {
> -	if (quirks->load_scm_model) {
> -		i8042_remove_filter(msi_laptop_i8042_filter);
> -		cancel_delayed_work_sync(&msi_touchpad_dwork);
> -		input_unregister_device(msi_laptop_input_dev);
> -		cancel_delayed_work_sync(&msi_rfkill_dwork);
> -		rfkill_cleanup();
> -	}
> -
> +	msi_scm_model_exit();
>  	sysfs_remove_group(&msipf_device->dev.kobj, &msipf_attribute_group);
>  	if (!quirks->old_ec_model && threeg_exists)
>  		device_remove_file(&msipf_device->dev, &dev_attr_threeg);




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux