Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Feb 1996 10:29:32 +0500 (GMT+0500)
From:      "Serge A. Babkin" <babkin@hq.icb.chel.su>
To:        davidg@Root.COM
Cc:        alexis@unicorn.ww.net, hackers@FreeBSD.org
Subject:   Re: ep driver
Message-ID:  <199602060529.KAA02691@hq.icb.chel.su>
In-Reply-To: <199602051527.HAA02845@Root.COM> from "David Greenman" at Feb 5, 96 07:27:42 am

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> >working is to enable its epwatchdog() routine:
> >
> >add "ifp->if_timer = 1;" after " "ifp->if_watchdog = epwatchdog;"
> >
> >The reason why David Greenman has disabled it is that he throught that
> >epwarchdog() restes the card. But really it does not reset it.
> 
>    Actually, what I objected to was the general use of the watchdog routine
> to cover up what is clearly one or more serious bugs in the driver. The
> watchdog routine in this case is being used in a way that is entirely
> inappropriate and if removing the kludge causes the driver to occasionally
> hang, then someone should go find out why and fix it!

Okay, I think I understand you now. This patch must help. The card
looks to be working with it.


*** if_ep.c	Fri Feb  2 08:42:17 1996
--- if_ep.c	Tue Feb  6 10:20:23 1996
***************
*** 764,769 ****
--- 764,770 ----
      }
  #endif
  
+      ifp->if_timer=2;
      sc->arpcom.ac_if.if_opackets++;
      m_freem(top);
      /*
***************
*** 819,830 ****
--- 820,833 ----
  	}
  	if (status & S_TX_AVAIL) {
  	    /* we need ACK */
+  	    ifp->if_timer=0;
  	    sc->arpcom.ac_if.if_flags &= ~IFF_OACTIVE;
  	    GO_WINDOW(1);
  	    inw(BASE + EP_W1_FREE_TX);
  	    epstart(&sc->arpcom.ac_if);
  	}
  	if (status & S_CARD_FAILURE) {
+  	    ifp->if_timer=0;
  #ifdef EP_LOCAL_STATS
  	    printf("\nep%d:\n\tStatus: %x\n", unit, status);
  	    GO_WINDOW(4);
***************
*** 849,854 ****
--- 852,858 ----
  	    return;
  	}
  	if (status & S_TX_COMPLETE) {
+  	    ifp->if_timer=0;
  	    /* we  need ACK. we do it at the end */
  	    /*
  	     * We need to read TX_STATUS until we get a 0 status in order to



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602060529.KAA02691>