Lines Matching refs:mbx

116 static void nic_send_msg_to_vf(struct nicpf *nic, int vf, union nic_mbx *mbx)  in nic_send_msg_to_vf()  argument
119 u64 *msg = (u64 *)mbx; in nic_send_msg_to_vf()
143 union nic_mbx mbx = {}; in nic_mbx_send_ready() local
147 mbx.nic_cfg.msg = NIC_MBOX_MSG_READY; in nic_mbx_send_ready()
148 mbx.nic_cfg.vf_id = vf; in nic_mbx_send_ready()
150 mbx.nic_cfg.tns_mode = NIC_TNS_BYPASS_MODE; in nic_mbx_send_ready()
158 ether_addr_copy((u8 *)&mbx.nic_cfg.mac_addr, mac); in nic_mbx_send_ready()
160 mbx.nic_cfg.sqs_mode = (vf >= nic->num_vf_en) ? true : false; in nic_mbx_send_ready()
161 mbx.nic_cfg.node_id = nic->node; in nic_mbx_send_ready()
163 mbx.nic_cfg.loopback_supported = vf < MAX_LMAC; in nic_mbx_send_ready()
165 nic_send_msg_to_vf(nic, vf, &mbx); in nic_mbx_send_ready()
173 union nic_mbx mbx = {}; in nic_mbx_send_ack() local
175 mbx.msg.msg = NIC_MBOX_MSG_ACK; in nic_mbx_send_ack()
176 nic_send_msg_to_vf(nic, vf, &mbx); in nic_mbx_send_ack()
185 union nic_mbx mbx = {}; in nic_mbx_send_nack() local
187 mbx.msg.msg = NIC_MBOX_MSG_NACK; in nic_mbx_send_nack()
188 nic_send_msg_to_vf(nic, vf, &mbx); in nic_mbx_send_nack()
217 union nic_mbx mbx = {}; in nic_get_bgx_stats() local
222 mbx.bgx_stats.msg = NIC_MBOX_MSG_BGX_STATS; in nic_get_bgx_stats()
223 mbx.bgx_stats.vf_id = bgx->vf_id; in nic_get_bgx_stats()
224 mbx.bgx_stats.rx = bgx->rx; in nic_get_bgx_stats()
225 mbx.bgx_stats.idx = bgx->idx; in nic_get_bgx_stats()
227 mbx.bgx_stats.stats = bgx_get_rx_stats(nic->node, bgx_idx, in nic_get_bgx_stats()
230 mbx.bgx_stats.stats = bgx_get_tx_stats(nic->node, bgx_idx, in nic_get_bgx_stats()
232 nic_send_msg_to_vf(nic, bgx->vf_id, &mbx); in nic_get_bgx_stats()
430 union nic_mbx mbx = {}; in nic_send_rss_size() local
433 msg = (u64 *)&mbx; in nic_send_rss_size()
435 mbx.rss_size.msg = NIC_MBOX_MSG_RSS_SIZE; in nic_send_rss_size()
436 mbx.rss_size.ind_tbl_size = nic->rss_ind_tbl_size; in nic_send_rss_size()
437 nic_send_msg_to_vf(nic, vf, &mbx); in nic_send_rss_size()
541 union nic_mbx mbx = {}; in nic_send_pnicvf() local
543 mbx.nicvf.msg = NIC_MBOX_MSG_PNICVF_PTR; in nic_send_pnicvf()
544 mbx.nicvf.nicvf = nic->nicvf[nic->pqs_vf[sqs]]; in nic_send_pnicvf()
545 nic_send_msg_to_vf(nic, sqs, &mbx); in nic_send_pnicvf()
551 union nic_mbx mbx = {}; in nic_send_snicvf() local
554 mbx.nicvf.msg = NIC_MBOX_MSG_SNICVF_PTR; in nic_send_snicvf()
555 mbx.nicvf.sqs_id = nicvf->sqs_id; in nic_send_snicvf()
556 mbx.nicvf.nicvf = nic->nicvf[sqs_id]; in nic_send_snicvf()
557 nic_send_msg_to_vf(nic, nicvf->vf_id, &mbx); in nic_send_snicvf()
580 union nic_mbx mbx = {}; in nic_alloc_sqs() local
597 mbx.sqs_alloc.msg = NIC_MBOX_MSG_ALLOC_SQS; in nic_alloc_sqs()
598 mbx.sqs_alloc.vf_id = sqs->vf_id; in nic_alloc_sqs()
599 mbx.sqs_alloc.qs_count = alloc_qs; in nic_alloc_sqs()
600 nic_send_msg_to_vf(nic, sqs->vf_id, &mbx); in nic_alloc_sqs()
636 union nic_mbx mbx = {}; in nic_handle_mbx_intr() local
648 mbx_data = (u64 *)&mbx; in nic_handle_mbx_intr()
657 __func__, mbx.msg.msg, vf); in nic_handle_mbx_intr()
658 switch (mbx.msg.msg) { in nic_handle_mbx_intr()
670 (mbx.qs.num << NIC_QS_ID_SHIFT); in nic_handle_mbx_intr()
671 cfg = mbx.qs.cfg; in nic_handle_mbx_intr()
682 (mbx.rq.qs_num << NIC_QS_ID_SHIFT) | in nic_handle_mbx_intr()
683 (mbx.rq.rq_num << NIC_Q_NUM_SHIFT); in nic_handle_mbx_intr()
684 nic_reg_write(nic, reg_addr, mbx.rq.cfg); in nic_handle_mbx_intr()
688 (mbx.rq.qs_num << NIC_QS_ID_SHIFT) | in nic_handle_mbx_intr()
689 (mbx.rq.rq_num << NIC_Q_NUM_SHIFT); in nic_handle_mbx_intr()
690 nic_reg_write(nic, reg_addr, mbx.rq.cfg); in nic_handle_mbx_intr()
697 (mbx.rq.qs_num << NIC_QS_ID_SHIFT) | in nic_handle_mbx_intr()
698 (mbx.rq.rq_num << NIC_Q_NUM_SHIFT); in nic_handle_mbx_intr()
699 nic_reg_write(nic, reg_addr, mbx.rq.cfg); in nic_handle_mbx_intr()
703 (mbx.sq.qs_num << NIC_QS_ID_SHIFT) | in nic_handle_mbx_intr()
704 (mbx.sq.sq_num << NIC_Q_NUM_SHIFT); in nic_handle_mbx_intr()
705 nic_reg_write(nic, reg_addr, mbx.sq.cfg); in nic_handle_mbx_intr()
706 nic_tx_channel_cfg(nic, mbx.qs.num, &mbx.sq); in nic_handle_mbx_intr()
711 lmac = mbx.mac.vf_id; in nic_handle_mbx_intr()
714 bgx_set_lmac_mac(nic->node, bgx, lmac, mbx.mac.mac_addr); in nic_handle_mbx_intr()
717 ret = nic_update_hw_frs(nic, mbx.frs.max_frs, in nic_handle_mbx_intr()
718 mbx.frs.vf_id); in nic_handle_mbx_intr()
721 nic_config_cpi(nic, &mbx.cpi_cfg); in nic_handle_mbx_intr()
728 nic_config_rss(nic, &mbx.rss_cfg); in nic_handle_mbx_intr()
742 nic_alloc_sqs(nic, &mbx.sqs_alloc); in nic_handle_mbx_intr()
745 nic->nicvf[vf] = mbx.nicvf.nicvf; in nic_handle_mbx_intr()
751 nic_send_snicvf(nic, &mbx.nicvf); in nic_handle_mbx_intr()
754 nic_get_bgx_stats(nic, &mbx.bgx_stats); in nic_handle_mbx_intr()
757 ret = nic_config_loopback(nic, &mbx.lbk); in nic_handle_mbx_intr()
761 "Invalid msg from VF%d, msg 0x%x\n", vf, mbx.msg.msg); in nic_handle_mbx_intr()
767 else if (mbx.msg.msg != NIC_MBOX_MSG_READY) in nic_handle_mbx_intr()
773 static void nic_mbx_intr_handler (struct nicpf *nic, int mbx) in nic_mbx_intr_handler() argument
778 intr = nic_reg_read(nic, NIC_PF_MAILBOX_INT + (mbx << 3)); in nic_mbx_intr_handler()
779 dev_dbg(&nic->pdev->dev, "PF interrupt Mbox%d 0x%llx\n", mbx, intr); in nic_mbx_intr_handler()
783 vf + (mbx * vf_per_mbx_reg)); in nic_mbx_intr_handler()
785 nic_handle_mbx_intr(nic, vf + (mbx * vf_per_mbx_reg)); in nic_mbx_intr_handler()
786 nic_clear_mbx_intr(nic, vf, mbx); in nic_mbx_intr_handler()
949 union nic_mbx mbx = {}; in nic_poll_for_link() local
956 mbx.link_status.msg = NIC_MBOX_MSG_BGX_LINK_CHANGE; in nic_poll_for_link()
979 mbx.link_status.link_up = link.link_up; in nic_poll_for_link()
980 mbx.link_status.duplex = link.duplex; in nic_poll_for_link()
981 mbx.link_status.speed = link.speed; in nic_poll_for_link()
982 nic_send_msg_to_vf(nic, vf, &mbx); in nic_poll_for_link()