aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/platform/x86/sony-laptop.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index f4241ac2a5e3..15c58c54ded3 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1402,6 +1402,8 @@ static struct sony_pic_dev spic_dev = {
1402 .ioports = LIST_HEAD_INIT(spic_dev.ioports), 1402 .ioports = LIST_HEAD_INIT(spic_dev.ioports),
1403}; 1403};
1404 1404
1405static int spic_drv_registered;
1406
1405/* Event masks */ 1407/* Event masks */
1406#define SONYPI_JOGGER_MASK 0x00000001 1408#define SONYPI_JOGGER_MASK 0x00000001
1407#define SONYPI_CAPTURE_MASK 0x00000002 1409#define SONYPI_CAPTURE_MASK 0x00000002
@@ -2916,6 +2918,7 @@ static int __init sony_laptop_init(void)
2916 "Unable to register SPIC driver."); 2918 "Unable to register SPIC driver.");
2917 goto out; 2919 goto out;
2918 } 2920 }
2921 spic_drv_registered = 1;
2919 } 2922 }
2920 2923
2921 result = acpi_bus_register_driver(&sony_nc_driver); 2924 result = acpi_bus_register_driver(&sony_nc_driver);
@@ -2927,7 +2930,7 @@ static int __init sony_laptop_init(void)
2927 return 0; 2930 return 0;
2928 2931
2929out_unregister_pic: 2932out_unregister_pic:
2930 if (!no_spic) 2933 if (spic_drv_registered)
2931 acpi_bus_unregister_driver(&sony_pic_driver); 2934 acpi_bus_unregister_driver(&sony_pic_driver);
2932out: 2935out:
2933 return result; 2936 return result;
@@ -2936,7 +2939,7 @@ out:
2936static void __exit sony_laptop_exit(void) 2939static void __exit sony_laptop_exit(void)
2937{ 2940{
2938 acpi_bus_unregister_driver(&sony_nc_driver); 2941 acpi_bus_unregister_driver(&sony_nc_driver);
2939 if (!no_spic) 2942 if (spic_drv_registered)
2940 acpi_bus_unregister_driver(&sony_pic_driver); 2943 acpi_bus_unregister_driver(&sony_pic_driver);
2941} 2944}
2942 2945