summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaddy <naddy@openbsd.org>2010-07-14 19:24:27 +0000
committernaddy <naddy@openbsd.org>2010-07-14 19:24:27 +0000
commite50ada1571d3f9ba76aa1be8c56449125552fa18 (patch)
treeefb30a266091973e5017aae7b150c0aa84979393
parentMake pane/window wrapping more logical (so with 10 windows, +10 from (diff)
downloadwireguard-openbsd-e50ada1571d3f9ba76aa1be8c56449125552fa18.tar.xz
wireguard-openbsd-e50ada1571d3f9ba76aa1be8c56449125552fa18.zip
Newer 8168x and 810x chipsets have a different way of stopping the chipset.
From FreeBSD via Brad.
-rw-r--r--sys/dev/ic/re.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/ic/re.c b/sys/dev/ic/re.c
index 203119ac88d..ecd58ce86be 100644
--- a/sys/dev/ic/re.c
+++ b/sys/dev/ic/re.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: re.c,v 1.122 2010/07/10 21:00:34 naddy Exp $ */
+/* $OpenBSD: re.c,v 1.123 2010/07/14 19:24:27 naddy Exp $ */
/* $FreeBSD: if_re.c,v 1.31 2004/09/04 07:54:05 ru Exp $ */
/*
* Copyright (c) 1997, 1998-2003
@@ -2178,7 +2178,12 @@ re_stop(struct ifnet *ifp, int disable)
mii_down(&sc->sc_mii);
- CSR_WRITE_1(sc, RL_COMMAND, 0x00);
+ if (sc->rl_flags & RL_FLAG_CMDSTOP)
+ CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_STOPREQ | RL_CMD_TX_ENB |
+ RL_CMD_RX_ENB);
+ else
+ CSR_WRITE_1(sc, RL_COMMAND, 0x00);
+ DELAY(1000);
CSR_WRITE_2(sc, RL_IMR, 0x0000);
CSR_WRITE_2(sc, RL_ISR, 0xFFFF);