/openbmc/linux/drivers/infiniband/hw/hns/ |
H A D | hns_roce_main.c | 61 return hr_dev->hw->set_mac(hr_dev, phy_port, addr); in hns_roce_set_mac() 1019 ret = hr_dev->hw->cmq_init(hr_dev); in hns_roce_init() 1026 ret = hr_dev->hw->hw_profile(hr_dev); in hns_roce_init() 1039 ret = hr_dev->hw->init_eq(hr_dev); in hns_roce_init() 1065 ret = hr_dev->hw->hw_init(hr_dev); in hns_roce_init() 1085 hr_dev->hw->hw_exit(hr_dev); in hns_roce_init() 1096 hr_dev->hw->cleanup_eq(hr_dev); in hns_roce_init() 1103 hr_dev->hw->cmq_exit(hr_dev); in hns_roce_init() 1113 hr_dev->hw->hw_exit(hr_dev); in hns_roce_exit() 1120 hr_dev->hw->cleanup_eq(hr_dev); in hns_roce_exit() [all …]
|
H A D | hns_roce_cmd.c | 44 return hr_dev->hw->post_mbox(hr_dev, mbox_msg); in hns_roce_cmd_mbox_post_hw() 61 return hr_dev->hw->poll_mbox_done(hr_dev); in __hns_roce_cmd_mbox_poll() 69 down(&hr_dev->cmd.poll_sem); in hns_roce_cmd_mbox_poll() 71 up(&hr_dev->cmd.poll_sem); in hns_roce_cmd_mbox_poll() 80 &hr_dev->cmd.context[token % hr_dev->cmd.max_cmds]; in hns_roce_cmd_event() 150 up(&hr_dev->cmd.event_sem); in hns_roce_cmd_mbox_wait() 162 if (!hr_dev->hw->chk_mbox_avail(hr_dev, &is_busy)) in hns_roce_cmd_mbox() 185 hr_dev->cmd.use_events = 0; in hns_roce_cmd_init() 187 hr_dev->cmd.pool = dma_pool_create("hns_roce_cmd", hr_dev->dev, in hns_roce_cmd_init() 190 if (!hr_dev->cmd.pool) in hns_roce_cmd_init() [all …]
|
H A D | hns_roce_srq.c | 52 dev_err(hr_dev->dev, in hns_roce_ib_srq_event() 300 ibdev_err(&hr_dev->ib_dev, in set_srq_basic_param() 352 ibdev_err(&hr_dev->ib_dev, in alloc_srq_buf() 378 free_srq_idx(hr_dev, srq); in alloc_srq_buf() 387 free_srq_idx(hr_dev, srq); in free_srq_buf() 435 free_srqc(hr_dev, srq); in hns_roce_create_srq() 437 free_srqn(hr_dev, srq); in hns_roce_create_srq() 439 free_srq_buf(hr_dev, srq); in hns_roce_create_srq() 449 free_srqc(hr_dev, srq); in hns_roce_destroy_srq() 450 free_srqn(hr_dev, srq); in hns_roce_destroy_srq() [all …]
|
H A D | hns_roce_cq.c | 117 hr_dev->hw->write_cqc(hr_dev, hr_cq, mailbox->buf, mtts, dma_handle); in hns_roce_create_cqc() 253 hr_cq->db_reg = hr_dev->reg_base + hr_dev->odb_offset + in alloc_cq_db() 343 ibdev_err(&hr_dev->ib_dev, in set_cqe_size() 397 ret = alloc_cqn(hr_dev, hr_cq); in hns_roce_create_cq() 403 ret = alloc_cqc(hr_dev, hr_cq); in hns_roce_create_cq() 426 free_cqc(hr_dev, hr_cq); in hns_roce_create_cq() 428 free_cqn(hr_dev, hr_cq->cqn); in hns_roce_create_cq() 432 free_cq_buf(hr_dev, hr_cq); in hns_roce_create_cq() 441 free_cqc(hr_dev, hr_cq); in hns_roce_destroy_cq() 442 free_cqn(hr_dev, hr_cq->cqn); in hns_roce_destroy_cq() [all …]
|
H A D | hns_roce_pd.c | 38 struct hns_roce_ida *pd_ida = &hr_dev->pd_ida; in hns_roce_init_pd_table() 41 pd_ida->max = hr_dev->caps.num_pds - 1; in hns_roce_init_pd_table() 42 pd_ida->min = hr_dev->caps.reserved_pds; in hns_roce_init_pd_table() 49 struct hns_roce_ida *pd_ida = &hr_dev->pd_ida; in hns_roce_alloc_pd() 101 (hr_dev->caps.phy_num_uars - 1) + 1; in hns_roce_uar_alloc() 107 hr_dev->dwqe_page = pci_resource_start(hr_dev->pci_dev, 4); in hns_roce_uar_alloc() 117 uar_ida->max = hr_dev->caps.num_uars - 1; in hns_roce_init_uar_table() 118 uar_ida->min = hr_dev->caps.reserved_uars; in hns_roce_init_uar_table() 142 xrcd_ida->max = hr_dev->caps.num_xrcds - 1; in hns_roce_init_xrcd_table() 143 xrcd_ida->min = hr_dev->caps.reserved_xrcds; in hns_roce_init_xrcd_table() [all …]
|
H A D | hns_roce_qp.c | 75 flush_work->hr_dev = hr_dev; in init_flush_work() 119 flush_cqe(hr_dev, qp); in hns_roce_qp_event() 894 hr_qp->sq.db_reg = hr_dev->reg_base + hr_dev->sdb_offset + in alloc_kernel_qp_db() 897 hr_qp->rq.db_reg = hr_dev->reg_base + hr_dev->odb_offset + in alloc_kernel_qp_db() 1140 ret = hr_dev->hw->qp_flow_control_init(hr_dev, hr_qp); in hns_roce_create_qp_common() 1155 free_qpc(hr_dev, hr_qp); in hns_roce_create_qp_common() 1159 free_qpn(hr_dev, hr_qp); in hns_roce_create_qp_common() 1174 free_qpc(hr_dev, hr_qp); in hns_roce_qp_destroy() 1175 free_qpn(hr_dev, hr_qp); in hns_roce_qp_destroy() 1486 hr_dev->qp_table.bank[i].max = hr_dev->caps.num_qps / in hns_roce_init_qp_table() [all …]
|
H A D | hns_roce_mr.c | 68 err = hns_roce_table_get(hr_dev, &hr_dev->mr_table.mtpt_table, in alloc_mr_key() 85 hns_roce_table_put(hr_dev, &hr_dev->mr_table.mtpt_table, obj); in free_mr_key() 137 free_mr_pbl(hr_dev, mr); in hns_roce_mr_free() 138 free_mr_key(hr_dev, mr); in hns_roce_mr_free() 155 ret = hr_dev->hw->write_mtpt(hr_dev, mailbox->buf, mr); in hns_roce_mr_enable() 157 ret = hr_dev->hw->frmr_write_mtpt(hr_dev, mailbox->buf, mr); in hns_roce_mr_enable() 215 free_mr_key(hr_dev, mr); in hns_roce_get_dma_mr() 257 free_mr_pbl(hr_dev, mr); in hns_roce_reg_user_mr() 316 ret = hr_dev->hw->rereg_write_mtpt(hr_dev, mr, flags, mailbox->buf); in hns_roce_rereg_user_mr() 345 hr_dev->hw->dereg_mr(hr_dev); in hns_roce_dereg_mr() [all …]
|
H A D | hns_roce_hem.c | 495 ret = hr_dev->hw->set_hem(hr_dev, table, obj, 0); in set_mhop_hem() 503 ret = hr_dev->hw->set_hem(hr_dev, table, obj, 1); in set_mhop_hem() 515 ret = hr_dev->hw->set_hem(hr_dev, table, obj, step_idx); in set_mhop_hem() 646 ret = hr_dev->hw->clear_hem(hr_dev, table, obj, step_idx); in clear_mhop_hem() 652 ret = hr_dev->hw->clear_hem(hr_dev, table, obj, 1); in clear_mhop_hem() 659 ret = hr_dev->hw->clear_hem(hr_dev, table, obj, 0); in clear_mhop_hem() 943 ret = hr_dev->hw->clear_hem(hr_dev, table, obj, 0); in hns_roce_cleanup_hem_table() 959 hns_roce_cleanup_hem_table(hr_dev, &hr_dev->cq_table.table); in hns_roce_cleanup_hem() 974 hns_roce_cleanup_hem_table(hr_dev, &hr_dev->gmv_table); in hns_roce_cleanup_hem() 976 hns_roce_cleanup_hem_table(hr_dev, &hr_dev->qp_table.irrl_table); in hns_roce_cleanup_hem() [all …]
|
H A D | hns_roce_hw_v2.c | 1389 hr_dev->vendor_id = hr_dev->pci_dev->vendor; in hns_roce_cmq_query_hw_info() 2384 hr_dev->vendor_part_id = hr_dev->pci_dev->device; in hns_roce_v2_profile() 2458 size = hr_dev->caps.num_qps * hr_dev->func_num * in alloc_link_table_buf() 5892 irq_work->hr_dev = hr_dev; in hns_roce_v2_init_irq_work() 5901 struct hns_roce_dev *hr_dev = eq->hr_dev; in update_eq_db() local 6049 struct hns_roce_dev *hr_dev = eq->hr_dev; in hns_roce_v2_msix_interrupt_eq() local 6457 0, hr_dev->irq_names[j], hr_dev); in __hns_roce_request_irq() 6480 free_irq(hr_dev->irq[j], hr_dev); in __hns_roce_request_irq() 6502 free_irq(hr_dev->irq[i], hr_dev); in __hns_roce_free_irq() 6539 eq->hr_dev = hr_dev; in hns_roce_v2_init_eq_table() [all …]
|
H A D | hns_roce_alloc.c | 50 dma_free_coherent(hr_dev->dev, 1 << buf->trunk_shift, in hns_roce_buf_free() 118 dma_free_coherent(hr_dev->dev, trunk_size, in hns_roce_buf_alloc() 176 if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_XRC) in hns_roce_cleanup_bitmap() 177 ida_destroy(&hr_dev->xrcd_ida.ida); in hns_roce_cleanup_bitmap() 179 if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ) in hns_roce_cleanup_bitmap() 180 ida_destroy(&hr_dev->srq_table.srq_ida.ida); in hns_roce_cleanup_bitmap() 181 hns_roce_cleanup_qp_table(hr_dev); in hns_roce_cleanup_bitmap() 182 hns_roce_cleanup_cq_table(hr_dev); in hns_roce_cleanup_bitmap() 183 ida_destroy(&hr_dev->mr_table.mtpt_ida.ida); in hns_roce_cleanup_bitmap() 184 ida_destroy(&hr_dev->pd_ida.ida); in hns_roce_cleanup_bitmap() [all …]
|
H A D | hns_roce_device.h | 583 struct hns_roce_dev *hr_dev; member 687 struct hns_roce_dev *hr_dev; member 877 int (*cmq_init)(struct hns_roce_dev *hr_dev); 878 void (*cmq_exit)(struct hns_roce_dev *hr_dev); 880 int (*hw_init)(struct hns_roce_dev *hr_dev); 881 void (*hw_exit)(struct hns_roce_dev *hr_dev); 882 int (*post_mbox)(struct hns_roce_dev *hr_dev, 901 int (*set_hem)(struct hns_roce_dev *hr_dev, 903 int (*clear_hem)(struct hns_roce_dev *hr_dev, 912 int (*init_eq)(struct hns_roce_dev *hr_dev); [all …]
|
H A D | hns_roce_hem.h | 105 int hns_roce_table_get(struct hns_roce_dev *hr_dev, 107 void hns_roce_table_put(struct hns_roce_dev *hr_dev, 109 void *hns_roce_table_find(struct hns_roce_dev *hr_dev, 112 int hns_roce_init_hem_table(struct hns_roce_dev *hr_dev, 115 void hns_roce_cleanup_hem_table(struct hns_roce_dev *hr_dev, 117 void hns_roce_cleanup_hem(struct hns_roce_dev *hr_dev); 118 int hns_roce_calc_hem_mhop(struct hns_roce_dev *hr_dev, 121 bool hns_roce_check_whether_mhop(struct hns_roce_dev *hr_dev, u32 type); 126 int hns_roce_hem_list_request(struct hns_roce_dev *hr_dev, 130 void hns_roce_hem_list_release(struct hns_roce_dev *hr_dev, [all …]
|
H A D | hns_roce_restrack.c | 45 struct hns_roce_dev *hr_dev = to_hr_dev(ib_cq->device); in hns_roce_fill_res_cq_entry_raw() local 50 if (!hr_dev->hw->query_cqc) in hns_roce_fill_res_cq_entry_raw() 53 ret = hr_dev->hw->query_cqc(hr_dev, hr_cq->cqn, &context); in hns_roce_fill_res_cq_entry_raw() 98 struct hns_roce_dev *hr_dev = to_hr_dev(ib_qp->device); in hns_roce_fill_res_qp_entry_raw() local 103 if (!hr_dev->hw->query_qpc) in hns_roce_fill_res_qp_entry_raw() 106 ret = hr_dev->hw->query_qpc(hr_dev, hr_qp->qpn, &context); in hns_roce_fill_res_qp_entry_raw() 147 struct hns_roce_dev *hr_dev = to_hr_dev(ib_mr->device); in hns_roce_fill_res_mr_entry_raw() local 152 if (!hr_dev->hw->query_mpt) in hns_roce_fill_res_mr_entry_raw() 155 ret = hr_dev->hw->query_mpt(hr_dev, hr_mr->key, &context); in hns_roce_fill_res_mr_entry_raw()
|
H A D | hns_roce_db.c | 124 int hns_roce_alloc_db(struct hns_roce_dev *hr_dev, struct hns_roce_db *db, in hns_roce_alloc_db() argument 130 mutex_lock(&hr_dev->pgdir_mutex); in hns_roce_alloc_db() 132 list_for_each_entry(pgdir, &hr_dev->pgdir_list, list) in hns_roce_alloc_db() 136 pgdir = hns_roce_alloc_db_pgdir(hr_dev->dev); in hns_roce_alloc_db() 142 list_add(&pgdir->list, &hr_dev->pgdir_list); in hns_roce_alloc_db() 148 mutex_unlock(&hr_dev->pgdir_mutex); in hns_roce_alloc_db() 153 void hns_roce_free_db(struct hns_roce_dev *hr_dev, struct hns_roce_db *db) in hns_roce_free_db() argument 158 mutex_lock(&hr_dev->pgdir_mutex); in hns_roce_free_db() 173 dma_free_coherent(hr_dev->dev, PAGE_SIZE, db->u.pgdir->page, in hns_roce_free_db() 179 mutex_unlock(&hr_dev->pgdir_mutex); in hns_roce_free_db()
|
H A D | hns_roce_ah.c | 59 struct hns_roce_dev *hr_dev = to_hr_dev(ibah->device); in hns_roce_create_ah() local 64 if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08 && udata) in hns_roce_create_ah() 79 max_sl = min_t(u32, MAX_SERVICE_LEVEL, hr_dev->caps.sl_num - 1); in hns_roce_create_ah() 81 ibdev_err_ratelimited(&hr_dev->ib_dev, in hns_roce_create_ah() 91 if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08) { in hns_roce_create_ah()
|
H A D | hns_roce_cmd.h | 142 int hns_roce_cmd_mbox(struct hns_roce_dev *hr_dev, u64 in_param, u64 out_param, 146 hns_roce_alloc_cmd_mailbox(struct hns_roce_dev *hr_dev); 147 void hns_roce_free_cmd_mailbox(struct hns_roce_dev *hr_dev,
|
H A D | hns_roce_hw_v2.h | 1437 static inline void hns_roce_write64(struct hns_roce_dev *hr_dev, __le32 val[2], in hns_roce_write64() argument 1440 struct hns_roce_v2_priv *priv = hr_dev->priv; in hns_roce_write64() 1444 if (!hr_dev->dis_db && !ops->get_hw_reset_stat(handle)) in hns_roce_write64()
|