aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/etherswitch
diff options
context:
space:
mode:
authorLuiz Otavio O Souza <loos@FreeBSD.org>2019-06-06 21:25:46 +0000
committerLuiz Otavio O Souza <loos@FreeBSD.org>2019-06-06 21:25:46 +0000
commit5429f5f30945fa2580862b1d14c56c3f76e7e1e0 (patch)
treed63844f235f3638af50e1e0c6c826b379b51b31c /sys/dev/etherswitch
parentf02125cdfd48f9820aceb0a9d5982883ff1f2554 (diff)
Notes
Diffstat (limited to 'sys/dev/etherswitch')
-rw-r--r--sys/dev/etherswitch/e6000sw/e6000sw.c6
-rw-r--r--sys/dev/etherswitch/e6000sw/e6000swreg.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/etherswitch/e6000sw/e6000sw.c b/sys/dev/etherswitch/e6000sw/e6000sw.c
index f6301d0abd17..a065970a0166 100644
--- a/sys/dev/etherswitch/e6000sw/e6000sw.c
+++ b/sys/dev/etherswitch/e6000sw/e6000sw.c
@@ -441,10 +441,12 @@ e6000sw_attach(device_t dev)
* Force speed, full-duplex, EEE off and flow-control
* on.
*/
+ reg &= ~(PSC_CONTROL_SPD2500 | PSC_CONTROL_ALT_SPD |
+ PSC_CONTROL_FORCED_EEE);
if (e6000sw_is_fixed25port(sc, port))
- reg = PSC_CONTROL_SPD2500;
+ reg |= PSC_CONTROL_SPD2500;
else
- reg = PSC_CONTROL_SPD1000;
+ reg |= PSC_CONTROL_SPD1000;
reg |= PSC_CONTROL_FORCED_DPX | PSC_CONTROL_FULLDPX |
PSC_CONTROL_FORCED_LINK | PSC_CONTROL_LINK_UP |
PSC_CONTROL_FORCED_FC | PSC_CONTROL_FC_ON |
diff --git a/sys/dev/etherswitch/e6000sw/e6000swreg.h b/sys/dev/etherswitch/e6000sw/e6000swreg.h
index e28e74e190b0..a0823cd8952e 100644
--- a/sys/dev/etherswitch/e6000sw/e6000swreg.h
+++ b/sys/dev/etherswitch/e6000sw/e6000swreg.h
@@ -74,6 +74,7 @@ struct atu_opt {
#define PSC_CONTROL 0x1
#define PSC_CONTROL_FORCED_SPD (1 << 13)
+#define PSC_CONTROL_ALT_SPD (1 << 12)
#define PSC_CONTROL_EEE_ON (1 << 9)
#define PSC_CONTROL_FORCED_EEE (1 << 8)
#define PSC_CONTROL_FC_ON (1 << 7)