Date: Wed, 19 Dec 2001 06:05:03 -0500 From: Robert Sexton <robert@kudra.com> To: freebsd-mobile@FreeBSD.ORG Cc: hanspeter_roth@hotmail.com Subject: Re: IDE standby timeout (hdparm) Message-ID: <20011219060503.B72034@kudra.com> In-Reply-To: <20011219104954.A5747@bs82.bsag.ch>; from hanspeter_roth@hotmail.com on Wed, Dec 19, 2001 at 10:49:54AM %2B0100 References: <20011219104954.A5747@bs82.bsag.ch>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Wed, Dec 19, 2001 at 10:49:54AM +0100, Hanspeter Roth wrote:
>
> Hello,
>
> is it possible to finetune the standby timeout (spindown) of
> IDE-disks?
> Is there something like the Linux' `hdparm'?
'What patch?'
Sorry for the extra list traffic. Its attached here.
--
Robert Sexton - robert@kudra.com, Cincinnati OH, USA
If car manufactures were the nra their slogan would be
"Cars don't kill comunities, people kill communities." - Unknown
[-- Attachment #2 --]
*** dev/ata/ata-disk.c.orig Wed Oct 24 14:24:09 2001
--- dev/ata/ata-disk.c Sat Nov 10 02:16:55 2001
***************
*** 86,94 ****
--- 86,96 ----
static int ata_dma = 1;
static int ata_wc = 0;
static int ata_tags = 0;
+ static int ata_suspend = 0;
TUNABLE_INT("hw.ata.ata_dma", &ata_dma);
TUNABLE_INT("hw.ata.wc", &ata_wc);
TUNABLE_INT("hw.ata.tags", &ata_tags);
+ TUNABLE_INT("hw.ata.suspend", &ata_suspend);
/* sysctl vars */
SYSCTL_DECL(_hw_ata);
***************
*** 98,103 ****
--- 100,107 ----
"ATA disk write caching");
SYSCTL_INT(_hw_ata, OID_AUTO, tags, CTLFLAG_RD, &ata_tags, 0,
"ATA disk tagged queuing support");
+ SYSCTL_INT(_hw_ata, OID_AUTO, suspend, CTLFLAG_RD, &ata_suspend, 0,
+ "ATA disk suspend timer");
/* defines */
#define AD_MAX_RETRIES 3
***************
*** 188,193 ****
--- 192,204 ----
0, 0, ATA_C_F_DIS_SRVIRQ, ATA_WAIT_INTR))
ata_printf(scp, device, "disabling service interrupt failed\n");
}
+
+ if ( ata_suspend > 0 ) {
+ /* attempt suspend mode. The drive uses increments of ten seconds */
+ if (ata_command(adp->controller, adp->unit, 0xe2,
+ 0, ata_suspend/10, 0, ATA_WAIT_INTR))
+ printf("ad%d: suspend mode failed\n", adp->lun);
+ }
devstat_add_entry(&adp->stats, "ad", adp->lun, DEV_BSIZE,
DEVSTAT_NO_ORDERED_TAGS,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011219060503.B72034>
