On Mon, Oct 14, 2024 at 10:55:58AM -0700, Selvin Xavier wrote: > From: Kalesh AP <kalesh-anakkur.purayil@xxxxxxxxxxxx> > > Modify QP improvements are for state transitions > from INIT -> RTR and RTR -> RTS. > In order to support the Modify QP Optimization feature, > the driver is expected to check for the feature support > in the CMDQ_QUERY_FUNC and register its support for this > feature with the FW in CMDQ_INITIALIZE_FIRMWARE. > > Additionally, the driver is required to specify the new > fields and attribute masks for the transitions as follows: > 1. INIT -> RTR: > - New fields: srq_used, type. > - enable srq_used when RC QP is configured to use SRQ. > - set the type based on the QP type. > - Mandatory masks: > - RC: CMDQ_MODIFY_QP_MODIFY_MASK_ACCESS, > CMDQ_MODIFY_QP_MODIFY_MASK_PKEY > - UD QP and QP1: CMDQ_MODIFY_QP_MODIFY_MASK_PKEY, > CMDQ_MODIFY_QP_MODIFY_MASK_QKEY > 2. RTR -> RTS: > - New fields: type > - set the type based on the QP type. > - Mandatory masks: > - RC: CMDQ_MODIFY_QP_MODIFY_MASK_ACCESS > - UD QP and QP1: CMDQ_MODIFY_QP_MODIFY_MASK_QKEY > > Reviewed-by: Saravanan Vajravel <saravanan.vajravel@xxxxxxxxxxxx> > Reviewed-by: Tushar Rane <tushar.rane@xxxxxxxxxxxx> > Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@xxxxxxxxxxxx> > Signed-off-by: Selvin Xavier <selvin.xavier@xxxxxxxxxxxx> > --- > drivers/infiniband/hw/bnxt_re/qplib_fp.c | 40 ++++++++++++++++++++++++++++++ > drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 6 ++++- > drivers/infiniband/hw/bnxt_re/qplib_res.h | 5 ++++ > drivers/infiniband/hw/bnxt_re/roce_hsi.h | 3 +++ > 4 files changed, 53 insertions(+), 1 deletion(-) <...> > diff --git a/drivers/infiniband/hw/bnxt_re/roce_hsi.h b/drivers/infiniband/hw/bnxt_re/roce_hsi.h > index 3ec8952..69d50d7 100644 > --- a/drivers/infiniband/hw/bnxt_re/roce_hsi.h > +++ b/drivers/infiniband/hw/bnxt_re/roce_hsi.h > @@ -216,6 +216,8 @@ struct cmdq_initialize_fw { > __le16 flags; > #define CMDQ_INITIALIZE_FW_FLAGS_MRAV_RESERVATION_SPLIT 0x1UL > #define CMDQ_INITIALIZE_FW_FLAGS_HW_REQUESTER_RETX_SUPPORTED 0x2UL > + #define CMDQ_INITIALIZE_FW_FLAGS_DRV_VERSION 0x4UL Where is this define used? > + #define CMDQ_INITIALIZE_FW_FLAGS_OPTIMIZE_MODIFY_QP_SUPPORTED 0x8UL Thanks