[PATCH] mlx4_core: Enhance device capabilities flags debug printouts

Yuval Shaia
2014-12-14T19:18:53Z

1. Add indication whether feature is supported or not.
2. Add descriptions of all features.
Without this fix there is no way to tell if feature is not supported or that description is not exist.

Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
---
drivers/net/ethernet/mellanox/mlx4/fw.c | 36 +++++++++++++++++++++++++++---
1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 2e88a23..4fd00e4 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -91,7 +91,10 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags)
[ 8] = "P_Key violation counter",
[ 9] = "Q_Key violation counter",
[10] = "VMM",
+ [11] = "Fibre Channel Protocol On Ethernet Ports support",
[12] = "Dual Port Different Protocol (DPDP) support",
+ [13] = "Raw Ethertype support",
+ [14] = "Raw IPv6 support",
[15] = "Big LSO headers",
[16] = "MW support",
[17] = "APM support",
@@ -99,18 +102,41 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags)
[19] = "Raw multicast support",
[20] = "Address vector port checking support",
[21] = "UD multicast support",
+ [22] = "UD IPv4 Multicast support",
[24] = "Demand paging support",
[25] = "Router support",
+ [26] = "L2 Ethernet Multicast support",
+ [28] = "Software parsing support for UD transport",
+ [29] = "TCP checksum off-load support",
[30] = "IBoE support",
+ [31] = "FCoE T11 frame format support",
[32] = "Unicast loopback support",
+ [33] = "Multicast loopback support",
[34] = "FCS header control",
+ [35] = "Address Path ud_force_mgid support",
+ [36] = "Header-Data Split support",
+ [37] = "Wake On LAN support on port 1",
+ [38] = "Wake On LAN support on port 2",
+ [39] = "Fatal Warning Event upon a thermal warning condition",
[38] = "Wake On LAN support",
[40] = "UDP RSS support",
[41] = "Unicast VEP steering support",
[42] = "Multicast VEP steering support",
+ [43] = "VLAN Steering mechanism support",
+ [44] = "Steering according to EtherType support",
+ [45] = "WQE format version 1 support",
+ [46] = "Keep Alive Validiation support",
+ [47] = "PTP1588 support",
[48] = "Counters support",
+ [49] = "Advanced Counters support",
+ [50] = "Force Ethernet user priority from QPC support",
+ [51] = "RX Port Num check disabled",
+ [52] = "RSS on fragmented IP datagram support",
[53] = "Port ETS Scheduler support",
[55] = "Port link type sensing support",
+ [56] = "Reliable Multicast support",
+ [57] = "Fast Drop support",
+ [58] = "Protected FMR support",
[59] = "Port management change event support",
[61] = "64 byte EQE support",
[62] = "64 byte CQE support",
@@ -119,8 +145,9 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags)

mlx4_dbg(dev, "DEV_CAP flags:\n");
for (i = 0; i < ARRAY_SIZE(fname); ++i)
- if (fname[i] && (flags & (1LL << i)))
- mlx4_dbg(dev, " %s\n", fname[i]);
+ if (fname[i])
+ mlx4_dbg(dev, " (%c) %s\n", (flags & (1LL << i)) ?
+ '*' : ' ', fname[i]);
}

static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
@@ -144,8 +171,9 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
int i;

for (i = 0; i < ARRAY_SIZE(fname); ++i)
- if (fname[i] && (flags & (1LL << i)))
- mlx4_dbg(dev, " %s\n", fname[i]);
+ if (fname[i])
+ mlx4_dbg(dev, " (%c) %s\n", (flags & (1LL << i)) ?
+ '*' : ' ', fname[i]);
}

int mlx4_MOD_STAT_CFG(struct mlx4_dev *dev, struct mlx4_mod_stat_cfg *cfg)
--
1.7.1