|
@@ -76,23 +76,24 @@ static int scsi_bus_resume_common(struct device *dev)
|
|
|
{
|
|
|
int err = 0;
|
|
|
|
|
|
- if (scsi_is_sdev_device(dev)) {
|
|
|
- /*
|
|
|
- * Parent device may have runtime suspended as soon as
|
|
|
- * it is woken up during the system resume.
|
|
|
- *
|
|
|
- * Resume it on behalf of child.
|
|
|
- */
|
|
|
- pm_runtime_get_sync(dev->parent);
|
|
|
- err = scsi_dev_type_resume(dev);
|
|
|
- pm_runtime_put_sync(dev->parent);
|
|
|
- }
|
|
|
+ /*
|
|
|
+ * Parent device may have runtime suspended as soon as
|
|
|
+ * it is woken up during the system resume.
|
|
|
+ *
|
|
|
+ * Resume it on behalf of child.
|
|
|
+ */
|
|
|
+ pm_runtime_get_sync(dev->parent);
|
|
|
|
|
|
+ if (scsi_is_sdev_device(dev))
|
|
|
+ err = scsi_dev_type_resume(dev);
|
|
|
if (err == 0) {
|
|
|
pm_runtime_disable(dev);
|
|
|
pm_runtime_set_active(dev);
|
|
|
pm_runtime_enable(dev);
|
|
|
}
|
|
|
+
|
|
|
+ pm_runtime_put_sync(dev->parent);
|
|
|
+
|
|
|
return err;
|
|
|
}
|
|
|
|