|
@@ -604,14 +604,17 @@ static int handle_eject_request(struct dock_station *ds, u32 event)
|
|
|
static void dock_notify(acpi_handle handle, u32 event, void *data)
|
|
|
{
|
|
|
struct dock_station *ds = data;
|
|
|
+ struct acpi_device *tmp;
|
|
|
|
|
|
switch (event) {
|
|
|
case ACPI_NOTIFY_BUS_CHECK:
|
|
|
- if (!dock_in_progress(ds) && dock_present(ds)) {
|
|
|
+ if (!dock_in_progress(ds) && acpi_bus_get_device(ds->handle,
|
|
|
+ &tmp)) {
|
|
|
begin_dock(ds);
|
|
|
dock(ds);
|
|
|
if (!dock_present(ds)) {
|
|
|
printk(KERN_ERR PREFIX "Unable to dock!\n");
|
|
|
+ complete_dock(ds);
|
|
|
break;
|
|
|
}
|
|
|
atomic_notifier_call_chain(&dock_notifier_list,
|