On Mon, Dec 8, 2014 at 1:48 AM, Yuval Shaia <[email protected]> wrote:
> 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.


The problem with this patch is that the current practice is to only
advertize a feature as a string in this table when **both** the driver
and the firmware support it.

We can make a fix here to add dumping for features which are currently
supported on that level but not dumped today (e.g WoL and such).

You can have a look on the MLX4_DEV_CAP_FLAG_ enum under
include/linux/mlx4/device.h to pick up such values (used by the driver
but aren't dumped as dev-caps)

Or.


>
> Signed-off-by: Yuval Shaia <[email protected]>
> ---
>  drivers/net/ethernet/mellanox/mlx4/fw.c |   37 +++++++++++++++++++++++++++---
>  1 files changed, 33 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c 
> b/drivers/net/ethernet/mellanox/mlx4/fw.c
> index 2e88a23..79ab326 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,16 +102,40 @@ 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",
> +               [55] = "Link Sensing support",
> +               [56] = "Reliable Multicast support",
> +               [57] = "Fast Drop support",
> +               [58] = "Protected FMR support",
>                 [53] = "Port ETS Scheduler support",
>                 [55] = "Port link type sensing support",
>                 [59] = "Port management change event support",
> @@ -119,8 +146,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 +172,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
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to