Thread (3 messages) 3 messages, 2 authors, 2005-06-28

[PATCH] libata-dev-2.6-ncq: lengthen COMMRESET delay

From: Tejun Heo <hidden>
Date: 2005-06-26 14:27:25

 Hello, Jeff.
 Hello, Jens.

 This is the first patch of a series of updates to the ncq head of
libata-dev-2.6 tree.  The first six patches (including this one) are
independent misc updates/fixes, so I'm posting each of those patches
as a separate mail.  After the six patches, a patchset consisted of 8
patches follows which moves most of NCQ completion/error-handling to
libata-core layer and implements proper error-handling.

 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 [off-list ref]

Index: work/drivers/scsi/libata-core.c
===================================================================
--- work.orig/drivers/scsi/libata-core.c	2005-06-26 20:59:05.000000000 +0900
+++ work/drivers/scsi/libata-core.c	2005-06-26 21:06:01.000000000 +0900
@@ -1444,7 +1444,9 @@ void __sata_phy_reset(struct ata_port *a
 	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. */
+		msleep(1);
 	}
 	scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help