summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/re/if_re.c5
-rw-r--r--sys/pci/if_rlreg.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index 8f41278..6709d6d 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -1256,6 +1256,8 @@ re_attach(device_t dev)
break;
case RL_HWREV_8168_SPIN1:
case RL_HWREV_8168_SPIN2:
+ sc->rl_flags |= RL_FLAG_WOLRXENB;
+ /* FALLTHROUGH */
case RL_HWREV_8168_SPIN3:
sc->rl_flags |= RL_FLAG_INVMAR | RL_FLAG_PHYWAKE |
RL_FLAG_MACSTAT;
@@ -3016,6 +3018,9 @@ re_setwol(struct rl_softc *sc)
return;
ifp = sc->rl_ifp;
+ if ((ifp->if_capenable & IFCAP_WOL) != 0 &&
+ (sc->rl_flags & RL_FLAG_WOLRXENB) != 0)
+ CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_RX_ENB);
/* Enable config register write. */
CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE);
diff --git a/sys/pci/if_rlreg.h b/sys/pci/if_rlreg.h
index 229e971..d9df78c 100644
--- a/sys/pci/if_rlreg.h
+++ b/sys/pci/if_rlreg.h
@@ -887,6 +887,7 @@ struct rl_softc {
#define RL_FLAG_CMDSTOP 0x0200
#define RL_FLAG_PHY8169 0x0400
#define RL_FLAG_PHY8110S 0x0800
+#define RL_FLAG_WOLRXENB 0x1000
#define RL_FLAG_LINK 0x8000
};
OpenPOWER on IntegriCloud