From: naddy Date: Wed, 14 Jul 2010 19:24:27 +0000 (+0000) Subject: Newer 8168x and 810x chipsets have a different way of stopping the chipset. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=e50ada1571d3f9ba76aa1be8c56449125552fa18;p=openbsd Newer 8168x and 810x chipsets have a different way of stopping the chipset. From FreeBSD via Brad. --- 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);