diff options
author | Saeed Mahameed <saeedm@mellanox.com> | 2014-10-27 05:37:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-28 17:18:00 -0400 |
commit | a53e3e8c1db547981e13d1ebf24a659bd4e87710 (patch) | |
tree | 64f931fec68b0b298fcc29a7bf4193891d7b4e37 | |
parent | adbc7ac5c15eb5e9d70393428345e72a1a897d6a (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.c | 7 | ||||
-rw-r--r-- | include/linux/mlx4/device.h | 3 |
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 | ||
193 | enum { | 194 | enum { |