Index: ata-all.h =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-all.h,v retrieving revision 1.26.2.4 diff -u -r1.26.2.4 ata-all.h --- ata-all.h 2000/10/30 09:41:28 1.26.2.4 +++ ata-all.h 2002/07/23 20:02:25 @@ -74,6 +74,7 @@ #define ATA_C_READ_DMA 0xc8 /* read w/DMA command */ #define ATA_C_WRITE_DMA 0xca /* write w/DMA command */ #define ATA_C_WRITE_DMA_QUEUED 0xcc /* write w/DMA QUEUED command */ +#define ATA_C_IDLE 0xe3 /* idle command */ #define ATA_C_FLUSHCACHE 0xe7 /* flush cache to disk */ #define ATA_C_ATA_IDENTIFY 0xec /* get ATA params */ #define ATA_C_SETFEATURES 0xef /* features command */ Index: ata-disk.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-disk.c,v retrieving revision 1.60.2.9 diff -u -r1.60.2.9 ata-disk.c --- ata-disk.c 2000/11/04 23:04:52 1.60.2.9 +++ ata-disk.c 2002/07/23 20:44:15 @@ -174,6 +174,10 @@ printf("ad%d: disabling service interrupt failed\n", adp->lun); } + /* set standbye timer for 10 minutes */ + if (ata_command(adp->controller, adp->unit, ATA_C_IDLE, 0, 0, 0, 120, 0, ATA_WAIT_INTR)) + printf("ad%d: failed to set standby timer.\n", adp->lun); + devstat_add_entry(&adp->stats, "ad", adp->lun, DEV_BSIZE, DEVSTAT_NO_ORDERED_TAGS, DEVSTAT_TYPE_DIRECT | DEVSTAT_TYPE_IF_IDE,