diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/scsi_pm.c | 23 |
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 | ||