/* Handles inbound message interrupts. Executes a registered inbound mailbox event handler and acks the interrupt occurrence.  */
static irqreturn_t fsl_rio_rx_handler(int irq, void *dev_instance)
/* Handles inbound message interrupts. Executes a registered inbound mailbox event handler and acks the interrupt occurrence.  */
static irqreturn_t fsl_rio_rx_handler(int irq, void *dev_instance)
{
	int isr;
	struct rio_mport *port = (struct rio_mport *)dev_instance;
	struct rio_priv *priv = port->priv;
	isr = in_be32(&priv->msg_regs->isr);
	if (isr & RIO_MSG_ISR_TE) {
		pr_info("RIO: inbound message reception error\n");
		out_be32((void *)&priv->msg_regs->isr, RIO_MSG_ISR_TE);
		goto out;
	}
	if (isr & RIO_MSG_ISR_DIQI) {
		port->inb_msg[0].mcback(port, priv->msg_rx_ring.dev_id, -1, -1);
		out_be32(&priv->msg_regs->isr, RIO_MSG_ISR_DIQI);
	}
      out:
	return IRQ_HANDLED;
}