Linux 6.9-rc1
[linux-2.6-microblaze.git] / include / linux / qed / rdma_common.h
1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2 /* QLogic qed NIC Driver
3  * Copyright (c) 2015-2017  QLogic Corporation
4  * Copyright (c) 2019-2020 Marvell International Ltd.
5  */
6
7 #ifndef __RDMA_COMMON__
8 #define __RDMA_COMMON__
9
10 /************************/
11 /* RDMA FW CONSTANTS */
12 /************************/
13
14 #define RDMA_RESERVED_LKEY              (0)
15 #define RDMA_RING_PAGE_SIZE             (0x1000)
16
17 #define RDMA_MAX_SGE_PER_SQ_WQE         (4)
18 #define RDMA_MAX_SGE_PER_RQ_WQE         (4)
19
20 #define RDMA_MAX_DATA_SIZE_IN_WQE       (0x80000000)
21
22 #define RDMA_REQ_RD_ATOMIC_ELM_SIZE     (0x50)
23 #define RDMA_RESP_RD_ATOMIC_ELM_SIZE    (0x20)
24
25 #define RDMA_MAX_CQS                    (64 * 1024)
26 #define RDMA_MAX_TIDS                   (128 * 1024 - 1)
27 #define RDMA_MAX_PDS                    (64 * 1024)
28 #define RDMA_MAX_XRC_SRQS                       (1024)
29 #define RDMA_MAX_SRQS                           (32 * 1024)
30 #define RDMA_MAX_IRQ_ELEMS_IN_PAGE      (128)
31
32 #define RDMA_NUM_STATISTIC_COUNTERS     MAX_NUM_VPORTS
33 #define RDMA_NUM_STATISTIC_COUNTERS_K2  MAX_NUM_VPORTS_K2
34 #define RDMA_NUM_STATISTIC_COUNTERS_BB  MAX_NUM_VPORTS_BB
35
36 #define RDMA_TASK_TYPE (PROTOCOLID_ROCE)
37
38 struct rdma_srq_id {
39         __le16 srq_idx;
40         __le16 opaque_fid;
41 };
42
43 struct rdma_srq_producers {
44         __le32 sge_prod;
45         __le32 wqe_prod;
46 };
47
48 #endif /* __RDMA_COMMON__ */