>From 6dd1bf2049496e932e681534c0e1f0ffc0b7a47d Mon Sep 17 00:00:00 2001 From: Lee, Chun-Yi Date: Sat, 15 May 2010 06:18:54 +0800 Subject: [PATCH] Clean up all objects used by scm model when driver initial fail or exit Clean up i8042 filter, rfkill and cancel delayed work when msi-laptop driver initial fail or exit on MSI scm model. Signed-off-by: Lee, Chun-Yi --- drivers/platform/x86/msi-laptop.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c index cd2c15e..e536232 100644 --- a/drivers/platform/x86/msi-laptop.c +++ b/drivers/platform/x86/msi-laptop.c @@ -811,6 +811,11 @@ static int __init msi_init(void) fail_platform_device2: + if (load_scm_model) { + i8042_remove_filter(msi_laptop_i8042_filter); + cancel_delayed_work_sync(&msi_rfkill_work); + rfkill_cleanup(); + } platform_device_del(msipf_device); fail_platform_device1: @@ -830,15 +835,17 @@ fail_backlight: static void __exit msi_cleanup(void) { + if (load_scm_model) { + i8042_remove_filter(msi_laptop_i8042_filter); + cancel_delayed_work_sync(&msi_rfkill_work); + rfkill_cleanup(); + } sysfs_remove_group(&msipf_device->dev.kobj, &msipf_attribute_group); platform_device_unregister(msipf_device); platform_driver_unregister(&msipf_driver); backlight_device_unregister(msibl_device); - i8042_remove_filter(msi_laptop_i8042_filter); - rfkill_cleanup(); - /* Enable automatic brightness control again */ if (auto_brightness != 2) set_auto_brightness(1); -- 1.6.0.2