@@ -648,6 +648,7 @@ static int acpi_pci_root_start(struct acpi_device *device)
list_for_each_entry(driver, &acpi_pci_drivers, node)
if (driver->add)
driver->add(root);
+ acpiphp_add_bridge(root);
mutex_unlock(&acpi_pci_root_lock);
pci_bus_add_devices(root->bus);
@@ -664,6 +665,7 @@ static int acpi_pci_root_remove(struct acpi_device *device, int type)
list_for_each_entry(driver, &acpi_pci_drivers, node)
if (driver->remove)
driver->remove(root);
+ acpiphp_remove_bridge(root);
device_set_run_wake(root->bus->bridge, false);
pci_acpi_remove_bus_pm_notifier(device);
@@ -191,9 +191,6 @@ extern int acpiphp_register_hotplug_slot(struct acpiphp_slot *slot);
extern void acpiphp_unregister_hotplug_slot(struct acpiphp_slot *slot);
/* acpiphp_glue.c */
-extern struct acpi_pci_driver acpi_pci_hp_driver;
-extern int acpiphp_add_bridge(struct acpi_pci_root *root);
-extern void acpiphp_remove_bridge(struct acpi_pci_root *root);
typedef int (*acpiphp_callback)(struct acpiphp_slot *slot, void *data);
extern int acpiphp_enable_slot(struct acpiphp_slot *slot);
@@ -349,26 +349,3 @@ void acpiphp_unregister_hotplug_slot(struct acpiphp_slot *acpiphp_slot)
if (retval)
err("pci_hp_deregister failed with error %d\n", retval);
}
-
-
-static int __init acpiphp_init(void)
-{
- info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
-
- if (!acpi_pci_disabled)
- /* initialize internal data structure etc. */
- acpi_pci_register_driver(&acpi_pci_hp_driver);
-
- return 0;
-}
-
-
-static void __exit acpiphp_exit(void)
-{
- if (!acpi_pci_disabled)
- /* deallocate internal data structures etc. */
- acpi_pci_unregister_driver(&acpi_pci_hp_driver);
-}
-
-module_init(acpiphp_init);
-module_exit(acpiphp_exit);
@@ -1407,11 +1407,6 @@ static void handle_hotplug_event_func(acpi_handle handle, u32 type,
_handle_hotplug_event_func);
}
-struct acpi_pci_driver acpi_pci_hp_driver = {
- .add = acpiphp_add_bridge,
- .remove = acpiphp_remove_bridge,
-};
-
/**
* acpiphp_enable_slot - power on slot
* @slot: ACPI PHP slot
@@ -49,4 +49,12 @@ extern bool aer_acpi_firmware_first(void);
static inline bool aer_acpi_firmware_first(void) { return false; }
#endif
+#ifdef CONFIG_HOTPLUG_PCI_ACPI
+extern int acpiphp_add_bridge(struct acpi_pci_root *root);
+extern void acpiphp_remove_bridge(struct acpi_pci_root *root);
+#else /* !CONFIG_HOTPLUG_PCI_ACPI */
+static inline int acpiphp_add_bridge(struct acpi_pci_root *) { return 0; }
+static inline void acpiphp_remove_bridge(struct acpi_pci_root *) { }
+#endif /* !CONFIG_HOTPLUG_PCI_ACPI */
+
#endif /* _PCI_ACPI_H_ */
With the "ACPI Hot Plug PCI Controller Driver ("acpiphp")" conversion in place - being statically built-in to the kernel and no longer capable of being a kernel module - remove the use of acpi_pci_[un]register_driver() and add its functionality from directly within the "pci_root" driver. Signed-off-by: Myron Stowe <myron.stowe@redhat.com> --- drivers/acpi/pci_root.c | 2 ++ drivers/pci/hotplug/acpiphp.h | 3 --- drivers/pci/hotplug/acpiphp_core.c | 23 ----------------------- drivers/pci/hotplug/acpiphp_glue.c | 5 ----- include/linux/pci-acpi.h | 8 ++++++++ 5 files changed, 10 insertions(+), 31 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html