Lines Matching defs:mbox
681 struct octeon_mbox *mbox = (struct octeon_mbox *)wk->ctxptr;
682 struct octeon_device *oct = mbox->oct_dev;
688 mbox_int_val = readq(mbox->mbox_int_reg);
689 writeq(mbox_int_val, mbox->mbox_int_reg);
694 val64 = readq(oct->mbox[q_no]->mbox_write_reg);
697 if (octeon_mbox_read(oct->mbox[q_no]))
699 oct->mbox[q_no]);
705 octeon_mbox_process_message(mbox);
711 struct octeon_mbox *mbox = NULL;
722 mbox = vzalloc(sizeof(*mbox));
723 if (!mbox)
726 spin_lock_init(&mbox->lock);
728 mbox->oct_dev = oct;
730 mbox->q_no = q_no;
732 mbox->state = OCTEON_MBOX_STATE_IDLE;
734 /* PF mbox interrupt reg */
735 mbox->mbox_int_reg = (u8 *)oct->mmio[0].hw_addr +
739 mbox->mbox_write_reg = (u8 *)oct->mmio[0].hw_addr +
743 mbox->mbox_read_reg = (u8 *)oct->mmio[0].hw_addr +
747 INIT_DELAYED_WORK(&mbox->mbox_poll_wk.work,
749 mbox->mbox_poll_wk.ctxptr = (void *)mbox;
751 oct->mbox[q_no] = mbox;
753 writeq(OCTEON_PFVFSIG, mbox->mbox_read_reg);
757 schedule_delayed_work(&oct->mbox[0]->mbox_poll_wk.work,
765 vfree(oct->mbox[i]);
781 &oct->mbox[q_no]->mbox_poll_wk.work);
782 vfree(oct->mbox[q_no]);
976 /* Never need to handle msix mbox intr for pf. They arrive on the last
988 mbox_int_val = readq(oct->mbox[0]->mbox_int_reg);
995 oct->mbox[0]->mbox_int_reg);
996 if (octeon_mbox_read(oct->mbox[q_no])) {
997 work = &oct->mbox[q_no]->mbox_poll_wk.work;