diff options
| author | Kristen Accardi <kristen.c.accardi@intel.com> | 2006-02-23 17:56:03 -0800 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-23 14:35:15 -0800 | 
| commit | 20416ea54087c25502d6fb973b8e119973e16341 (patch) | |
| tree | 47ca50997cbb408852021315ff4da315292467c2 /drivers/pci/hotplug/acpiphp_core.c | |
| parent | ceaba663055e38226a070a9668eac5881d65a2cc (diff) | |
| download | olio-linux-3.10-20416ea54087c25502d6fb973b8e119973e16341.tar.xz olio-linux-3.10-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.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 60c4c38047a..bce71c93347 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);  |