]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/acpi/scan.c
Merge branches 'acpi-spcr', 'acpi-osi', 'acpi-bus', 'acpi-scan' and 'acpi-misc'
[karo-tx-linux.git] / drivers / acpi / scan.c
index 09f65f57bebee228ca0405911fa9bbee3ba0d01c..59ebbd5f7b835b1aa5d119930c65f34b57a0dedc 100644 (file)
@@ -404,10 +404,6 @@ void acpi_device_hotplug(struct acpi_device *adev, u32 src)
                error = dock_notify(adev, src);
        } else if (adev->flags.hotplug_notify) {
                error = acpi_generic_hotplug_event(adev, src);
-               if (error == -EPERM) {
-                       ost_code = ACPI_OST_SC_EJECT_NOT_SUPPORTED;
-                       goto err_out;
-               }
        } else {
                int (*notify)(struct acpi_device *, u32);
 
@@ -423,8 +419,20 @@ void acpi_device_hotplug(struct acpi_device *adev, u32 src)
                else
                        goto out;
        }
-       if (!error)
+       switch (error) {
+       case 0:
                ost_code = ACPI_OST_SC_SUCCESS;
+               break;
+       case -EPERM:
+               ost_code = ACPI_OST_SC_EJECT_NOT_SUPPORTED;
+               break;
+       case -EBUSY:
+               ost_code = ACPI_OST_SC_DEVICE_BUSY;
+               break;
+       default:
+               ost_code = ACPI_OST_SC_NON_SPECIFIC_FAILURE;
+               break;
+       }
 
  err_out:
        acpi_evaluate_ost(adev->handle, src, ost_code, NULL);