Author: mav Date: Mon Oct 26 11:20:14 2009 New Revision: 198486 URL: http://svn.freebsd.org/changeset/base/198486
Log: Increase ATA command timeouts. Some drives need more then 5s to spin-up. PR: kern/111023 Modified: head/sys/dev/ata/ata-disk.c head/sys/dev/ata/ata-queue.c head/sys/dev/ata/ata-raid.c head/sys/dev/ata/atapi-cd.c Modified: head/sys/dev/ata/ata-disk.c ============================================================================== --- head/sys/dev/ata/ata-disk.c Mon Oct 26 11:00:37 2009 (r198485) +++ head/sys/dev/ata/ata-disk.c Mon Oct 26 11:20:14 2009 (r198486) @@ -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) Modified: head/sys/dev/ata/ata-queue.c ============================================================================== --- head/sys/dev/ata/ata-queue.c Mon Oct 26 11:00:37 2009 (r198485) +++ head/sys/dev/ata/ata-queue.c Mon Oct 26 11:20:14 2009 (r198486) @@ -135,7 +135,7 @@ ata_controlcmd(device_t dev, u_int8_t co 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"); Modified: head/sys/dev/ata/ata-raid.c ============================================================================== --- head/sys/dev/ata/ata-raid.c Mon Oct 26 11:00:37 2009 (r198485) +++ head/sys/dev/ata/ata-raid.c Mon Oct 26 11:20:14 2009 (r198486) @@ -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, stru return NULL; } request->dev = dev; - request->timeout = 5; + request->timeout = 10; request->retries = 2; request->callback = ata_raid_done; request->driver = rdp; Modified: head/sys/dev/ata/atapi-cd.c ============================================================================== --- head/sys/dev/ata/atapi-cd.c Mon Oct 26 11:00:37 2009 (r198485) +++ head/sys/dev/ata/atapi-cd.c Mon Oct 26 11:20:14 2009 (r198486) @@ -700,7 +700,7 @@ acd_geom_access(struct g_provider *pp, i 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 || _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"