diff options
Diffstat (limited to 'drivers/ide/ide-disk.c')
-rw-r--r-- | drivers/ide/ide-disk.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 7fff773f2df7..dc2175c81f5e 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
@@ -1037,6 +1037,17 @@ static void ide_disk_release(struct kref *kref) | |||
1037 | 1037 | ||
1038 | static int ide_disk_probe(ide_drive_t *drive); | 1038 | static int ide_disk_probe(ide_drive_t *drive); |
1039 | 1039 | ||
1040 | /* | ||
1041 | * On HPA drives the capacity needs to be | ||
1042 | * reinitilized on resume otherwise the disk | ||
1043 | * can not be used and a hard reset is required | ||
1044 | */ | ||
1045 | static void ide_disk_resume(ide_drive_t *drive) | ||
1046 | { | ||
1047 | if (idedisk_supports_hpa(drive->id)) | ||
1048 | init_idedisk_capacity(drive); | ||
1049 | } | ||
1050 | |||
1040 | static void ide_device_shutdown(ide_drive_t *drive) | 1051 | static void ide_device_shutdown(ide_drive_t *drive) |
1041 | { | 1052 | { |
1042 | #ifdef CONFIG_ALPHA | 1053 | #ifdef CONFIG_ALPHA |
@@ -1071,6 +1082,7 @@ static ide_driver_t idedisk_driver = { | |||
1071 | }, | 1082 | }, |
1072 | .probe = ide_disk_probe, | 1083 | .probe = ide_disk_probe, |
1073 | .remove = ide_disk_remove, | 1084 | .remove = ide_disk_remove, |
1085 | .resume = ide_disk_resume, | ||
1074 | .shutdown = ide_device_shutdown, | 1086 | .shutdown = ide_device_shutdown, |
1075 | .version = IDEDISK_VERSION, | 1087 | .version = IDEDISK_VERSION, |
1076 | .media = ide_disk, | 1088 | .media = ide_disk, |