Stop the SONIC before setting reset, not after...
authorbriggs <briggs@openbsd.org>
Thu, 10 Apr 1997 03:15:59 +0000 (03:15 +0000)
committerbriggs <briggs@openbsd.org>
Thu, 10 Apr 1997 03:15:59 +0000 (03:15 +0000)
sys/arch/mac68k/dev/if_sn.c
sys/arch/mac68k/dev/if_sn_obio.c

index 4dd01df..b92e858 100644 (file)
@@ -1,5 +1,5 @@
 /*     $NetBSD: if_sn.c,v 1.7 1997/03/20 17:47:51 scottr Exp $ */
-/*     $OpenBSD: if_sn.c,v 1.18 1997/04/10 02:35:02 briggs Exp $       */
+/*     $OpenBSD: if_sn.c,v 1.19 1997/04/10 03:15:59 briggs Exp $       */
 
 /*
  * National Semiconductor  SONIC Driver
@@ -131,10 +131,10 @@ snsetup(sc)
         * Put the pup in reset mode (sninit() will fix it later),
         * stop the timer, disable all interrupts and clear any interrupts.
         */
-       NIC_PUT(sc, SNR_CR, CR_RST);
-       wbflush();
        NIC_PUT(sc, SNR_CR, CR_STP);
        wbflush();
+       NIC_PUT(sc, SNR_CR, CR_RST);
+       wbflush();
        NIC_PUT(sc, SNR_IMR, 0);
        wbflush();
        NIC_PUT(sc, SNR_ISR, ISR_ALL);
index bdac74a..a432dd5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_sn_obio.c,v 1.10 1997/04/07 13:03:17 briggs Exp $  */
+/*     $OpenBSD: if_sn_obio.c,v 1.11 1997/04/10 03:16:00 briggs Exp $  */
 
 /*
  * Copyright (C) 1997 Allen Briggs
@@ -214,15 +214,17 @@ sn_obio_getaddr_kludge(sc)
        int                     i, ors=0;
 
        /* Shut down NIC */
-       NIC_PUT(sc, SNR_CR, CR_RST);
-       wbflush();
        NIC_PUT(sc, SNR_CR, CR_STP);
        wbflush();
+       NIC_PUT(sc, SNR_CR, CR_RST);
+       wbflush();
        NIC_PUT(sc, SNR_IMR, 0);
        wbflush();
        NIC_PUT(sc, SNR_ISR, ISR_ALL);
        wbflush();
 
+       NIC_PUT(sc, SNR_CR, CR_RST);
+       wbflush();
        NIC_PUT(sc, SNR_CEP, 15); /* For some reason, Apple fills top first. */
        wbflush();
        i = NIC_GET(sc, SNR_CAP2);