summaryrefslogtreecommitdiff
path: root/sys/arch/amiga/dev/siop.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amiga/dev/siop.c')
-rw-r--r--sys/arch/amiga/dev/siop.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/sys/arch/amiga/dev/siop.c b/sys/arch/amiga/dev/siop.c
index 760a5d073e6..c30b9cfb1ec 100644
--- a/sys/arch/amiga/dev/siop.c
+++ b/sys/arch/amiga/dev/siop.c
@@ -1,4 +1,4 @@
-/* $NetBSD: siop.c,v 1.25 1995/09/29 13:52:04 chopps Exp $ */
+/* $NetBSD: siop.c,v 1.25.2.1 1995/11/24 07:51:23 chopps Exp $ */
/*
* Copyright (c) 1994 Michael L. Hitch
@@ -520,6 +520,11 @@ void
siopinitialize(sc)
struct siop_softc *sc;
{
+ int i;
+ u_int inhibit_sync;
+ extern u_long scsi_nosync;
+ extern int shift_nosync;
+
/*
* Need to check that scripts is on a long word boundary
* and that DS is on a long word boundary.
@@ -547,6 +552,19 @@ siopinitialize(sc)
sc->sc_tcp[0] = 3000 / sc->sc_clock_freq;
}
+ if (scsi_nosync) {
+ inhibit_sync = (scsi_nosync >> shift_nosync) & 0xff;
+ shift_nosync += 8;
+#ifdef DEBUG
+ if (inhibit_sync)
+ printf("%s: Inhibiting synchronous transfer %02x\n",
+ sc->sc_dev.dv_xname, inhibit_sync);
+#endif
+ for (i = 0; i < 8; ++i)
+ if (inhibit_sync & (1 << i))
+ siop_inhibit_sync[i] = 1;
+ }
+
siopreset (sc);
}