[PATCH] the latest consensus libata resume fix
Okay, just to sum things up. This forces libata to wait for up to 2 seconds for BUSY|DRQ to clear on resume before continuing. [jgarzik adds...] During testing we never saw DRQ asserted, but nonetheless (a) this works and (b) testing for DRQ won't hurt. Signed-off-by: Mark Lord <liml@rtr.ca> Acked-by: Jens Axboe <axboe@suse.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
ecd68853b8
commit
0737ac895a
|
@ -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)
|
||||
{
|
||||
if (ap->flags & ATA_FLAG_SUSPENDED) {
|
||||
ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000);
|
||||
ap->flags &= ~ATA_FLAG_SUSPENDED;
|
||||
ata_set_mode(ap);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue