diff options
| author | Ram Amrani <Ram.Amrani@caviumnetworks.com> | 2016-10-01 14:59:58 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-10-03 23:22:47 -0400 |
| commit | c295f86e60f5ba67f0f4bba2bb2c22b3cbf01ec1 (patch) | |
| tree | 3642b82c16e2e3750eb4a36f4deaebf01062d7a8 /include/linux | |
| parent | 51ff17251c9c2c2e71974149d22bc73ea09c27cc (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/linux')
| -rw-r--r-- | include/linux/qed/qed_roce_if.h | 30 |
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 | ||
| 266 | struct 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 | |||
| 266 | struct qed_rdma_create_srq_in_params { | 279 | struct 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 | ||
| 287 | struct qed_rdma_destroy_cq_in_params { | ||
| 288 | u16 icid; | ||
| 289 | }; | ||
| 290 | |||
| 291 | struct qed_rdma_destroy_cq_out_params { | ||
| 292 | u16 num_cq_notif; | ||
| 293 | }; | ||
| 294 | |||
| 274 | struct qed_rdma_create_srq_out_params { | 295 | struct 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 | ||
| 343 | const struct qed_rdma_ops *qed_get_rdma_ops(void); | 373 | const struct qed_rdma_ops *qed_get_rdma_ops(void); |
