diff options
Diffstat (limited to 'drivers/ide/ide.c')
-rw-r--r-- | drivers/ide/ide.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 6002713a20a1..0cd76bf66833 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -1013,6 +1013,7 @@ static int generic_ide_resume(struct device *dev) | |||
1013 | struct request rq; | 1013 | struct request rq; |
1014 | struct request_pm_state rqpm; | 1014 | struct request_pm_state rqpm; |
1015 | ide_task_t args; | 1015 | ide_task_t args; |
1016 | int err; | ||
1016 | 1017 | ||
1017 | /* Call ACPI _STM only once */ | 1018 | /* Call ACPI _STM only once */ |
1018 | if (!(drive->dn % 2)) | 1019 | if (!(drive->dn % 2)) |
@@ -1029,7 +1030,16 @@ static int generic_ide_resume(struct device *dev) | |||
1029 | rqpm.pm_step = ide_pm_state_start_resume; | 1030 | rqpm.pm_step = ide_pm_state_start_resume; |
1030 | rqpm.pm_state = PM_EVENT_ON; | 1031 | rqpm.pm_state = PM_EVENT_ON; |
1031 | 1032 | ||
1032 | return ide_do_drive_cmd(drive, &rq, ide_head_wait); | 1033 | err = ide_do_drive_cmd(drive, &rq, ide_head_wait); |
1034 | |||
1035 | if (err == 0 && dev->driver) { | ||
1036 | ide_driver_t *drv = to_ide_driver(dev->driver); | ||
1037 | |||
1038 | if (drv->resume) | ||
1039 | drv->resume(drive); | ||
1040 | } | ||
1041 | |||
1042 | return err; | ||
1033 | } | 1043 | } |
1034 | 1044 | ||
1035 | int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device *bdev, | 1045 | int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device *bdev, |