git: 2a580b30cf26 - main - cxgbe: Query the ability to use RDMA WRITE_WITH_IMMEDIATE requests

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Tue, 15 Sep 2026 14:47:41 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=2a580b30cf26736e4921490276ffd3ebb20990de

commit 2a580b30cf26736e4921490276ffd3ebb20990de
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-09-14 15:37:23 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-09-15 14:22:38 +0000

    cxgbe: Query the ability to use RDMA WRITE_WITH_IMMEDIATE requests
    
    Sponsored by:   Chelsio Communications
---
 sys/dev/cxgbe/common/common.h | 1 +
 sys/dev/cxgbe/t4_main.c       | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/sys/dev/cxgbe/common/common.h b/sys/dev/cxgbe/common/common.h
index fcc728a8bf31..4833678ceff1 100644
--- a/sys/dev/cxgbe/common/common.h
+++ b/sys/dev/cxgbe/common/common.h
@@ -470,6 +470,7 @@ struct adapter_params {
 	bool fr_nsmr_tpte_wr_support;	/* FW support for FR_NSMR_TPTE_WR */
 	bool dev_512sgl_mr;		/* FW support for 512 SGL per FR MR */
 	bool viid_smt_extn_support;	/* FW returns vin, vfvld & smt index? */
+	bool write_w_imm_support;	/* FW supports WRITE_WITH_IMMEDIATE */
 	unsigned int max_pkts_per_eth_tx_pkts_wr;
 	uint8_t nsched_cls;		/* # of usable sched classes per port */
 
diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c
index 573c8f71b084..fb3be3d1e71d 100644
--- a/sys/dev/cxgbe/t4_main.c
+++ b/sys/dev/cxgbe/t4_main.c
@@ -5973,6 +5973,11 @@ get_params__post_init(struct adapter *sc)
 		sc->vres.srq.size = val[3] - val[2] + 1;
 		sc->params.max_ordird_qp = val[4];
 		sc->params.max_ird_adapter = val[5];
+
+		param[0] = FW_PARAM_DEV(RDMA_WRITE_WITH_IMM);
+		rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, param, val);
+		if (rc == 0 && val[0] != 0)
+			sc->params.write_w_imm_support = true;
 	}
 	if (sc->iscsicaps) {
 		param[0] = FW_PARAM_PFVF(ISCSI_START);