]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net/mlx5: Expose TLP emulation capabilities
authorMaher Sanalla <msanalla@nvidia.com>
Wed, 25 Feb 2026 14:19:32 +0000 (16:19 +0200)
committerLeon Romanovsky <leonro@nvidia.com>
Thu, 5 Mar 2026 10:33:58 +0000 (05:33 -0500)
Expose and query TLP device emulation caps on driver load.

Signed-off-by: Maher Sanalla <msanalla@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/fw.c
drivers/net/ethernet/mellanox/mlx5/core/main.c
include/linux/mlx5/device.h

index eeb4437975f20af585be5553ec49f249e8e9107f..55249f4058416ff6c5ad51cfe713f6d7062ff02a 100644 (file)
@@ -255,6 +255,12 @@ int mlx5_query_hca_caps(struct mlx5_core_dev *dev)
                        return err;
        }
 
+       if (MLX5_CAP_GEN(dev, tlp_device_emulation_manager)) {
+               err = mlx5_core_get_caps_mode(dev, MLX5_CAP_TLP_EMULATION, HCA_CAP_OPMOD_GET_CUR);
+               if (err)
+                       return err;
+       }
+
        if (MLX5_CAP_GEN(dev, ipsec_offload)) {
                err = mlx5_core_get_caps_mode(dev, MLX5_CAP_IPSEC, HCA_CAP_OPMOD_GET_CUR);
                if (err)
index fdc3ba20912e4fbc53c65825c62e868996eff56d..b0bc4a7d4a93a4221c69b0da90bc3710118eae8d 100644 (file)
@@ -1772,6 +1772,7 @@ static const int types[] = {
        MLX5_CAP_CRYPTO,
        MLX5_CAP_SHAMPO,
        MLX5_CAP_ADV_RDMA,
+       MLX5_CAP_TLP_EMULATION,
 };
 
 static void mlx5_hca_caps_free(struct mlx5_core_dev *dev)
index b37fe39cef2737b94a9407fb823244933abf7647..25c6b42140b2c69efe342808ceb5793ad8b369da 100644 (file)
@@ -1259,6 +1259,7 @@ enum mlx5_cap_type {
        MLX5_CAP_PORT_SELECTION = 0x25,
        MLX5_CAP_ADV_VIRTUALIZATION = 0x26,
        MLX5_CAP_ADV_RDMA = 0x28,
+       MLX5_CAP_TLP_EMULATION = 0x2a,
        /* NUM OF CAP Types */
        MLX5_CAP_NUM
 };
@@ -1481,6 +1482,14 @@ enum mlx5_qcam_feature_groups {
        MLX5_GET64(virtio_emulation_cap, \
                (mdev)->caps.hca[MLX5_CAP_VDPA_EMULATION]->cur, cap)
 
+#define MLX5_CAP_DEV_TLP_EMULATION(mdev, cap)\
+       MLX5_GET(tlp_dev_emu_capabilities, \
+               (mdev)->caps.hca[MLX5_CAP_TLP_EMULATION]->cur, cap)
+
+#define MLX5_CAP64_DEV_TLP_EMULATION(mdev, cap)\
+       MLX5_GET64(tlp_dev_emu_capabilities, \
+               (mdev)->caps.hca[MLX5_CAP_TLP_EMULATION]->cur, cap)
+
 #define MLX5_CAP_IPSEC(mdev, cap)\
        MLX5_GET(ipsec_cap, (mdev)->caps.hca[MLX5_CAP_IPSEC]->cur, cap)