summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2009-10-26 11:20:14 +0000
committermav <mav@FreeBSD.org>2009-10-26 11:20:14 +0000
commit4d4863d52a449616bbb043267dc0972d97a239b8 (patch)
tree63a26e4166d4473755e4690bdef7cef5c64bc75f
parent984a5d433ffe0e65073d9efe3d5b4e8ad2fda46c (diff)
downloadFreeBSD-src-4d4863d52a449616bbb043267dc0972d97a239b8.zip
FreeBSD-src-4d4863d52a449616bbb043267dc0972d97a239b8.tar.gz
Increase ATA command timeouts. Some drives need more then 5s to spin-up.
PR: kern/111023
-rw-r--r--sys/dev/ata/ata-disk.c8
-rw-r--r--sys/dev/ata/ata-queue.c4
-rw-r--r--sys/dev/ata/ata-raid.c4
-rw-r--r--sys/dev/ata/atapi-cd.c2
4 files changed, 9 insertions, 9 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c
index c699a05..58f2245 100644
--- a/sys/dev/ata/ata-disk.c
+++ b/sys/dev/ata/ata-disk.c
@@ -230,7 +230,7 @@ ad_spindown(void *priv)
}
request->dev = dev;
request->flags = ATA_R_CONTROL;
- request->timeout = 5;
+ request->timeout = 10;
request->retries = 1;
request->callback = ad_power_callback;
request->u.ata.command = ATA_STANDBY_IMMEDIATE;
@@ -265,7 +265,7 @@ ad_strategy(struct bio *bp)
request->timeout = 31;
}
else {
- request->timeout = 5;
+ request->timeout = 10;
}
request->retries = 2;
request->data = bp->bio_data;
@@ -468,7 +468,7 @@ ad_set_geometry(device_t dev)
request->u.ata.count = 0;
request->u.ata.feature = 0;
request->flags = ATA_R_CONTROL | ATA_R_QUIET;
- request->timeout = 5;
+ request->timeout = 10;
request->retries = 0;
ata_queue_request(request);
if (request->status & ATA_S_ERROR)
@@ -487,7 +487,7 @@ ad_set_geometry(device_t dev)
request->u.ata.count = 1;
request->u.ata.feature = 0;
request->flags = ATA_R_CONTROL;
- request->timeout = 5;
+ request->timeout = 10;
request->retries = 0;
ata_queue_request(request);
if (request->status & ATA_S_ERROR)
diff --git a/sys/dev/ata/ata-queue.c b/sys/dev/ata/ata-queue.c
index 8856884..c0eb558 100644
--- a/sys/dev/ata/ata-queue.c
+++ b/sys/dev/ata/ata-queue.c
@@ -135,7 +135,7 @@ ata_controlcmd(device_t dev, u_int8_t command, u_int16_t feature,
atadev->spindown_state = 0;
request->timeout = 31;
} else {
- request->timeout = 5;
+ request->timeout = 10;
}
request->retries = 0;
ata_queue_request(request);
@@ -389,7 +389,7 @@ ata_completed(void *context, int dummy)
request->bytecount = sizeof(struct atapi_sense);
request->donecount = 0;
request->transfersize = sizeof(struct atapi_sense);
- request->timeout = 5;
+ request->timeout = 10;
request->flags &= (ATA_R_ATAPI | ATA_R_QUIET | ATA_R_DEBUG);
request->flags |= (ATA_R_READ | ATA_R_AT_HEAD | ATA_R_REQUEUE);
ATA_DEBUG_RQ(request, "autoissue request sense");
diff --git a/sys/dev/ata/ata-raid.c b/sys/dev/ata/ata-raid.c
index fc6a23c..a88284b 100644
--- a/sys/dev/ata/ata-raid.c
+++ b/sys/dev/ata/ata-raid.c
@@ -273,7 +273,7 @@ ata_raid_flush(struct bio *bp)
request->u.ata.lba = 0;
request->u.ata.count = 0;
request->u.ata.feature = 0;
- request->timeout = 1;
+ request->timeout = 10;
request->retries = 0;
request->flags |= ATA_R_ORDERED | ATA_R_DIRECT;
ata_queue_request(request);
@@ -4371,7 +4371,7 @@ ata_raid_init_request(device_t dev, struct ar_softc *rdp, struct bio *bio)
return NULL;
}
request->dev = dev;
- request->timeout = 5;
+ request->timeout = 10;
request->retries = 2;
request->callback = ata_raid_done;
request->driver = rdp;
diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c
index 941c101..2791826 100644
--- a/sys/dev/ata/atapi-cd.c
+++ b/sys/dev/ata/atapi-cd.c
@@ -700,7 +700,7 @@ acd_geom_access(struct g_provider *pp, int dr, int dw, int de)
request->dev = dev;
bcopy(ccb, request->u.atapi.ccb, 16);
request->flags = ATA_R_ATAPI;
- request->timeout = 5;
+ request->timeout = 10;
ata_queue_request(request);
if (!request->error &&
(request->u.atapi.sense.key == 2 ||
OpenPOWER on IntegriCloud