aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug/acpiphp_core.c
diff options
context:
space:
mode:
authorKristen Accardi <kristen.c.accardi@intel.com>2006-02-23 17:56:03 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-23 14:35:15 -0800
commit20416ea54087c25502d6fb973b8e119973e16341 (patch)
tree47ca50997cbb408852021315ff4da315292467c2 /drivers/pci/hotplug/acpiphp_core.c
parent[PATCH] acpi: export acpi_bus_trim (diff)
downloadlinux-dev-20416ea54087c25502d6fb973b8e119973e16341.tar.xz
linux-dev-20416ea54087c25502d6fb973b8e119973e16341.zip
[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.c7
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);