Lines Matching refs:p_hwfn

13 static void *qed_vf_pf_prep(struct qed_hwfn *p_hwfn, u16 type, u16 length)  in qed_vf_pf_prep()  argument
15 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_prep()
25 DP_VERBOSE(p_hwfn, in qed_vf_pf_prep()
38 p_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, type, length); in qed_vf_pf_prep()
47 static void qed_vf_pf_req_end(struct qed_hwfn *p_hwfn, int req_status) in qed_vf_pf_req_end() argument
49 union pfvf_tlvs *resp = p_hwfn->vf_iov_info->pf2vf_reply; in qed_vf_pf_req_end()
51 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_pf_req_end()
55 mutex_unlock(&(p_hwfn->vf_iov_info->mutex)); in qed_vf_pf_req_end()
63 static int qed_send_msg2pf(struct qed_hwfn *p_hwfn, u8 *done) in qed_send_msg2pf() argument
65 union vfpf_tlvs *p_req = p_hwfn->vf_iov_info->vf2pf_request; in qed_send_msg2pf()
73 qed_dp_tlv_list(p_hwfn, p_req); in qed_send_msg2pf()
79 DP_VERBOSE(p_hwfn, in qed_send_msg2pf()
82 GET_FIELD(p_hwfn->hw_info.concrete_fid, in qed_send_msg2pf()
84 upper_32_bits(p_hwfn->vf_iov_info->vf2pf_request_phys), in qed_send_msg2pf()
85 lower_32_bits(p_hwfn->vf_iov_info->vf2pf_request_phys), in qed_send_msg2pf()
89 REG_WR(p_hwfn, in qed_send_msg2pf()
91 lower_32_bits(p_hwfn->vf_iov_info->vf2pf_request_phys)); in qed_send_msg2pf()
93 REG_WR(p_hwfn, in qed_send_msg2pf()
95 upper_32_bits(p_hwfn->vf_iov_info->vf2pf_request_phys)); in qed_send_msg2pf()
102 REG_WR(p_hwfn, (uintptr_t)&zone_data->trigger, *((u32 *)&trigger)); in qed_send_msg2pf()
121 DP_NOTICE(p_hwfn, in qed_send_msg2pf()
128 DP_NOTICE(p_hwfn, in qed_send_msg2pf()
132 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_send_msg2pf()
140 static void qed_vf_pf_add_qid(struct qed_hwfn *p_hwfn, in qed_vf_pf_add_qid() argument
143 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_add_qid()
151 p_qid_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_add_qid()
156 static int _qed_vf_pf_release(struct qed_hwfn *p_hwfn, bool b_final) in _qed_vf_pf_release() argument
158 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in _qed_vf_pf_release()
165 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_RELEASE, sizeof(*req)); in _qed_vf_pf_release()
168 qed_add_tlv(p_hwfn, &p_iov->offset, in _qed_vf_pf_release()
172 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in _qed_vf_pf_release()
177 qed_vf_pf_req_end(p_hwfn, rc); in _qed_vf_pf_release()
181 p_hwfn->b_int_enabled = 0; in _qed_vf_pf_release()
184 dma_free_coherent(&p_hwfn->cdev->pdev->dev, in _qed_vf_pf_release()
189 dma_free_coherent(&p_hwfn->cdev->pdev->dev, in _qed_vf_pf_release()
195 dma_free_coherent(&p_hwfn->cdev->pdev->dev, in _qed_vf_pf_release()
200 kfree(p_hwfn->vf_iov_info); in _qed_vf_pf_release()
201 p_hwfn->vf_iov_info = NULL; in _qed_vf_pf_release()
206 int qed_vf_pf_release(struct qed_hwfn *p_hwfn) in qed_vf_pf_release() argument
208 return _qed_vf_pf_release(p_hwfn, true); in qed_vf_pf_release()
212 static void qed_vf_pf_acquire_reduce_resc(struct qed_hwfn *p_hwfn, in qed_vf_pf_acquire_reduce_resc() argument
216 DP_VERBOSE(p_hwfn, in qed_vf_pf_acquire_reduce_resc()
242 static int qed_vf_pf_acquire(struct qed_hwfn *p_hwfn) in qed_vf_pf_acquire() argument
244 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_acquire()
254 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_ACQUIRE, sizeof(*req)); in qed_vf_pf_acquire()
258 req->vfdev_info.opaque_fid = p_hwfn->hw_info.opaque_fid; in qed_vf_pf_acquire()
290 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_acquire()
294 DP_VERBOSE(p_hwfn, in qed_vf_pf_acquire()
301 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_acquire()
305 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_pf_acquire()
330 DP_VERBOSE(p_hwfn, QED_MSG_IOV, "resources acquired\n"); in qed_vf_pf_acquire()
334 qed_vf_pf_acquire_reduce_resc(p_hwfn, p_resc, in qed_vf_pf_acquire()
339 DP_NOTICE(p_hwfn, in qed_vf_pf_acquire()
353 DP_NOTICE(p_hwfn, in qed_vf_pf_acquire()
358 DP_INFO(p_hwfn, in qed_vf_pf_acquire()
369 DP_NOTICE(p_hwfn, "PF rejected acquisition by VF\n"); in qed_vf_pf_acquire()
373 DP_ERR(p_hwfn, in qed_vf_pf_acquire()
396 p_hwfn->cdev->type = resp->pfdev_info.dev_type; in qed_vf_pf_acquire()
397 p_hwfn->cdev->chip_rev = resp->pfdev_info.chip_rev; in qed_vf_pf_acquire()
399 p_hwfn->cdev->chip_num = pfdev_info->chip_num & 0xffff; in qed_vf_pf_acquire()
402 if (IS_LEAD_HWFN(p_hwfn)) { in qed_vf_pf_acquire()
404 DP_NOTICE(p_hwfn, "100g VF\n"); in qed_vf_pf_acquire()
405 p_hwfn->cdev->num_hwfns = 2; in qed_vf_pf_acquire()
411 DP_INFO(p_hwfn, in qed_vf_pf_acquire()
417 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_acquire()
422 u32 qed_vf_hw_bar_size(struct qed_hwfn *p_hwfn, enum BAR_ID bar_id) in qed_vf_hw_bar_size() argument
431 bar_size = p_hwfn->vf_iov_info->acquire_resp.pfdev_info.bar_size; in qed_vf_hw_bar_size()
437 int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn) in qed_vf_hw_prepare() argument
439 struct qed_hwfn *p_lead = QED_LEADING_HWFN(p_hwfn->cdev); in qed_vf_hw_prepare()
447 if (IS_LEAD_HWFN(p_hwfn)) in qed_vf_hw_prepare()
448 p_hwfn->cdev->num_hwfns = 1; in qed_vf_hw_prepare()
451 p_hwfn->hw_info.opaque_fid = (u16)REG_RD(p_hwfn, reg); in qed_vf_hw_prepare()
454 p_hwfn->hw_info.concrete_fid = REG_RD(p_hwfn, reg); in qed_vf_hw_prepare()
465 if (!p_hwfn->doorbells) { in qed_vf_hw_prepare()
466 p_hwfn->doorbells = (u8 __iomem *)p_hwfn->regview + in qed_vf_hw_prepare()
468 } else if (p_hwfn == p_lead) { in qed_vf_hw_prepare()
481 p_hwfn->doorbells = (u8 __iomem *) in qed_vf_hw_prepare()
482 p_hwfn->regview + PXP_VF_BAR0_START_DQ; in qed_vf_hw_prepare()
486 p_iov->vf2pf_request = dma_alloc_coherent(&p_hwfn->cdev->pdev->dev, in qed_vf_hw_prepare()
493 p_iov->pf2vf_reply = dma_alloc_coherent(&p_hwfn->cdev->pdev->dev, in qed_vf_hw_prepare()
500 DP_VERBOSE(p_hwfn, in qed_vf_hw_prepare()
509 p_iov->bulletin.p_virt = dma_alloc_coherent(&p_hwfn->cdev->pdev->dev, in qed_vf_hw_prepare()
516 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_hw_prepare()
523 p_hwfn->vf_iov_info = p_iov; in qed_vf_hw_prepare()
525 p_hwfn->hw_info.personality = QED_PCI_ETH; in qed_vf_hw_prepare()
527 rc = qed_vf_pf_acquire(p_hwfn); in qed_vf_hw_prepare()
537 !qed_vf_hw_bar_size(p_hwfn, BAR_ID_1) && in qed_vf_hw_prepare()
538 (p_hwfn->cdev->num_hwfns > 1)) { in qed_vf_hw_prepare()
539 rc = _qed_vf_pf_release(p_hwfn, false); in qed_vf_hw_prepare()
544 p_hwfn->doorbells = (u8 __iomem *)p_hwfn->regview + in qed_vf_hw_prepare()
546 rc = qed_vf_pf_acquire(p_hwfn); in qed_vf_hw_prepare()
549 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_hw_prepare()
551 p_hwfn->regview, p_hwfn->doorbells, p_hwfn->cdev->doorbells); in qed_vf_hw_prepare()
556 dma_free_coherent(&p_hwfn->cdev->pdev->dev, in qed_vf_hw_prepare()
560 dma_free_coherent(&p_hwfn->cdev->pdev->dev, in qed_vf_hw_prepare()
633 static void qed_vf_update_tunn_param(struct qed_hwfn *p_hwfn, in qed_vf_update_tunn_param() argument
660 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_update_tunn_param()
667 int qed_vf_pf_tunnel_param_update(struct qed_hwfn *p_hwfn, in qed_vf_pf_tunnel_param_update() argument
670 struct qed_tunnel_info *p_tun = &p_hwfn->cdev->tunnel; in qed_vf_pf_tunnel_param_update()
671 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_tunnel_param_update()
676 p_req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_UPDATE_TUNN_PARAM, in qed_vf_pf_tunnel_param_update()
700 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_tunnel_param_update()
705 rc = qed_send_msg2pf(p_hwfn, &p_resp->hdr.status); in qed_vf_pf_tunnel_param_update()
711 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_pf_tunnel_param_update()
716 qed_vf_update_tunn_param(p_hwfn, p_tun, p_resp); in qed_vf_pf_tunnel_param_update()
718 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_tunnel_param_update()
723 qed_vf_pf_rxq_start(struct qed_hwfn *p_hwfn, in qed_vf_pf_rxq_start() argument
730 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_rxq_start()
737 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_START_RXQ, sizeof(*req)); in qed_vf_pf_rxq_start()
756 p_hwfn->regview + in qed_vf_pf_rxq_start()
757 MSTORM_QZONE_START(p_hwfn->cdev) + in qed_vf_pf_rxq_start()
761 __internal_ram_wr(p_hwfn, *pp_prod, sizeof(u32), in qed_vf_pf_rxq_start()
765 qed_vf_pf_add_qid(p_hwfn, p_cid); in qed_vf_pf_rxq_start()
768 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_rxq_start()
772 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_rxq_start()
785 *pp_prod = (u8 __iomem *)p_hwfn->regview + resp->offset; in qed_vf_pf_rxq_start()
786 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_pf_rxq_start()
791 __internal_ram_wr(p_hwfn, *pp_prod, sizeof(u32), in qed_vf_pf_rxq_start()
795 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_rxq_start()
800 int qed_vf_pf_rxq_stop(struct qed_hwfn *p_hwfn, in qed_vf_pf_rxq_stop() argument
803 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_rxq_stop()
809 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_STOP_RXQS, sizeof(*req)); in qed_vf_pf_rxq_stop()
815 qed_vf_pf_add_qid(p_hwfn, p_cid); in qed_vf_pf_rxq_stop()
818 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_rxq_stop()
822 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_rxq_stop()
832 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_rxq_stop()
838 qed_vf_pf_txq_start(struct qed_hwfn *p_hwfn, in qed_vf_pf_txq_start() argument
843 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_txq_start()
850 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_START_TXQ, sizeof(*req)); in qed_vf_pf_txq_start()
860 qed_vf_pf_add_qid(p_hwfn, p_cid); in qed_vf_pf_txq_start()
863 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_txq_start()
867 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_txq_start()
880 *pp_doorbell = (u8 __iomem *)p_hwfn->doorbells + resp->offset; in qed_vf_pf_txq_start()
884 *pp_doorbell = (u8 __iomem *)p_hwfn->doorbells + in qed_vf_pf_txq_start()
889 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_pf_txq_start()
893 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_txq_start()
898 int qed_vf_pf_txq_stop(struct qed_hwfn *p_hwfn, struct qed_queue_cid *p_cid) in qed_vf_pf_txq_stop() argument
900 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_txq_stop()
906 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_STOP_TXQS, sizeof(*req)); in qed_vf_pf_txq_stop()
911 qed_vf_pf_add_qid(p_hwfn, p_cid); in qed_vf_pf_txq_stop()
914 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_txq_stop()
918 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_txq_stop()
928 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_txq_stop()
933 int qed_vf_pf_vport_start(struct qed_hwfn *p_hwfn, in qed_vf_pf_vport_start() argument
940 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_vport_start()
946 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_VPORT_START, sizeof(*req)); in qed_vf_pf_vport_start()
956 for (i = 0; i < p_hwfn->vf_iov_info->acquire_resp.resc.num_sbs; i++) { in qed_vf_pf_vport_start()
957 struct qed_sb_info *p_sb = p_hwfn->vf_iov_info->sbs_info[i]; in qed_vf_pf_vport_start()
964 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_vport_start()
968 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_vport_start()
978 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_vport_start()
983 int qed_vf_pf_vport_stop(struct qed_hwfn *p_hwfn) in qed_vf_pf_vport_stop() argument
985 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_vport_stop()
990 qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_VPORT_TEARDOWN, in qed_vf_pf_vport_stop()
994 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_vport_stop()
997 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_vport_stop()
1007 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_vport_stop()
1013 qed_vf_handle_vp_update_is_needed(struct qed_hwfn *p_hwfn, in qed_vf_handle_vp_update_is_needed() argument
1037 DP_INFO(p_hwfn, "Unexpected vport-update TLV[%d]\n", in qed_vf_handle_vp_update_is_needed()
1044 qed_vf_handle_vp_update_tlvs_resp(struct qed_hwfn *p_hwfn, in qed_vf_handle_vp_update_tlvs_resp() argument
1047 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_handle_vp_update_tlvs_resp()
1053 if (!qed_vf_handle_vp_update_is_needed(p_hwfn, p_data, tlv)) in qed_vf_handle_vp_update_tlvs_resp()
1057 qed_iov_search_list_tlvs(p_hwfn, p_iov->pf2vf_reply, in qed_vf_handle_vp_update_tlvs_resp()
1060 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_handle_vp_update_tlvs_resp()
1068 int qed_vf_pf_vport_update(struct qed_hwfn *p_hwfn, in qed_vf_pf_vport_update() argument
1071 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_vport_update()
1084 qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_VPORT_UPDATE, sizeof(*req)); in qed_vf_pf_vport_update()
1091 p_act_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_vport_update()
1111 p_tx_switch_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_vport_update()
1121 p_mcast_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_vport_update()
1136 p_accept_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, tlv, size); in qed_vf_pf_vport_update()
1157 p_rss_tlv = qed_add_tlv(p_hwfn, in qed_vf_pf_vport_update()
1194 p_any_vlan_tlv = qed_add_tlv(p_hwfn, &p_iov->offset, tlv, size); in qed_vf_pf_vport_update()
1202 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_vport_update()
1205 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_vport_update()
1214 qed_vf_handle_vp_update_tlvs_resp(p_hwfn, p_params); in qed_vf_pf_vport_update()
1217 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_vport_update()
1222 int qed_vf_pf_reset(struct qed_hwfn *p_hwfn) in qed_vf_pf_reset() argument
1224 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_reset()
1230 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_CLOSE, sizeof(*req)); in qed_vf_pf_reset()
1233 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_reset()
1237 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_reset()
1246 p_hwfn->b_int_enabled = 0; in qed_vf_pf_reset()
1249 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_reset()
1254 void qed_vf_pf_filter_mcast(struct qed_hwfn *p_hwfn, in qed_vf_pf_filter_mcast() argument
1272 qed_vf_pf_vport_update(p_hwfn, &sp_params); in qed_vf_pf_filter_mcast()
1275 int qed_vf_pf_filter_ucast(struct qed_hwfn *p_hwfn, in qed_vf_pf_filter_ucast() argument
1278 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_filter_ucast()
1284 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_UCAST_FILTER, sizeof(*req)); in qed_vf_pf_filter_ucast()
1291 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_filter_ucast()
1295 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_filter_ucast()
1305 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_filter_ucast()
1310 int qed_vf_pf_int_cleanup(struct qed_hwfn *p_hwfn) in qed_vf_pf_int_cleanup() argument
1312 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_int_cleanup()
1317 qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_INT_CLEANUP, in qed_vf_pf_int_cleanup()
1321 qed_add_tlv(p_hwfn, &p_iov->offset, in qed_vf_pf_int_cleanup()
1324 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_int_cleanup()
1334 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_int_cleanup()
1339 int qed_vf_pf_get_coalesce(struct qed_hwfn *p_hwfn, in qed_vf_pf_get_coalesce() argument
1342 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_get_coalesce()
1348 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_COALESCE_READ, sizeof(*req)); in qed_vf_pf_get_coalesce()
1352 qed_add_tlv(p_hwfn, &p_iov->offset, CHANNEL_TLV_LIST_END, in qed_vf_pf_get_coalesce()
1356 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_get_coalesce()
1365 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_get_coalesce()
1371 qed_vf_pf_bulletin_update_mac(struct qed_hwfn *p_hwfn, in qed_vf_pf_bulletin_update_mac() argument
1374 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_bulletin_update_mac()
1383 p_req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_BULLETIN_UPDATE_MAC, in qed_vf_pf_bulletin_update_mac()
1386 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_pf_bulletin_update_mac()
1390 qed_add_tlv(p_hwfn, &p_iov->offset, CHANNEL_TLV_LIST_END, in qed_vf_pf_bulletin_update_mac()
1394 rc = qed_send_msg2pf(p_hwfn, &p_resp->hdr.status); in qed_vf_pf_bulletin_update_mac()
1395 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_bulletin_update_mac()
1400 qed_vf_pf_set_coalesce(struct qed_hwfn *p_hwfn, in qed_vf_pf_set_coalesce() argument
1403 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_pf_set_coalesce()
1409 req = qed_vf_pf_prep(p_hwfn, CHANNEL_TLV_COALESCE_UPDATE, sizeof(*req)); in qed_vf_pf_set_coalesce()
1415 DP_VERBOSE(p_hwfn, in qed_vf_pf_set_coalesce()
1421 qed_add_tlv(p_hwfn, &p_iov->offset, CHANNEL_TLV_LIST_END, in qed_vf_pf_set_coalesce()
1425 rc = qed_send_msg2pf(p_hwfn, &resp->hdr.status); in qed_vf_pf_set_coalesce()
1433 p_hwfn->cdev->rx_coalesce_usecs = rx_coal; in qed_vf_pf_set_coalesce()
1436 p_hwfn->cdev->tx_coalesce_usecs = tx_coal; in qed_vf_pf_set_coalesce()
1439 qed_vf_pf_req_end(p_hwfn, rc); in qed_vf_pf_set_coalesce()
1443 u16 qed_vf_get_igu_sb_id(struct qed_hwfn *p_hwfn, u16 sb_id) in qed_vf_get_igu_sb_id() argument
1445 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_get_igu_sb_id()
1448 DP_NOTICE(p_hwfn, "vf_sriov_info isn't initialized\n"); in qed_vf_get_igu_sb_id()
1455 void qed_vf_set_sb_info(struct qed_hwfn *p_hwfn, in qed_vf_set_sb_info() argument
1458 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_set_sb_info()
1461 DP_NOTICE(p_hwfn, "vf_sriov_info isn't initialized\n"); in qed_vf_set_sb_info()
1466 DP_NOTICE(p_hwfn, "Can't configure SB %04x\n", sb_id); in qed_vf_set_sb_info()
1473 int qed_vf_read_bulletin(struct qed_hwfn *p_hwfn, u8 *p_change) in qed_vf_read_bulletin() argument
1475 struct qed_vf_iov *p_iov = p_hwfn->vf_iov_info; in qed_vf_read_bulletin()
1498 DP_VERBOSE(p_hwfn, QED_MSG_IOV, in qed_vf_read_bulletin()
1506 void __qed_vf_get_link_params(struct qed_hwfn *p_hwfn, in __qed_vf_get_link_params() argument
1521 void qed_vf_get_link_params(struct qed_hwfn *p_hwfn, in qed_vf_get_link_params() argument
1524 __qed_vf_get_link_params(p_hwfn, params, in qed_vf_get_link_params()
1525 &(p_hwfn->vf_iov_info->bulletin_shadow)); in qed_vf_get_link_params()
1528 void __qed_vf_get_link_state(struct qed_hwfn *p_hwfn, in __qed_vf_get_link_state() argument
1548 void qed_vf_get_link_state(struct qed_hwfn *p_hwfn, in qed_vf_get_link_state() argument
1551 __qed_vf_get_link_state(p_hwfn, link, in qed_vf_get_link_state()
1552 &(p_hwfn->vf_iov_info->bulletin_shadow)); in qed_vf_get_link_state()
1555 void __qed_vf_get_link_caps(struct qed_hwfn *p_hwfn, in __qed_vf_get_link_caps() argument
1563 void qed_vf_get_link_caps(struct qed_hwfn *p_hwfn, in qed_vf_get_link_caps() argument
1566 __qed_vf_get_link_caps(p_hwfn, p_link_caps, in qed_vf_get_link_caps()
1567 &(p_hwfn->vf_iov_info->bulletin_shadow)); in qed_vf_get_link_caps()
1570 void qed_vf_get_num_rxqs(struct qed_hwfn *p_hwfn, u8 *num_rxqs) in qed_vf_get_num_rxqs() argument
1572 *num_rxqs = p_hwfn->vf_iov_info->acquire_resp.resc.num_rxqs; in qed_vf_get_num_rxqs()
1575 void qed_vf_get_num_txqs(struct qed_hwfn *p_hwfn, u8 *num_txqs) in qed_vf_get_num_txqs() argument
1577 *num_txqs = p_hwfn->vf_iov_info->acquire_resp.resc.num_txqs; in qed_vf_get_num_txqs()
1580 void qed_vf_get_num_cids(struct qed_hwfn *p_hwfn, u8 *num_cids) in qed_vf_get_num_cids() argument
1582 *num_cids = p_hwfn->vf_iov_info->acquire_resp.resc.num_cids; in qed_vf_get_num_cids()
1585 void qed_vf_get_port_mac(struct qed_hwfn *p_hwfn, u8 *port_mac) in qed_vf_get_port_mac() argument
1588 p_hwfn->vf_iov_info->acquire_resp.pfdev_info.port_mac, ETH_ALEN); in qed_vf_get_port_mac()
1591 void qed_vf_get_num_vlan_filters(struct qed_hwfn *p_hwfn, u8 *num_vlan_filters) in qed_vf_get_num_vlan_filters() argument
1595 p_vf = p_hwfn->vf_iov_info; in qed_vf_get_num_vlan_filters()
1599 void qed_vf_get_num_mac_filters(struct qed_hwfn *p_hwfn, u8 *num_mac_filters) in qed_vf_get_num_mac_filters() argument
1601 struct qed_vf_iov *p_vf = p_hwfn->vf_iov_info; in qed_vf_get_num_mac_filters()
1606 bool qed_vf_check_mac(struct qed_hwfn *p_hwfn, u8 *mac) in qed_vf_check_mac() argument
1610 bulletin = &p_hwfn->vf_iov_info->bulletin_shadow; in qed_vf_check_mac()
1644 qed_vf_bulletin_get_udp_ports(struct qed_hwfn *p_hwfn, in qed_vf_bulletin_get_udp_ports() argument
1649 p_bulletin = &p_hwfn->vf_iov_info->bulletin_shadow; in qed_vf_bulletin_get_udp_ports()
1655 void qed_vf_get_fw_version(struct qed_hwfn *p_hwfn, in qed_vf_get_fw_version() argument
1661 info = &p_hwfn->vf_iov_info->acquire_resp.pfdev_info; in qed_vf_get_fw_version()