diff options
author | Kristen Accardi <kristen.c.accardi@intel.com> | 2006-02-24 04:56:03 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-24 01:35:15 +0300 |
commit | 20416ea54087c25502d6fb973b8e119973e16341 (patch) | |
tree | 47ca50997cbb408852021315ff4da315292467c2 /drivers/pci/hotplug/acpiphp_core.c | |
parent | ceaba663055e38226a070a9668eac5881d65a2cc (diff) | |
download | linux-20416ea54087c25502d6fb973b8e119973e16341.tar.xz |
[PATCH] acpiphp: add dock event handling
These patches add generic dock event handling to acpiphp. If there are
pci devices that need to be inserted/removed after the dock event, the
event notification will be handed down to the normal pci hotplug event
handler in acpiphp so that new bridges/devices can be enumerated.
Because some dock stations do not have pci bridges or pci devices that
need to be inserted after a dock, acpiphp will remain loaded to handle
dock events even if no hotpluggable pci slots are discovered.
You probably need to have the pci=assign-busses kernel parameter enabled
to use these patches, and you may not allow ibm_acpi to handle docking
notifications and use this patch.
This patch incorporates feedback provided by many.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci/hotplug/acpiphp_core.c')
-rw-r--r-- | drivers/pci/hotplug/acpiphp_core.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/acpiphp_core.c b/drivers/pci/hotplug/acpiphp_core.c index 60c4c38047a3..bce71c933478 100644 --- a/drivers/pci/hotplug/acpiphp_core.c +++ b/drivers/pci/hotplug/acpiphp_core.c @@ -429,14 +429,17 @@ static void __exit cleanup_slots (void) static int __init acpiphp_init(void) { int retval; + int docking_station; info(DRIVER_DESC " version: " DRIVER_VERSION "\n"); acpiphp_debug = debug; + docking_station = find_dock_station(); + /* read all the ACPI info from the system */ retval = init_acpi(); - if (retval) + if (retval && !(docking_station)) return retval; return init_slots(); @@ -448,6 +451,8 @@ static void __exit acpiphp_exit(void) cleanup_slots(); /* deallocate internal data structures etc. */ acpiphp_glue_exit(); + + remove_dock_station(); } module_init(acpiphp_init); |