Commit 1cca0ebb authored by Linus Torvalds's avatar Linus Torvalds

Improve SATA core suspend/resume

Doing a full ata_busy_sleep() seems to get suspend and resume working
fine on the Apple Mac Mini, at least.
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 427abfa2
...@@ -4297,6 +4297,7 @@ static int ata_start_drive(struct ata_port *ap, struct ata_device *dev) ...@@ -4297,6 +4297,7 @@ static int ata_start_drive(struct ata_port *ap, struct ata_device *dev)
int ata_device_resume(struct ata_port *ap, struct ata_device *dev) int ata_device_resume(struct ata_port *ap, struct ata_device *dev)
{ {
if (ap->flags & ATA_FLAG_SUSPENDED) { if (ap->flags & ATA_FLAG_SUSPENDED) {
ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT);
ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000); ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000);
ap->flags &= ~ATA_FLAG_SUSPENDED; ap->flags &= ~ATA_FLAG_SUSPENDED;
ata_set_mode(ap); ata_set_mode(ap);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment