|
@@ -223,6 +223,8 @@ int acpi_pci_bind(struct acpi_device *device)
|
|
|
data->id.segment, data->id.bus,
|
|
|
data->id.device, data->id.function));
|
|
|
data->bus = data->dev->subordinate;
|
|
|
+ device->ops.bind = acpi_pci_bind;
|
|
|
+ device->ops.unbind = acpi_pci_unbind;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -352,6 +354,8 @@ acpi_pci_bind_root(struct acpi_device *device,
|
|
|
|
|
|
data->id = *id;
|
|
|
data->bus = bus;
|
|
|
+ device->ops.bind = acpi_pci_bind;
|
|
|
+ device->ops.unbind = acpi_pci_unbind;
|
|
|
|
|
|
acpi_get_name(device->handle, ACPI_FULL_PATHNAME, &buffer);
|
|
|
|
|
@@ -374,39 +378,3 @@ acpi_pci_bind_root(struct acpi_device *device,
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
-#define ACPI_PCI_BRIDGE_DRIVER_NAME "ACPI PCI Bridge Driver"
|
|
|
-
|
|
|
-static int acpi_pci_bridge_add(struct acpi_device *device);
|
|
|
-static int acpi_pci_bridge_remove(struct acpi_device *device, int type);
|
|
|
-
|
|
|
-static struct acpi_driver acpi_pci_bridge_driver = {
|
|
|
- .name = ACPI_PCI_BRIDGE_DRIVER_NAME,
|
|
|
- .ids = ACPI_PCI_BRIDGE_HID,
|
|
|
- .ops = {
|
|
|
- .add = acpi_pci_bridge_add,
|
|
|
- .remove = acpi_pci_bridge_remove,
|
|
|
- },
|
|
|
-};
|
|
|
-
|
|
|
-static int acpi_pci_bridge_add(struct acpi_device *device)
|
|
|
-{
|
|
|
- return acpi_pci_bind(device);
|
|
|
-}
|
|
|
-
|
|
|
-static int acpi_pci_bridge_remove(struct acpi_device *device, int type)
|
|
|
-{
|
|
|
- return acpi_pci_unbind(device);
|
|
|
-}
|
|
|
-
|
|
|
-static int __init acpi_pci_bridge_init(void)
|
|
|
-{
|
|
|
- if (acpi_pci_disabled)
|
|
|
- return 0;
|
|
|
- if (acpi_bus_register_driver(&acpi_pci_bridge_driver) < 0)
|
|
|
- return -ENODEV;
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-/* Should be called after ACPI pci root driver */
|
|
|
-subsys_initcall(acpi_pci_bridge_init);
|