summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2010-11-28 01:16:37 +0000
committeryongari <yongari@FreeBSD.org>2010-11-28 01:16:37 +0000
commitc51ef9c35267fee5fbc8b7bea0411cbd3440a47d (patch)
treee623a39ac733e861814f22bec5c4eb778e977516
parent1f0dbbc5b67c8339aedcff487cc94750fbf42113 (diff)
downloadFreeBSD-src-c51ef9c35267fee5fbc8b7bea0411cbd3440a47d.zip
FreeBSD-src-c51ef9c35267fee5fbc8b7bea0411cbd3440a47d.tar.gz
Do full controller initialization in axe_reset() for controllers
that require special configuration from EEPROM. This will put controllers into known sane state.
-rw-r--r--sys/dev/usb/net/if_axe.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/usb/net/if_axe.c b/sys/dev/usb/net/if_axe.c
index 847c7e7..5ee9c77 100644
--- a/sys/dev/usb/net/if_axe.c
+++ b/sys/dev/usb/net/if_axe.c
@@ -671,6 +671,12 @@ axe_reset(struct axe_softc *sc)
/* Wait a little while for the chip to get its brains in order. */
uether_pause(&sc->sc_ue, hz / 100);
+
+ /* Reinitialize controller to achieve full reset. */
+ if (sc->sc_flags & AXE_FLAG_178)
+ axe_ax88178_init(sc);
+ else if (sc->sc_flags & AXE_FLAG_772)
+ axe_ax88772_init(sc);
}
static void
OpenPOWER on IntegriCloud