|
@@ -1402,6 +1402,8 @@ static struct sony_pic_dev spic_dev = {
|
|
|
.ioports = LIST_HEAD_INIT(spic_dev.ioports),
|
|
|
};
|
|
|
|
|
|
+static int spic_drv_registered;
|
|
|
+
|
|
|
/* Event masks */
|
|
|
#define SONYPI_JOGGER_MASK 0x00000001
|
|
|
#define SONYPI_CAPTURE_MASK 0x00000002
|
|
@@ -2916,6 +2918,7 @@ static int __init sony_laptop_init(void)
|
|
|
"Unable to register SPIC driver.");
|
|
|
goto out;
|
|
|
}
|
|
|
+ spic_drv_registered = 1;
|
|
|
}
|
|
|
|
|
|
result = acpi_bus_register_driver(&sony_nc_driver);
|
|
@@ -2927,7 +2930,7 @@ static int __init sony_laptop_init(void)
|
|
|
return 0;
|
|
|
|
|
|
out_unregister_pic:
|
|
|
- if (!no_spic)
|
|
|
+ if (spic_drv_registered)
|
|
|
acpi_bus_unregister_driver(&sony_pic_driver);
|
|
|
out:
|
|
|
return result;
|
|
@@ -2936,7 +2939,7 @@ out:
|
|
|
static void __exit sony_laptop_exit(void)
|
|
|
{
|
|
|
acpi_bus_unregister_driver(&sony_nc_driver);
|
|
|
- if (!no_spic)
|
|
|
+ if (spic_drv_registered)
|
|
|
acpi_bus_unregister_driver(&sony_pic_driver);
|
|
|
}
|
|
|
|