|
@@ -968,6 +968,8 @@ int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port, int pkey_tbl_sz)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
+#define SET_PORT_ROCE_2_FLAGS 0x10
|
|
|
+#define MLX4_SET_PORT_ROCE_V1_V2 0x2
|
|
|
int mlx4_SET_PORT_general(struct mlx4_dev *dev, u8 port, int mtu,
|
|
|
u8 pptx, u8 pfctx, u8 pprx, u8 pfcrx)
|
|
|
{
|
|
@@ -987,6 +989,11 @@ int mlx4_SET_PORT_general(struct mlx4_dev *dev, u8 port, int mtu,
|
|
|
context->pprx = (pprx * (!pfcrx)) << 7;
|
|
|
context->pfcrx = pfcrx;
|
|
|
|
|
|
+ if (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ROCE_V1_V2) {
|
|
|
+ context->flags |= SET_PORT_ROCE_2_FLAGS;
|
|
|
+ context->roce_mode |=
|
|
|
+ MLX4_SET_PORT_ROCE_V1_V2 << 4;
|
|
|
+ }
|
|
|
in_mod = MLX4_SET_PORT_GENERAL << 8 | port;
|
|
|
err = mlx4_cmd(dev, mailbox->dma, in_mod, MLX4_SET_PORT_ETH_OPCODE,
|
|
|
MLX4_CMD_SET_PORT, MLX4_CMD_TIME_CLASS_B,
|