From: Robert Hancock <hancockr@shaw.ca>
To: linux-kernel <linux-kernel@vger.kernel.org>,
linux-ide@vger.kernel.org, Jeff Garzik <jeff@garzik.org>
Subject: [PATCH] libata: fix translation for START STOP UNIT
Date: Sun, 28 Jan 2007 19:29:46 -0600 [thread overview]
Message-ID: <45BD4E0A.7060501@shaw.ca> (raw)
[-- 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
next reply other threads:[~2007-01-29 1:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-29 1:29 Robert Hancock [this message]
2007-01-30 14:24 ` [PATCH] libata: fix translation for START STOP UNIT 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45BD4E0A.7060501@shaw.ca \
--to=hancockr@shaw.ca \
--cc=jeff@garzik.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).