|
@@ -635,4 +635,26 @@ module_param_call(lid_init_state,
|
|
|
NULL, 0644);
|
|
|
MODULE_PARM_DESC(lid_init_state, "Behavior for reporting LID initial state");
|
|
|
|
|
|
-module_acpi_driver(acpi_button_driver);
|
|
|
+static int acpi_button_register_driver(struct acpi_driver *driver)
|
|
|
+{
|
|
|
+ /*
|
|
|
+ * Modules such as nouveau.ko and i915.ko have a link time dependency
|
|
|
+ * on acpi_lid_open(), and would therefore not be loadable on ACPI
|
|
|
+ * capable kernels booted in non-ACPI mode if the return value of
|
|
|
+ * acpi_bus_register_driver() is returned from here with ACPI disabled
|
|
|
+ * when this driver is built as a module.
|
|
|
+ */
|
|
|
+ if (acpi_disabled)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ return acpi_bus_register_driver(driver);
|
|
|
+}
|
|
|
+
|
|
|
+static void acpi_button_unregister_driver(struct acpi_driver *driver)
|
|
|
+{
|
|
|
+ if (!acpi_disabled)
|
|
|
+ acpi_bus_unregister_driver(driver);
|
|
|
+}
|
|
|
+
|
|
|
+module_driver(acpi_button_driver, acpi_button_register_driver,
|
|
|
+ acpi_button_unregister_driver);
|