aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRam Amrani <Ram.Amrani@caviumnetworks.com>2016-10-01 14:59:58 -0400
committerDavid S. Miller <davem@davemloft.net>2016-10-03 23:22:47 -0400
commitc295f86e60f5ba67f0f4bba2bb2c22b3cbf01ec1 (patch)
tree3642b82c16e2e3750eb4a36f4deaebf01062d7a8 /include
parent51ff17251c9c2c2e71974149d22bc73ea09c27cc (diff)
qed: PD,PKEY and CQ verb support
Add support for the configurations of the protection domain and completion queues. Signed-off-by: Ram Amrani <Ram.Amrani@caviumnetworks.com> Signed-off-by: Yuval Mintz <Yuval.Mintz@caviumnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/qed/qed_roce_if.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/linux/qed/qed_roce_if.h b/include/linux/qed/qed_roce_if.h
index 0f7d5275e515..b559b1c9e76d 100644
--- a/include/linux/qed/qed_roce_if.h
+++ b/include/linux/qed/qed_roce_if.h
@@ -263,6 +263,19 @@ struct qed_rdma_register_tid_in_params {
263 u64 dif_runt_addr; 263 u64 dif_runt_addr;
264}; 264};
265 265
266struct qed_rdma_create_cq_in_params {
267 u32 cq_handle_lo;
268 u32 cq_handle_hi;
269 u32 cq_size;
270 u16 dpi;
271 bool pbl_two_level;
272 u64 pbl_ptr;
273 u16 pbl_num_pages;
274 u8 pbl_page_size_log;
275 u8 cnq_id;
276 u16 int_timeout;
277};
278
266struct qed_rdma_create_srq_in_params { 279struct qed_rdma_create_srq_in_params {
267 u64 pbl_base_addr; 280 u64 pbl_base_addr;
268 u64 prod_pair_addr; 281 u64 prod_pair_addr;
@@ -271,6 +284,14 @@ struct qed_rdma_create_srq_in_params {
271 u16 page_size; 284 u16 page_size;
272}; 285};
273 286
287struct qed_rdma_destroy_cq_in_params {
288 u16 icid;
289};
290
291struct qed_rdma_destroy_cq_out_params {
292 u16 num_cq_notif;
293};
294
274struct qed_rdma_create_srq_out_params { 295struct qed_rdma_create_srq_out_params {
275 u16 srq_id; 296 u16 srq_id;
276}; 297};
@@ -332,12 +353,21 @@ struct qed_rdma_ops {
332 void (*rdma_remove_user)(void *rdma_cxt, u16 dpi); 353 void (*rdma_remove_user)(void *rdma_cxt, u16 dpi);
333 int (*rdma_stop)(void *rdma_cxt); 354 int (*rdma_stop)(void *rdma_cxt);
334 struct qed_rdma_device* (*rdma_query_device)(void *rdma_cxt); 355 struct qed_rdma_device* (*rdma_query_device)(void *rdma_cxt);
356 struct qed_rdma_port* (*rdma_query_port)(void *rdma_cxt);
335 int (*rdma_get_start_sb)(struct qed_dev *cdev); 357 int (*rdma_get_start_sb)(struct qed_dev *cdev);
336 int (*rdma_get_min_cnq_msix)(struct qed_dev *cdev); 358 int (*rdma_get_min_cnq_msix)(struct qed_dev *cdev);
337 void (*rdma_cnq_prod_update)(void *rdma_cxt, u8 cnq_index, u16 prod); 359 void (*rdma_cnq_prod_update)(void *rdma_cxt, u8 cnq_index, u16 prod);
338 int (*rdma_get_rdma_int)(struct qed_dev *cdev, 360 int (*rdma_get_rdma_int)(struct qed_dev *cdev,
339 struct qed_int_info *info); 361 struct qed_int_info *info);
340 int (*rdma_set_rdma_int)(struct qed_dev *cdev, u16 cnt); 362 int (*rdma_set_rdma_int)(struct qed_dev *cdev, u16 cnt);
363 int (*rdma_alloc_pd)(void *rdma_cxt, u16 *pd);
364 void (*rdma_dealloc_pd)(void *rdma_cxt, u16 pd);
365 int (*rdma_create_cq)(void *rdma_cxt,
366 struct qed_rdma_create_cq_in_params *params,
367 u16 *icid);
368 int (*rdma_destroy_cq)(void *rdma_cxt,
369 struct qed_rdma_destroy_cq_in_params *iparams,
370 struct qed_rdma_destroy_cq_out_params *oparams);
341}; 371};
342 372
343const struct qed_rdma_ops *qed_get_rdma_ops(void); 373const struct qed_rdma_ops *qed_get_rdma_ops(void);