Lines Matching defs:rmu
209 struct fsl_rmu *rmu = GET_RMM_HANDLE(port);
211 osr = in_be32(&rmu->msg_regs->osr);
215 out_be32(&rmu->msg_regs->osr, RIO_MSG_OSR_TE);
221 out_be32(&rmu->msg_regs->osr, RIO_MSG_OSR_QOI);
226 u32 dqp = in_be32(&rmu->msg_regs->odqdpar);
227 int slot = (dqp - rmu->msg_tx_ring.phys) >> 5;
229 port->outb_msg[0].mcback(port, rmu->msg_tx_ring.dev_id,
234 out_be32(&rmu->msg_regs->osr, RIO_MSG_OSR_EOMI);
254 struct fsl_rmu *rmu = GET_RMM_HANDLE(port);
256 isr = in_be32(&rmu->msg_regs->isr);
260 out_be32((void *)&rmu->msg_regs->isr, RIO_MSG_ISR_TE);
272 port->inb_msg[0].mcback(port, rmu->msg_rx_ring.dev_id,
277 out_be32(&rmu->msg_regs->isr, RIO_MSG_ISR_DIQI);
663 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
665 struct rio_tx_desc *desc = (struct rio_tx_desc *)rmu->msg_tx_ring.virt
666 + rmu->msg_tx_ring.tx_slot;
677 memcpy(rmu->msg_tx_ring.virt_buffer[rmu->msg_tx_ring.tx_slot], buffer,
680 memset(rmu->msg_tx_ring.virt_buffer[rmu->msg_tx_ring.tx_slot]
694 | rmu->msg_tx_ring.phys_buffer[rmu->msg_tx_ring.tx_slot];
697 omr = in_be32(&rmu->msg_regs->omr);
698 out_be32(&rmu->msg_regs->omr, omr | RIO_MSG_OMR_MUI);
701 if (++rmu->msg_tx_ring.tx_slot == rmu->msg_tx_ring.size)
702 rmu->msg_tx_ring.tx_slot = 0;
724 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
733 rmu->msg_tx_ring.dev_id = dev_id;
734 rmu->msg_tx_ring.size = entries;
736 for (i = 0; i < rmu->msg_tx_ring.size; i++) {
737 rmu->msg_tx_ring.virt_buffer[i] =
739 &rmu->msg_tx_ring.phys_buffer[i], GFP_KERNEL);
740 if (!rmu->msg_tx_ring.virt_buffer[i]) {
742 for (j = 0; j < rmu->msg_tx_ring.size; j++)
743 if (rmu->msg_tx_ring.virt_buffer[j])
746 rmu->msg_tx_ring.
748 rmu->msg_tx_ring.
755 rmu->msg_tx_ring.virt = dma_alloc_coherent(priv->dev,
756 rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
757 &rmu->msg_tx_ring.phys,
759 if (!rmu->msg_tx_ring.virt) {
763 rmu->msg_tx_ring.tx_slot = 0;
766 out_be32(&rmu->msg_regs->odqdpar, rmu->msg_tx_ring.phys);
767 out_be32(&rmu->msg_regs->odqepar, rmu->msg_tx_ring.phys);
770 out_be32(&rmu->msg_regs->osar, 0x00000004);
773 out_be32(&rmu->msg_regs->osr, 0x000000b3);
788 out_be32(&rmu->msg_regs->omr, 0x00100220);
791 out_be32(&rmu->msg_regs->omr,
792 in_be32(&rmu->msg_regs->omr) |
796 out_be32(&rmu->msg_regs->omr, in_be32(&rmu->msg_regs->omr) | 0x1);
803 rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
804 rmu->msg_tx_ring.virt, rmu->msg_tx_ring.phys);
807 for (i = 0; i < rmu->msg_tx_ring.size; i++)
809 rmu->msg_tx_ring.virt_buffer[i],
810 rmu->msg_tx_ring.phys_buffer[i]);
826 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
829 out_be32(&rmu->msg_regs->omr, 0);
833 rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
834 rmu->msg_tx_ring.virt, rmu->msg_tx_ring.phys);
856 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
865 rmu->msg_rx_ring.dev_id = dev_id;
866 rmu->msg_rx_ring.size = entries;
867 rmu->msg_rx_ring.rx_slot = 0;
868 for (i = 0; i < rmu->msg_rx_ring.size; i++)
869 rmu->msg_rx_ring.virt_buffer[i] = NULL;
872 rmu->msg_rx_ring.virt = dma_alloc_coherent(priv->dev,
873 rmu->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
874 &rmu->msg_rx_ring.phys, GFP_KERNEL);
875 if (!rmu->msg_rx_ring.virt) {
881 out_be32(&rmu->msg_regs->ifqdpar, (u32) rmu->msg_rx_ring.phys);
882 out_be32(&rmu->msg_regs->ifqepar, (u32) rmu->msg_rx_ring.phys);
885 out_be32(&rmu->msg_regs->isr, 0x00000091);
892 rmu->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
893 rmu->msg_rx_ring.virt, rmu->msg_rx_ring.phys);
904 out_be32(&rmu->msg_regs->imr, 0x001b0060);
907 setbits32(&rmu->msg_regs->imr, (get_bitmask_order(entries) - 2) << 12);
910 setbits32(&rmu->msg_regs->imr, 0x1);
927 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
930 out_be32(&rmu->msg_regs->imr, 0);
933 dma_free_coherent(priv->dev, rmu->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
934 rmu->msg_rx_ring.virt, rmu->msg_rx_ring.phys);
952 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
955 rmu->msg_rx_ring.rx_slot);
957 if (rmu->msg_rx_ring.virt_buffer[rmu->msg_rx_ring.rx_slot]) {
960 rmu->msg_rx_ring.rx_slot);
965 rmu->msg_rx_ring.virt_buffer[rmu->msg_rx_ring.rx_slot] = buf;
966 if (++rmu->msg_rx_ring.rx_slot == rmu->msg_rx_ring.size)
967 rmu->msg_rx_ring.rx_slot = 0;
983 struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
989 phys_buf = in_be32(&rmu->msg_regs->ifqdpar);
992 if (phys_buf == in_be32(&rmu->msg_regs->ifqepar))
995 virt_buf = rmu->msg_rx_ring.virt + (phys_buf
996 - rmu->msg_rx_ring.phys);
997 buf_idx = (phys_buf - rmu->msg_rx_ring.phys) / RIO_MAX_MSG_SIZE;
998 buf = rmu->msg_rx_ring.virt_buffer[buf_idx];
1010 rmu->msg_rx_ring.virt_buffer[buf_idx] = NULL;
1013 setbits32(&rmu->msg_regs->imr, RIO_MSG_IMR_MI);
1068 struct fsl_rmu *rmu;
1080 dev_warn(priv->dev, "Can't get %pOF property 'fsl,rmu'\n",
1085 rmu = kzalloc(sizeof(struct fsl_rmu), GFP_KERNEL);
1086 if (!rmu)
1094 kfree(rmu);
1099 rmu->msg_regs = (struct rio_msg_regs *)
1102 rmu->txirq = irq_of_parse_and_map(node, 0);
1103 rmu->rxirq = irq_of_parse_and_map(node, 1);
1105 node, rmu->txirq, rmu->rxirq);
1107 priv->rmm_handle = rmu;