Module Name: src
Committed By: msaitoh
Date: Fri Dec 16 08:41:01 UTC 2016
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c
Log Message:
Add missing IFM_FDX.
To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/pci/ixgbe/ixgbe.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.54 src/sys/dev/pci/ixgbe/ixgbe.c:1.55
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.54 Fri Dec 16 08:30:20 2016
+++ src/sys/dev/pci/ixgbe/ixgbe.c Fri Dec 16 08:41:01 2016
@@ -59,7 +59,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
/*$FreeBSD: head/sys/dev/ixgbe/if_ix.c 302384 2016-07-07 03:39:18Z sbruno $*/
-/*$NetBSD: ixgbe.c,v 1.54 2016/12/16 08:30:20 msaitoh Exp $*/
+/*$NetBSD: ixgbe.c,v 1.55 2016/12/16 08:41:01 msaitoh Exp $*/
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -3038,67 +3038,98 @@ ixgbe_add_media_types(struct adapter *ad
layer = adapter->phy_layer;
+#define ADD(mm, dd) \
+ ifmedia_add(&adapter->media, IFM_ETHER | (mm), (dd), NULL);
+
/* Media types with matching NetBSD media defines */
- if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_T)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_T, 0, NULL);
- if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_T)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_T, 0, NULL);
- if (layer & IXGBE_PHYSICAL_LAYER_100BASE_TX)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_100_TX, 0, NULL);
-
+ if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_T) {
+ ADD(IFM_10G_T, 0);
+ ADD(IFM_10G_T | IFM_FDX, 0);
+ }
+ if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_T) {
+ ADD(IFM_1000_T, 0);
+ ADD(IFM_1000_T | IFM_FDX, 0);
+ }
+ if (layer & IXGBE_PHYSICAL_LAYER_100BASE_TX) {
+ ADD(IFM_100_TX, 0);
+ ADD(IFM_100_TX | IFM_FDX, 0);
+ }
+
if (layer & IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU ||
- layer & IXGBE_PHYSICAL_LAYER_SFP_ACTIVE_DA)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_TWINAX, 0, NULL);
+ layer & IXGBE_PHYSICAL_LAYER_SFP_ACTIVE_DA) {
+ ADD(IFM_10G_TWINAX, 0);
+ ADD(IFM_10G_TWINAX | IFM_FDX, 0);
+ }
if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_LR) {
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_LR, 0, NULL);
- if (hw->phy.multispeed_fiber)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_LX, 0, NULL);
+ ADD(IFM_10G_LR, 0);
+ ADD(IFM_10G_LR | IFM_FDX, 0);
+ if (hw->phy.multispeed_fiber) {
+ ADD(IFM_1000_LX, 0);
+ ADD(IFM_1000_LX | IFM_FDX, 0);
+ }
}
if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_SR) {
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_SR, 0, NULL);
- if (hw->phy.multispeed_fiber)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_SX, 0, NULL);
- } else if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_SX)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_SX, 0, NULL);
- if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_CX4)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_CX4, 0, NULL);
+ ADD(IFM_10G_SR, 0);
+ ADD(IFM_10G_SR | IFM_FDX, 0);
+ if (hw->phy.multispeed_fiber) {
+ ADD(IFM_1000_SX, 0);
+ ADD(IFM_1000_SX | IFM_FDX, 0);
+ }
+ } else if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_SX) {
+ ADD(IFM_1000_SX, 0);
+ ADD(IFM_1000_SX | IFM_FDX, 0);
+ }
+ if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_CX4) {
+ ADD(IFM_10G_CX4, 0);
+ ADD(IFM_10G_CX4 | IFM_FDX, 0);
+ }
#ifdef IFM_ETH_XTYPE
- if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_KR)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_KR, 0, NULL);
- if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_KX4)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_KX4, 0, NULL);
- if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_KX)
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_KX, 0, NULL);
+ if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_KR) {
+ ADD(IFM_10G_KR, 0);
+ ADD(IFM_10G_KR | IFM_FDX, 0);
+ }
+ if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_KX4) {
+ ADD(AIFM_10G_KX4, 0);
+ ADD(AIFM_10G_KX4 | IFM_FDX, 0);
+ }
+ if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_KX) {
+ ADD(IFM_1000_KX, 0);
+ ADD(IFM_1000_KX | IFM_FDX, 0);
+ }
#else
if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_KR) {
device_printf(dev, "Media supported: 10GbaseKR\n");
device_printf(dev, "10GbaseKR mapped to 10GbaseSR\n");
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_SR, 0, NULL);
+ ADD(IFM_10G_SR, 0);
+ ADD(IFM_10G_SR | IFM_FDX, 0);
}
if (layer & IXGBE_PHYSICAL_LAYER_10GBASE_KX4) {
device_printf(dev, "Media supported: 10GbaseKX4\n");
device_printf(dev, "10GbaseKX4 mapped to 10GbaseCX4\n");
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_10G_CX4, 0, NULL);
+ ADD(IFM_10G_CX4, 0);
+ ADD(IFM_10G_CX4 | IFM_FDX, 0);
}
if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_KX) {
device_printf(dev, "Media supported: 1000baseKX\n");
device_printf(dev, "1000baseKX mapped to 1000baseCX\n");
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_CX, 0, NULL);
+ ADD(IFM_1000_CX, 0);
+ ADD(IFM_1000_CX | IFM_FDX, 0);
}
#endif
if (layer & IXGBE_PHYSICAL_LAYER_1000BASE_BX)
device_printf(dev, "Media supported: 1000baseBX\n");
+ /* XXX no ifmedia_set? */
if (hw->device_id == IXGBE_DEV_ID_82598AT) {
- ifmedia_add(&adapter->media,
- IFM_ETHER | IFM_1000_T | IFM_FDX, 0, NULL);
- ifmedia_add(&adapter->media,
- IFM_ETHER | IFM_1000_T, 0, NULL);
+ ADD(IFM_1000_T | IFM_FDX, 0);
+ ADD(IFM_1000_T, 0);
}
- ifmedia_add(&adapter->media, IFM_ETHER | IFM_AUTO, 0, NULL);
+ ADD(IFM_AUTO, 0);
+
+#undef ADD
}
static void