summaryrefslogtreecommitdiffstats
path: root/sys/dev/ic/siop.c
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2001-02-20 05:18:43 +0000
committerkrw <krw@openbsd.org>2001-02-20 05:18:43 +0000
commit18f146f3651bb55cb79e017c1f83c8afaa26e6b2 (patch)
tree961968662bbb6a563484ad284d667d5711f53975 /sys/dev/ic/siop.c
parentAdd manpage for uftdi. (diff)
downloadwireguard-openbsd-18f146f3651bb55cb79e017c1f83c8afaa26e6b2.tar.xz
wireguard-openbsd-18f146f3651bb55cb79e017c1f83c8afaa26e6b2.zip
If you can't do wide xfers, don't tempt the targets by offering
it. They might not turn you down. Spotted by drahn@.
Diffstat (limited to 'sys/dev/ic/siop.c')
-rw-r--r--sys/dev/ic/siop.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/ic/siop.c b/sys/dev/ic/siop.c
index 1026e69fe7a..55706e19319 100644
--- a/sys/dev/ic/siop.c
+++ b/sys/dev/ic/siop.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: siop.c,v 1.2 2001/02/20 00:32:28 krw Exp $ */
+/* $OpenBSD: siop.c,v 1.3 2001/02/20 05:18:43 krw Exp $ */
/* $NetBSD: siop.c,v 1.39 2001/02/11 18:04:49 bouyer Exp $ */
/*
@@ -1304,7 +1304,12 @@ siop_scsicmd(xs)
return(TRY_AGAIN_LATER);
}
sc->targets[target]->status = TARST_PROBING;
- sc->targets[target]->flags = TARF_WIDE | TARF_SYNC;
+
+ if (sc->features & SF_BUS_WIDE)
+ sc->targets[target]->flags = TARF_SYNC | TARF_WIDE;
+ else
+ sc->targets[target]->flags = TARF_SYNC;
+
sc->targets[target]->id = sc->clock_div << 24; /* scntl3 */
sc->targets[target]->id |= target << 16; /* id */
/* sc->targets[target]->id |= 0x0 << 8; scxfer is 0 */