[PATCH] libata: lengthen COMMRESET delay
authorTejun Heo <htejun@gmail.com>
Sun, 26 Jun 2005 14:27:19 +0000 (23:27 +0900)
committerJeff Garzik <jgarzik@pobox.com>
Tue, 28 Jun 2005 04:05:57 +0000 (00:05 -0400)
This patch lengthens the delay between DET setting and clearing for
COMMRESET from 400us to 1ms.  I couldn't find any requiremen regarding
the duration of COMMRESET in SATA I/II specs but AHCI-1.1 10.4.2
states that it should be at least 1ms.

Signed-off-by: Tejun Heo <htejun@gmail.com>
drivers/scsi/libata-core.c

index fd66f56fd612404b2b82669d9b8e716ef084df39..cb535fa185b93453ca535bf8a28fe2366a904a06 100644 (file)
@@ -1408,7 +1408,9 @@ void __sata_phy_reset(struct ata_port *ap)
        if (ap->flags & ATA_FLAG_SATA_RESET) {
                /* issue phy wake/reset */
                scr_write_flush(ap, SCR_CONTROL, 0x301);
-               udelay(400);                    /* FIXME: a guess */
+               /* Couldn't find anything in SATA I/II specs, but
+                * AHCI-1.1 10.4.2 says at least 1 ms. */
+               mdelay(1);
        }
        scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */