aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2000-08-06 18:01:47 +0000
committerSøren Schmidt <sos@FreeBSD.org>2000-08-06 18:01:47 +0000
commite7d1a5c2b16ba147f127587831f729e73f32522a (patch)
tree5b44703d64e16917195d97c5ec3f60df0d05915d /sys/dev/ata
parent1da729a59ed7a72493cf02725db053ddd8a7d1ad (diff)
Notes
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-disk.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c
index a11e76635d612..cd09f8329b6c4 100644
--- a/sys/dev/ata/ata-disk.c
+++ b/sys/dev/ata/ata-disk.c
@@ -117,11 +117,13 @@ ad_attach(struct ata_softc *scp, int32_t device)
/* use multiple sectors/interrupt if device supports it */
adp->transfersize = DEV_BSIZE;
- secsperint = max(1, min(AD_PARAM->nsecperint, 16));
- if (!ata_command(adp->controller, adp->unit, ATA_C_SET_MULTI,
- 0, 0, 0, secsperint, 0, ATA_WAIT_INTR) &&
- ata_wait(adp->controller, adp->unit, ATA_S_READY) >= 0)
+ if (ad_version(AD_PARAM->versmajor)) {
+ secsperint = max(1, min(AD_PARAM->nsecperint, 16));
+ if (!ata_command(adp->controller, adp->unit, ATA_C_SET_MULTI,
+ 0, 0, 0, secsperint, 0, ATA_WAIT_INTR) &&
+ ata_wait(adp->controller, adp->unit, ATA_S_READY) >= 0)
adp->transfersize *= secsperint;
+ }
/* enable read/write cacheing if not default on device */
if (ata_command(adp->controller, adp->unit, ATA_C_SETFEATURES,