Lines Matching full:mbox

40 			"Mbox msg with unknown ID %d\n", msg->id);  in otx2vf_process_vfaf_mbox_msg()
46 "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()
95 af_mbox = container_of(work, struct mbox, mbox_wrk); in otx2vf_vfaf_mbox_handler()
96 mbox = &af_mbox->mbox; in otx2vf_vfaf_mbox_handler()
97 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_handler()
98 rsp_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_handler()
101 offset = mbox->rx_start + ALIGN(sizeof(*rsp_hdr), MBOX_MSG_ALIGN); in otx2vf_vfaf_mbox_handler()
106 offset = mbox->rx_start + msg->next_msgoff; in otx2vf_vfaf_mbox_handler()
108 __otx2_mbox_reset(mbox, 0); in otx2vf_vfaf_mbox_handler()
121 otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id); in otx2vf_process_mbox_msg_up()
128 &vf->mbox.mbox_up, 0, in otx2vf_process_mbox_msg_up()
141 otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id); in otx2vf_process_mbox_msg_up()
152 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_up_handler() local
153 struct mbox *vf_mbox; in otx2vf_vfaf_mbox_up_handler()
157 vf_mbox = container_of(work, struct mbox, mbox_up_wrk); in otx2vf_vfaf_mbox_up_handler()
159 mbox = &vf_mbox->mbox_up; in otx2vf_vfaf_mbox_up_handler()
160 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_up_handler()
162 rsp_hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_up_handler()
166 offset = mbox->rx_start + ALIGN(sizeof(*rsp_hdr), MBOX_MSG_ALIGN); in otx2vf_vfaf_mbox_up_handler()
171 offset = mbox->rx_start + msg->next_msgoff; in otx2vf_vfaf_mbox_up_handler()
174 otx2_mbox_msg_send(mbox, 0); in otx2vf_vfaf_mbox_up_handler()
181 struct otx2_mbox *mbox; in otx2vf_vfaf_mbox_intr_handler() local
187 /* Read latest mbox data */ in otx2vf_vfaf_mbox_intr_handler()
191 mbox = &vf->mbox.mbox; in otx2vf_vfaf_mbox_intr_handler()
192 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_intr_handler()
193 otx2_sync_mbox_bbuf(mbox, 0); in otx2vf_vfaf_mbox_intr_handler()
195 trace_otx2_msg_interrupt(mbox->pdev, "PF to VF", BIT_ULL(0)); in otx2vf_vfaf_mbox_intr_handler()
197 hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_intr_handler()
199 vf->mbox.num_msgs = hdr->num_msgs; in otx2vf_vfaf_mbox_intr_handler()
201 memset(mbox->hwbase + mbox->rx_start, 0, in otx2vf_vfaf_mbox_intr_handler()
203 queue_work(vf->mbox_wq, &vf->mbox.mbox_wrk); in otx2vf_vfaf_mbox_intr_handler()
206 mbox = &vf->mbox.mbox_up; in otx2vf_vfaf_mbox_intr_handler()
207 mdev = &mbox->dev[0]; in otx2vf_vfaf_mbox_intr_handler()
208 otx2_sync_mbox_bbuf(mbox, 0); in otx2vf_vfaf_mbox_intr_handler()
210 hdr = (struct mbox_hdr *)(mdev->mbase + mbox->rx_start); in otx2vf_vfaf_mbox_intr_handler()
212 vf->mbox.up_num_msgs = hdr->num_msgs; in otx2vf_vfaf_mbox_intr_handler()
214 memset(mbox->hwbase + mbox->rx_start, 0, in otx2vf_vfaf_mbox_intr_handler()
216 queue_work(vf->mbox_wq, &vf->mbox.mbox_up_wrk); in otx2vf_vfaf_mbox_intr_handler()
240 snprintf(irq_name, NAME_SIZE, "RVUVFAF Mbox"); in otx2vf_register_mbox_intr()
245 "RVUPF: IRQ registration failed for VFAF mbox irq\n"); in otx2vf_register_mbox_intr()
259 req = otx2_mbox_alloc_msg_ready(&vf->mbox); in otx2vf_register_mbox_intr()
265 err = otx2_sync_mbox_msg(&vf->mbox); in otx2vf_register_mbox_intr()
277 struct mbox *mbox = &vf->mbox; in otx2vf_vfaf_mbox_destroy() local
285 if (mbox->mbox.hwbase && !test_bit(CN10K_MBOX, &vf->hw.cap_flag)) in otx2vf_vfaf_mbox_destroy()
286 iounmap((void __iomem *)mbox->mbox.hwbase); in otx2vf_vfaf_mbox_destroy()
288 otx2_mbox_destroy(&mbox->mbox); in otx2vf_vfaf_mbox_destroy()
289 otx2_mbox_destroy(&mbox->mbox_up); in otx2vf_vfaf_mbox_destroy()
294 struct mbox *mbox = &vf->mbox; in otx2vf_vfaf_mbox_init() local
298 mbox->pfvf = vf; in otx2vf_vfaf_mbox_init()
326 err = otx2_mbox_init(&mbox->mbox, hwbase, vf->pdev, vf->reg_base, in otx2vf_vfaf_mbox_init()
331 err = otx2_mbox_init(&mbox->mbox_up, hwbase, vf->pdev, vf->reg_base, in otx2vf_vfaf_mbox_init()
336 err = otx2_mbox_bbuf_init(mbox, vf->pdev); in otx2vf_vfaf_mbox_init()
340 INIT_WORK(&mbox->mbox_wrk, otx2vf_vfaf_mbox_handler); in otx2vf_vfaf_mbox_init()
341 INIT_WORK(&mbox->mbox_up_wrk, otx2vf_vfaf_mbox_up_handler); in otx2vf_vfaf_mbox_init()
342 mutex_init(&mbox->lock); in otx2vf_vfaf_mbox_init()
416 mutex_lock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
418 req = otx2_mbox_alloc_msg_nix_set_rx_mode(&vf->mbox); in otx2vf_do_set_rx_mode()
420 mutex_unlock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
433 otx2_sync_mbox_msg(&vf->mbox); in otx2vf_do_set_rx_mode()
435 mutex_unlock(&vf->mbox.lock); in otx2vf_do_set_rx_mode()
709 otx2_detach_resources(&vf->mbox); in otx2vf_probe()
740 otx2_detach_resources(&vf->mbox); in otx2vf_remove()