]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/mana_ib: Query feature_flags bitmask from FW
authorShiraz Saleem <shirazsaleem@microsoft.com>
Wed, 5 Feb 2025 10:35:12 +0000 (02:35 -0800)
committerLeon Romanovsky <leon@kernel.org>
Thu, 6 Feb 2025 08:51:13 +0000 (03:51 -0500)
Extend the mana_ib_gd_query_adapter_caps function to retrieve and store
the feature_flags from the firmware response.

Signed-off-by: Shiraz Saleem <shirazsaleem@microsoft.com>
Signed-off-by: Konstantin Taranov <kotaranov@microsoft.com>
Link: https://patch.msgid.link/1738751713-16169-2-git-send-email-kotaranov@linux.microsoft.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/mana/main.c
drivers/infiniband/hw/mana/mana_ib.h
include/net/mana/gdma.h

index ae1fb6983f66647e620926a69799bddd1e73c9f6..3d4b8e21d63a2a07db8fc4379b22d682b6b7aa0d 100644 (file)
@@ -665,7 +665,7 @@ int mana_ib_gd_query_adapter_caps(struct mana_ib_dev *dev)
 
        mana_gd_init_req_hdr(&req.hdr, MANA_IB_GET_ADAPTER_CAP, sizeof(req),
                             sizeof(resp));
-       req.hdr.resp.msg_version = GDMA_MESSAGE_V3;
+       req.hdr.resp.msg_version = GDMA_MESSAGE_V4;
        req.hdr.dev_id = dev->gdma_dev->dev_id;
 
        err = mana_gd_send_request(mdev_to_gc(dev), sizeof(req),
@@ -694,6 +694,7 @@ int mana_ib_gd_query_adapter_caps(struct mana_ib_dev *dev)
        caps->max_inline_data_size = resp.max_inline_data_size;
        caps->max_send_sge_count = resp.max_send_sge_count;
        caps->max_recv_sge_count = resp.max_recv_sge_count;
+       caps->feature_flags = resp.feature_flags;
 
        return 0;
 }
index cd771af22b80453cdbeae9fb82b5dd083cfab134..baaeef0dc8bb40f4d0c8dbb5ff704415732f5001 100644 (file)
@@ -58,6 +58,7 @@ struct mana_ib_adapter_caps {
        u32 max_send_sge_count;
        u32 max_recv_sge_count;
        u32 max_inline_data_size;
+       u64 feature_flags;
 };
 
 struct mana_ib_queue {
@@ -230,6 +231,7 @@ struct mana_ib_query_adapter_caps_resp {
        u32 max_send_sge_count;
        u32 max_recv_sge_count;
        u32 max_inline_data_size;
+       u64 feature_flags;
 }; /* HW Data */
 
 struct mana_rnic_create_adapter_req {
index a94b04ea926faf9ef3485031b471c56ca11571cb..50ffbc408346e1c64396955238898c194cb10640 100644 (file)
@@ -152,6 +152,7 @@ struct gdma_general_req {
 #define GDMA_MESSAGE_V1 1
 #define GDMA_MESSAGE_V2 2
 #define GDMA_MESSAGE_V3 3
+#define GDMA_MESSAGE_V4 4
 
 struct gdma_general_resp {
        struct gdma_resp_hdr hdr;