Lines Matching defs:iwdev

47  * @iwdev: iwarp device
49 u32 i40iw_initialize_hw_resources(struct i40iw_device *iwdev)
60 max_qp = iwdev->sc_dev.hmc_info->hmc_obj[I40IW_HMC_IW_QP].cnt;
61 max_cq = iwdev->sc_dev.hmc_info->hmc_obj[I40IW_HMC_IW_CQ].cnt;
62 max_mr = iwdev->sc_dev.hmc_info->hmc_obj[I40IW_HMC_IW_MR].cnt;
63 arp_table_size = iwdev->sc_dev.hmc_info->hmc_obj[I40IW_HMC_IW_ARP].cnt;
64 iwdev->max_cqe = 0xFFFFF;
73 iwdev->mem_resources = kzalloc(resources_size, GFP_KERNEL);
75 if (!iwdev->mem_resources)
78 iwdev->max_qp = max_qp;
79 iwdev->max_mr = max_mr;
80 iwdev->max_cq = max_cq;
81 iwdev->max_pd = num_pds;
82 iwdev->arp_table_size = arp_table_size;
83 iwdev->arp_table = (struct i40iw_arp_entry *)iwdev->mem_resources;
84 resource_ptr = iwdev->mem_resources + (sizeof(struct i40iw_arp_entry) * arp_table_size);
86 iwdev->device_cap_flags = IB_DEVICE_LOCAL_DMA_LKEY |
89 iwdev->allocated_qps = resource_ptr;
90 iwdev->allocated_cqs = &iwdev->allocated_qps[BITS_TO_LONGS(max_qp)];
91 iwdev->allocated_mrs = &iwdev->allocated_cqs[BITS_TO_LONGS(max_cq)];
92 iwdev->allocated_pds = &iwdev->allocated_mrs[BITS_TO_LONGS(max_mr)];
93 iwdev->allocated_arps = &iwdev->allocated_pds[BITS_TO_LONGS(num_pds)];
94 iwdev->qp_table = (struct i40iw_qp **)(&iwdev->allocated_arps[BITS_TO_LONGS(arp_table_size)]);
95 set_bit(0, iwdev->allocated_mrs);
96 set_bit(0, iwdev->allocated_qps);
97 set_bit(0, iwdev->allocated_cqs);
98 set_bit(0, iwdev->allocated_pds);
99 set_bit(0, iwdev->allocated_arps);
102 set_bit(1, iwdev->allocated_qps);
103 set_bit(1, iwdev->allocated_cqs);
104 set_bit(1, iwdev->allocated_pds);
105 set_bit(2, iwdev->allocated_cqs);
106 set_bit(2, iwdev->allocated_pds);
108 spin_lock_init(&iwdev->resource_lock);
109 spin_lock_init(&iwdev->qptable_lock);
111 mrdrvbits = 24 - max(get_count_order(iwdev->max_mr), 14);
112 iwdev->mr_stagmask = ~(((1 << mrdrvbits) - 1) << (32 - mrdrvbits));
118 * @iwdev: iwarp device
122 static void i40iw_cqp_ce_handler(struct i40iw_device *iwdev, struct i40iw_sc_cq *cq, bool arm)
125 struct i40iw_sc_dev *dev = &iwdev->sc_dev;
148 i40iw_put_cqp_request(&iwdev->cqp, cqp_request);
152 i40iw_put_cqp_request(&iwdev->cqp, cqp_request);
167 * @iwdev: iwarp device
170 static void i40iw_iwarp_ce_handler(struct i40iw_device *iwdev,
182 * @iwdev: iwarp device
185 static void i40iw_puda_ce_handler(struct i40iw_device *iwdev,
188 struct i40iw_sc_dev *dev = (struct i40iw_sc_dev *)&iwdev->sc_dev;
211 * @iwdev: iwarp device
214 void i40iw_process_ceq(struct i40iw_device *iwdev, struct i40iw_ceq *ceq)
216 struct i40iw_sc_dev *dev = &iwdev->sc_dev;
228 i40iw_cqp_ce_handler(iwdev, cq, arm);
230 i40iw_iwarp_ce_handler(iwdev, cq);
233 i40iw_puda_ce_handler(iwdev, cq);
269 i40iw_hw_modify_qp(iwqp->iwdev, iwqp, &info, 0);
274 * @iwdev: iwarp device
276 void i40iw_process_aeq(struct i40iw_device *iwdev)
278 struct i40iw_sc_dev *dev = &iwdev->sc_dev;
279 struct i40iw_aeq *aeq = &iwdev->aeq;
307 spin_lock_irqsave(&iwdev->qptable_lock, flags);
308 iwqp = iwdev->qp_table[info->qp_cq_id];
310 spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
317 spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
438 * @iwdev: iwarp device
443 i40iw_cqp_manage_abvpt_cmd(struct i40iw_device *iwdev,
452 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, add_port);
465 cqp_info->in.u.manage_apbvt_entry.cqp = &iwdev->cqp.sc_cqp;
467 status = i40iw_handle_cqp_op(iwdev, cqp_request);
476 * @iwdev: iwarp device
480 enum i40iw_status_code i40iw_manage_apbvt(struct i40iw_device *iwdev,
484 struct i40iw_cm_core *cm_core = &iwdev->cm_core;
500 return i40iw_cqp_manage_abvpt_cmd(iwdev, accel_local_port,
510 status = i40iw_cqp_manage_abvpt_cmd(iwdev, accel_local_port,
519 * @iwdev: iwarp device
524 void i40iw_manage_arp_cache(struct i40iw_device *iwdev,
535 arp_index = i40iw_arp_table(iwdev, ip_addr, ipv4, mac_addr, action);
538 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, false);
551 cqp_info->in.u.add_arp_cache_entry.cqp = &iwdev->cqp.sc_cqp;
555 cqp_info->in.u.del_arp_cache_entry.cqp = &iwdev->cqp.sc_cqp;
559 cqp_info->in.u.add_arp_cache_entry.cqp = &iwdev->cqp.sc_cqp;
562 if (i40iw_handle_cqp_op(iwdev, cqp_request))
578 * @iwdev: iwarp device
586 enum i40iw_status_code i40iw_manage_qhash(struct i40iw_device *iwdev,
594 struct i40iw_sc_dev *dev = &iwdev->sc_dev;
595 struct i40iw_sc_vsi *vsi = &iwdev->vsi;
597 struct i40iw_cqp *iwcqp = &iwdev->cqp;
608 info->vsi = &iwdev->vsi;
620 ether_addr_copy(info->mac_addr, iwdev->netdev->dev_addr);
651 cqp_info->in.u.manage_qhash_table_entry.cqp = &iwdev->cqp.sc_cqp;
655 status = i40iw_handle_cqp_op(iwdev, cqp_request);
663 * @iwdev: iwarp device
668 enum i40iw_status_code i40iw_hw_flush_wqes(struct i40iw_device *iwdev,
679 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, wait);
691 status = i40iw_handle_cqp_op(iwdev, cqp_request);
720 * @iwdev: iwarp device
725 void i40iw_gen_ae(struct i40iw_device *iwdev,
734 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, wait);
746 if (i40iw_handle_cqp_op(iwdev, cqp_request))
753 * @iwdev: iwarp device
757 enum i40iw_status_code i40iw_hw_manage_vf_pble_bp(struct i40iw_device *iwdev,
766 if ((iwdev->init_state < CCQ_CREATED) && wait)
769 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, wait);
779 cqp_info->in.u.manage_vf_pble_bp.cqp = &iwdev->cqp.sc_cqp;
781 status = i40iw_handle_cqp_op(iwdev, cqp_request);
831 * @iwdev: iwarp device
834 void i40iw_flush_wqes(struct i40iw_device *iwdev, struct i40iw_qp *iwqp)
850 (void)i40iw_hw_flush_wqes(iwdev, &iwqp->sc_qp, &info, true);