Lines Matching full:mbox
44 "Mbox msg with unknown ID %d\n", msg->id); in otx2vf_process_vfaf_mbox_msg()
50 "Mbox msg with wrong signature %x, ID %d\n", in otx2vf_process_vfaf_mbox_msg()
81 "Mbox msg response has err %d, ID %d\n", in otx2vf_process_vfaf_mbox_msg()
91 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_handler() local
92 struct mbox *af_mbox; in otx2vf_vfaf_mbox_handler()
96 af_mbox = container_of(work, struct mbox, mbox_wrk); in otx2vf_vfaf_mbox_handler()
97 mbox = &af_mbox->mbox; in otx2vf_vfaf_mbox_handler()
98 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_handler()
99 rsp_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_handler()
105 offset = mbox->rx_start + ALIGN(sizeof(*rsp_hdr), MBOX_MSG_ALIGN); in otx2vf_vfaf_mbox_handler()
110 offset = mbox->rx_start + msg->next_msgoff; in otx2vf_vfaf_mbox_handler()
112 __otx2_mbox_reset(mbox, 0); in otx2vf_vfaf_mbox_handler()
125 otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id); in otx2vf_process_mbox_msg_up()
132 &vf->mbox.mbox_up, 0, in otx2vf_process_mbox_msg_up()
145 otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id); in otx2vf_process_mbox_msg_up()
156 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_up_handler() local
157 struct mbox *vf_mbox; in otx2vf_vfaf_mbox_up_handler()
162 vf_mbox = container_of(work, struct mbox, mbox_up_wrk); in otx2vf_vfaf_mbox_up_handler()
164 mbox = &vf_mbox->mbox_up; in otx2vf_vfaf_mbox_up_handler()
165 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_up_handler()
167 rsp_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_up_handler()
173 offset = mbox->rx_start + ALIGN(sizeof(*rsp_hdr), MBOX_MSG_ALIGN); in otx2vf_vfaf_mbox_up_handler()
178 offset = mbox->rx_start + msg->next_msgoff; in otx2vf_vfaf_mbox_up_handler()
181 otx2_mbox_msg_send(mbox, 0); in otx2vf_vfaf_mbox_up_handler()
188 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_intr_handler() local
197 /* Read latest mbox data */ in otx2vf_vfaf_mbox_intr_handler()
205 mbox = &vf->mbox.mbox; in otx2vf_vfaf_mbox_intr_handler()
206 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_intr_handler()
207 otx2_sync_mbox_bbuf(mbox, 0); in otx2vf_vfaf_mbox_intr_handler()
209 hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_intr_handler()
211 queue_work(vf->mbox_wq, &vf->mbox.mbox_wrk); in otx2vf_vfaf_mbox_intr_handler()
213 trace_otx2_msg_interrupt(mbox->pdev, "DOWN reply from PF to VF", in otx2vf_vfaf_mbox_intr_handler()
222 mbox = &vf->mbox.mbox_up; in otx2vf_vfaf_mbox_intr_handler()
223 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_intr_handler()
224 otx2_sync_mbox_bbuf(mbox, 0); in otx2vf_vfaf_mbox_intr_handler()
226 hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_intr_handler()
228 queue_work(vf->mbox_wq, &vf->mbox.mbox_up_wrk); in otx2vf_vfaf_mbox_intr_handler()
230 trace_otx2_msg_interrupt(mbox->pdev, "UP message from PF to VF", in otx2vf_vfaf_mbox_intr_handler()
259 snprintf(irq_name, NAME_SIZE, "RVUVF%d AFVF Mbox", ((vf->pcifunc & in otx2vf_register_mbox_intr()
273 "RVUPF: IRQ registration failed for VFAF mbox irq\n"); in otx2vf_register_mbox_intr()
294 req = otx2_mbox_alloc_msg_ready(&vf->mbox); in otx2vf_register_mbox_intr()
300 err = otx2_sync_mbox_msg(&vf->mbox); in otx2vf_register_mbox_intr()
312 struct mbox *mbox = &vf->mbox; in otx2vf_vfaf_mbox_destroy() local
319 if (mbox->mbox.hwbase && !test_bit(CN10K_MBOX, &vf->hw.cap_flag)) in otx2vf_vfaf_mbox_destroy()
320 iounmap((void __iomem *)mbox->mbox.hwbase); in otx2vf_vfaf_mbox_destroy()
322 otx2_mbox_destroy(&mbox->mbox); in otx2vf_vfaf_mbox_destroy()
323 otx2_mbox_destroy(&mbox->mbox_up); in otx2vf_vfaf_mbox_destroy()
328 struct mbox *mbox = &vf->mbox; in otx2vf_vfaf_mbox_init() local
332 mbox->pfvf = vf; in otx2vf_vfaf_mbox_init()
339 * VF MBOX ADDR, MBOX is a separate RVU block. in otx2vf_vfaf_mbox_init()
365 err = otx2_mbox_init(&mbox->mbox, hwbase, vf->pdev, vf->reg_base, in otx2vf_vfaf_mbox_init()
370 err = otx2_mbox_init(&mbox->mbox_up, hwbase, vf->pdev, vf->reg_base, in otx2vf_vfaf_mbox_init()
375 err = otx2_mbox_bbuf_init(mbox, vf->pdev); in otx2vf_vfaf_mbox_init()
379 INIT_WORK(&mbox->mbox_wrk, otx2vf_vfaf_mbox_handler); in otx2vf_vfaf_mbox_init()
380 INIT_WORK(&mbox->mbox_up_wrk, otx2vf_vfaf_mbox_up_handler); in otx2vf_vfaf_mbox_init()
381 mutex_init(&mbox->lock); in otx2vf_vfaf_mbox_init()
465 mutex_lock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
467 req = otx2_mbox_alloc_msg_nix_set_rx_mode(&vf->mbox); in otx2vf_do_set_rx_mode()
469 mutex_unlock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
482 otx2_sync_mbox_msg(&vf->mbox); in otx2vf_do_set_rx_mode()
484 mutex_unlock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
801 otx2_detach_resources(&vf->mbox); in otx2vf_probe()
850 otx2_detach_resources(&vf->mbox); in otx2vf_remove()