aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaeed Mahameed <saeedm@mellanox.com>2014-10-27 05:37:38 -0400
committerDavid S. Miller <davem@davemloft.net>2014-10-28 17:18:00 -0400
commita53e3e8c1db547981e13d1ebf24a659bd4e87710 (patch)
tree64f931fec68b0b298fcc29a7bf4193891d7b4e37
parentadbc7ac5c15eb5e9d70393428345e72a1a897d6a (diff)
net/mlx4_core: Add ethernet backplane autoneg device capability
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Amir Vadai <amirv@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.c7
-rw-r--r--include/linux/mlx4/device.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 6fd9b8581e95..72289ef5ebbe 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -140,7 +140,8 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
140 [11] = "MAD DEMUX (Secure-Host) support", 140 [11] = "MAD DEMUX (Secure-Host) support",
141 [12] = "Large cache line (>64B) CQE stride support", 141 [12] = "Large cache line (>64B) CQE stride support",
142 [13] = "Large cache line (>64B) EQE stride support", 142 [13] = "Large cache line (>64B) EQE stride support",
143 [14] = "Ethernet protocol control support" 143 [14] = "Ethernet protocol control support",
144 [15] = "Ethernet Backplane autoneg support"
144 }; 145 };
145 int i; 146 int i;
146 147
@@ -575,6 +576,7 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
575#define QUERY_DEV_CAP_BMME_FLAGS_OFFSET 0x94 576#define QUERY_DEV_CAP_BMME_FLAGS_OFFSET 0x94
576#define QUERY_DEV_CAP_RSVD_LKEY_OFFSET 0x98 577#define QUERY_DEV_CAP_RSVD_LKEY_OFFSET 0x98
577#define QUERY_DEV_CAP_MAX_ICM_SZ_OFFSET 0xa0 578#define QUERY_DEV_CAP_MAX_ICM_SZ_OFFSET 0xa0
579#define QUERY_DEV_CAP_ETH_BACKPL_OFFSET 0x9c
578#define QUERY_DEV_CAP_FW_REASSIGN_MAC 0x9d 580#define QUERY_DEV_CAP_FW_REASSIGN_MAC 0x9d
579#define QUERY_DEV_CAP_VXLAN 0x9e 581#define QUERY_DEV_CAP_VXLAN 0x9e
580#define QUERY_DEV_CAP_MAD_DEMUX_OFFSET 0xb0 582#define QUERY_DEV_CAP_MAD_DEMUX_OFFSET 0xb0
@@ -749,6 +751,9 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
749 QUERY_DEV_CAP_BMME_FLAGS_OFFSET); 751 QUERY_DEV_CAP_BMME_FLAGS_OFFSET);
750 MLX4_GET(dev_cap->reserved_lkey, outbox, 752 MLX4_GET(dev_cap->reserved_lkey, outbox,
751 QUERY_DEV_CAP_RSVD_LKEY_OFFSET); 753 QUERY_DEV_CAP_RSVD_LKEY_OFFSET);
754 MLX4_GET(field32, outbox, QUERY_DEV_CAP_ETH_BACKPL_OFFSET);
755 if (field32 & (1 << 0))
756 dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_ETH_BACKPL_AN_REP;
752 MLX4_GET(field, outbox, QUERY_DEV_CAP_FW_REASSIGN_MAC); 757 MLX4_GET(field, outbox, QUERY_DEV_CAP_FW_REASSIGN_MAC);
753 if (field & 1<<6) 758 if (field & 1<<6)
754 dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_REASSIGN_MAC_EN; 759 dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_REASSIGN_MAC_EN;
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 181cd9fc90f2..e4c136ebe79b 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -187,7 +187,8 @@ enum {
187 MLX4_DEV_CAP_FLAG2_MAD_DEMUX = 1LL << 11, 187 MLX4_DEV_CAP_FLAG2_MAD_DEMUX = 1LL << 11,
188 MLX4_DEV_CAP_FLAG2_CQE_STRIDE = 1LL << 12, 188 MLX4_DEV_CAP_FLAG2_CQE_STRIDE = 1LL << 12,
189 MLX4_DEV_CAP_FLAG2_EQE_STRIDE = 1LL << 13, 189 MLX4_DEV_CAP_FLAG2_EQE_STRIDE = 1LL << 13,
190 MLX4_DEV_CAP_FLAG2_ETH_PROT_CTRL = 1LL << 14 190 MLX4_DEV_CAP_FLAG2_ETH_PROT_CTRL = 1LL << 14,
191 MLX4_DEV_CAP_FLAG2_ETH_BACKPL_AN_REP = 1LL << 15
191}; 192};
192 193
193enum { 194enum {