linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] libata: fix translation for START STOP UNIT
@ 2007-01-29  1:29 Robert Hancock
  2007-01-30 14:24 ` Jeff Garzik
  0 siblings, 1 reply; 8+ messages in thread
From: Robert Hancock @ 2007-01-29  1:29 UTC (permalink / raw)
  To: linux-kernel, linux-ide, Jeff Garzik

[-- Attachment #1: Type: text/plain, Size: 736 bytes --]

Applies to 2.6.20-rc6.

---

libata's SCSI translation for the SCSI START STOP UNIT command with the 
START bit clear (i.e. stopping the drive) appears to be incorrect. It 
sends an ATA STANDBY command with the time period set to 0, which the 
code comment says means "now", but the ATA standard says this means 
disable the standby timer, which effectively does nothing. Change this 
to issue a STANDBY IMMEDIATE command which will actually spin the drive 
down. The SAT (SCSI/ATA Translation) standard revision 9 concurs with 
this choice.

Signed-off-by: Robert Hancock <hancockr@shaw.ca>

-- 
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/



[-- Attachment #2: libata-fix-start-stop-unit-translation.patch --]
[-- Type: text/plain, Size: 688 bytes --]

--- linux-2.6.20-rc6nv/drivers/ata/libata-scsi.c	2007-01-28 16:59:58.000000000 -0600
+++ linux-2.6.20-rc6nvedit/drivers/ata/libata-scsi.c	2007-01-28 17:30:12.000000000 -0600
@@ -983,11 +983,10 @@ static unsigned int ata_scsi_start_stop_
 		}
 
 		tf->command = ATA_CMD_VERIFY;	/* READ VERIFY */
-	} else {
-		tf->nsect = 0;	/* time period value (0 implies now) */
-		tf->command = ATA_CMD_STANDBY;
-		/* Consider: ATA STANDBY IMMEDIATE command */
-	}
+	} else
+		/* Issue ATA STANDBY IMMEDIATE command */
+		tf->command = ATA_CMD_STANDBYNOW1;
+
 	/*
 	 * Standby and Idle condition timers could be implemented but that
 	 * would require libata to implement the Power condition mode page

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-02-01  1:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-29  1:29 [PATCH] libata: fix translation for START STOP UNIT Robert Hancock
2007-01-30 14:24 ` Jeff Garzik
2007-01-30 14:36   ` Robert Hancock
2007-01-30 14:43     ` Jeff Garzik
2007-01-31  8:22       ` Martin J. Bligh
2007-01-31  0:38     ` Mark Lord
2007-02-01  0:27       ` Tejun Heo
2007-02-01  1:04         ` Mark Lord

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).