Lines Matching full:mbox
42 "Mbox msg with unknown ID %d\n", msg->id); in otx2vf_process_vfaf_mbox_msg()
48 "Mbox msg with wrong signature %x, ID %d\n", in otx2vf_process_vfaf_mbox_msg()
79 "Mbox msg response has err %d, ID %d\n", in otx2vf_process_vfaf_mbox_msg()
89 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_handler() local
90 struct mbox *af_mbox; in otx2vf_vfaf_mbox_handler()
93 af_mbox = container_of(work, struct mbox, mbox_wrk); in otx2vf_vfaf_mbox_handler()
94 mbox = &af_mbox->mbox; in otx2vf_vfaf_mbox_handler()
95 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_handler()
96 rsp_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_handler()
99 offset = mbox->rx_start + ALIGN(sizeof(*rsp_hdr), MBOX_MSG_ALIGN); in otx2vf_vfaf_mbox_handler()
104 offset = mbox->rx_start + msg->next_msgoff; in otx2vf_vfaf_mbox_handler()
106 __otx2_mbox_reset(mbox, 0); in otx2vf_vfaf_mbox_handler()
119 otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id); in otx2vf_process_mbox_msg_up()
126 &vf->mbox.mbox_up, 0, in otx2vf_process_mbox_msg_up()
139 otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id); in otx2vf_process_mbox_msg_up()
150 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_up_handler() local
151 struct mbox *vf_mbox; in otx2vf_vfaf_mbox_up_handler()
155 vf_mbox = container_of(work, struct mbox, mbox_up_wrk); in otx2vf_vfaf_mbox_up_handler()
157 mbox = &vf_mbox->mbox_up; in otx2vf_vfaf_mbox_up_handler()
158 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_up_handler()
160 rsp_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_up_handler()
164 offset = mbox->rx_start + ALIGN(sizeof(*rsp_hdr), MBOX_MSG_ALIGN); in otx2vf_vfaf_mbox_up_handler()
169 offset = mbox->rx_start + msg->next_msgoff; in otx2vf_vfaf_mbox_up_handler()
172 otx2_mbox_msg_send(mbox, 0); in otx2vf_vfaf_mbox_up_handler()
179 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_intr_handler() local
185 /* Read latest mbox data */ in otx2vf_vfaf_mbox_intr_handler()
189 mbox = &vf->mbox.mbox; in otx2vf_vfaf_mbox_intr_handler()
190 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_intr_handler()
191 otx2_sync_mbox_bbuf(mbox, 0); in otx2vf_vfaf_mbox_intr_handler()
193 trace_otx2_msg_interrupt(mbox->pdev, "PF to VF", BIT_ULL(0)); in otx2vf_vfaf_mbox_intr_handler()
195 hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_intr_handler()
197 vf->mbox.num_msgs = hdr->num_msgs; in otx2vf_vfaf_mbox_intr_handler()
199 memset(mbox->hwbase + mbox->rx_start, 0, in otx2vf_vfaf_mbox_intr_handler()
201 queue_work(vf->mbox_wq, &vf->mbox.mbox_wrk); in otx2vf_vfaf_mbox_intr_handler()
204 mbox = &vf->mbox.mbox_up; in otx2vf_vfaf_mbox_intr_handler()
205 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_intr_handler()
206 otx2_sync_mbox_bbuf(mbox, 0); in otx2vf_vfaf_mbox_intr_handler()
208 hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_intr_handler()
210 vf->mbox.up_num_msgs = hdr->num_msgs; in otx2vf_vfaf_mbox_intr_handler()
212 memset(mbox->hwbase + mbox->rx_start, 0, in otx2vf_vfaf_mbox_intr_handler()
214 queue_work(vf->mbox_wq, &vf->mbox.mbox_up_wrk); in otx2vf_vfaf_mbox_intr_handler()
238 snprintf(irq_name, NAME_SIZE, "RVUVFAF Mbox"); in otx2vf_register_mbox_intr()
243 "RVUPF: IRQ registration failed for VFAF mbox irq\n"); in otx2vf_register_mbox_intr()
257 req = otx2_mbox_alloc_msg_ready(&vf->mbox); in otx2vf_register_mbox_intr()
263 err = otx2_sync_mbox_msg(&vf->mbox); in otx2vf_register_mbox_intr()
275 struct mbox *mbox = &vf->mbox; in otx2vf_vfaf_mbox_destroy() local
282 if (mbox->mbox.hwbase && !test_bit(CN10K_MBOX, &vf->hw.cap_flag)) in otx2vf_vfaf_mbox_destroy()
283 iounmap((void __iomem *)mbox->mbox.hwbase); in otx2vf_vfaf_mbox_destroy()
285 otx2_mbox_destroy(&mbox->mbox); in otx2vf_vfaf_mbox_destroy()
286 otx2_mbox_destroy(&mbox->mbox_up); in otx2vf_vfaf_mbox_destroy()
291 struct mbox *mbox = &vf->mbox; in otx2vf_vfaf_mbox_init() local
295 mbox->pfvf = vf; in otx2vf_vfaf_mbox_init()
322 err = otx2_mbox_init(&mbox->mbox, hwbase, vf->pdev, vf->reg_base, in otx2vf_vfaf_mbox_init()
327 err = otx2_mbox_init(&mbox->mbox_up, hwbase, vf->pdev, vf->reg_base, in otx2vf_vfaf_mbox_init()
332 err = otx2_mbox_bbuf_init(mbox, vf->pdev); in otx2vf_vfaf_mbox_init()
336 INIT_WORK(&mbox->mbox_wrk, otx2vf_vfaf_mbox_handler); in otx2vf_vfaf_mbox_init()
337 INIT_WORK(&mbox->mbox_up_wrk, otx2vf_vfaf_mbox_up_handler); in otx2vf_vfaf_mbox_init()
338 mutex_init(&mbox->lock); in otx2vf_vfaf_mbox_init()
412 mutex_lock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
414 req = otx2_mbox_alloc_msg_nix_set_rx_mode(&vf->mbox); in otx2vf_do_set_rx_mode()
416 mutex_unlock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
429 otx2_sync_mbox_msg(&vf->mbox); in otx2vf_do_set_rx_mode()
431 mutex_unlock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
713 otx2_detach_resources(&vf->mbox); in otx2vf_probe()
764 otx2_detach_resources(&vf->mbox); in otx2vf_remove()