Linus Torvalds wrote:
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index fa476e7..6ccfbc9 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -4296,6 +4296,13 @@ static int ata_start_drive(struct ata_po
*/
int ata_device_resume(struct ata_port *ap, struct ata_device *dev)
{
+ /*
+ * Wait for BUSY to go away for up to 2 seconds,
+ * and then try to wait for idle (up to 1 msec)
+ */
+ ata_busy_wait(ap, ATA_BUSY, 200000);
+ ata_wait_idle(ap);
I don't object, but ata_wait_idle() is completely pointless.
ata_wait_idle() has nothing to do with DRDY. It waits until both BSY
and DRQ are clear. See:
u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
Regards,
Jeff
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html