FreeBSD/sys/dev/cm/smc90cx6.c
/*
 * watchdog routine for transmitter.
 *
 * We need this, because else a receiver whose hardware is alive, but whose
 * software has not enabled the Receiver, would make our hardware wait forever
 * Discovered this after 20 times reading the docs.
 *
 * Only thing we do is disable transmitter. We'll get a transmit timeout,
 * and the int handler will have to decide not to retransmit (in case
 * retransmission is implemented).
 */
watchdog routine for transmitter.
We need this, because else a receiver whose hardware is alive, but whose
software has not enabled the Receiver, would make our hardware wait forever
Discovered this after 20 times reading the docs.

Only thing we do is disable transmitter. We'll get a transmit timeout,
and the int handler will have to decide not to retransmit (in case
retransmission is implemented).
watchdog routine for transmitter . We need this because else a receiver whose hardware is alive but whose software has not enabled the Receiver would make our hardware wait forever Discovered this after 20 times reading the docs . Only thing we do is disable transmitter . We ' ll get a transmit timeout and the int handler will have to decide not to retransmit ( in case retransmission is implemented ) .
void
cm_watchdog(void *arg)
{
	struct cm_softc *sc;
	sc = arg;
	callout_reset(&sc->sc_watchdog_timer, hz, cm_watchdog, sc);
	if (sc->sc_timer == 0 || --sc->sc_timer > 0)
		return;
	PUTREG(CMCMD, CM_TXDIS);
}
void cm_watchdog ( void * arg ) { struct cm_softc * sc ; sc = arg ; callout_reset ( & sc -> sc_watchdog_timer , hz , cm_watchdog , sc ) ; if ( sc -> sc_timer == 0 || -- sc -> sc_timer > 0 ) return ; PUTREG ( CMCMD , CM_TXDIS ) ; }
watchdog routine for transmitter.
watchdog routine for transmitter .