aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/scsi_pm.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index dc0ad85853e2..d4201ded3b22 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -76,24 +76,23 @@ static int scsi_bus_resume_common(struct device *dev)
76{ 76{
77 int err = 0; 77 int err = 0;
78 78
79 /* 79 if (scsi_is_sdev_device(dev)) {
80 * Parent device may have runtime suspended as soon as 80 /*
81 * it is woken up during the system resume. 81 * Parent device may have runtime suspended as soon as
82 * 82 * it is woken up during the system resume.
83 * Resume it on behalf of child. 83 *
84 */ 84 * Resume it on behalf of child.
85 pm_runtime_get_sync(dev->parent); 85 */
86 86 pm_runtime_get_sync(dev->parent);
87 if (scsi_is_sdev_device(dev))
88 err = scsi_dev_type_resume(dev); 87 err = scsi_dev_type_resume(dev);
88 pm_runtime_put_sync(dev->parent);
89 }
90
89 if (err == 0) { 91 if (err == 0) {
90 pm_runtime_disable(dev); 92 pm_runtime_disable(dev);
91 pm_runtime_set_active(dev); 93 pm_runtime_set_active(dev);
92 pm_runtime_enable(dev); 94 pm_runtime_enable(dev);
93 } 95 }
94
95 pm_runtime_put_sync(dev->parent);
96
97 return err; 96 return err;
98} 97}
99 98