mb_chan 68 drivers/mailbox/mailbox-xgene-slimpro.c static void mb_chan_send_msg(struct slimpro_mbox_chan *mb_chan, u32 *msg) mb_chan 70 drivers/mailbox/mailbox-xgene-slimpro.c writel(msg[1], mb_chan->reg + REG_DB_DOUT0); mb_chan 71 drivers/mailbox/mailbox-xgene-slimpro.c writel(msg[2], mb_chan->reg + REG_DB_DOUT1); mb_chan 72 drivers/mailbox/mailbox-xgene-slimpro.c writel(msg[0], mb_chan->reg + REG_DB_OUT); mb_chan 75 drivers/mailbox/mailbox-xgene-slimpro.c static void mb_chan_recv_msg(struct slimpro_mbox_chan *mb_chan) mb_chan 77 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan->rx_msg[1] = readl(mb_chan->reg + REG_DB_DIN0); mb_chan 78 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan->rx_msg[2] = readl(mb_chan->reg + REG_DB_DIN1); mb_chan 79 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan->rx_msg[0] = readl(mb_chan->reg + REG_DB_IN); mb_chan 82 drivers/mailbox/mailbox-xgene-slimpro.c static int mb_chan_status_ack(struct slimpro_mbox_chan *mb_chan) mb_chan 84 drivers/mailbox/mailbox-xgene-slimpro.c u32 val = readl(mb_chan->reg + REG_DB_STAT); mb_chan 87 drivers/mailbox/mailbox-xgene-slimpro.c writel(MBOX_STATUS_ACK_MASK, mb_chan->reg + REG_DB_STAT); mb_chan 93 drivers/mailbox/mailbox-xgene-slimpro.c static int mb_chan_status_avail(struct slimpro_mbox_chan *mb_chan) mb_chan 95 drivers/mailbox/mailbox-xgene-slimpro.c u32 val = readl(mb_chan->reg + REG_DB_STAT); mb_chan 98 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan_recv_msg(mb_chan); mb_chan 99 drivers/mailbox/mailbox-xgene-slimpro.c writel(MBOX_STATUS_AVAIL_MASK, mb_chan->reg + REG_DB_STAT); mb_chan 107 drivers/mailbox/mailbox-xgene-slimpro.c struct slimpro_mbox_chan *mb_chan = id; mb_chan 109 drivers/mailbox/mailbox-xgene-slimpro.c if (mb_chan_status_ack(mb_chan)) mb_chan 110 drivers/mailbox/mailbox-xgene-slimpro.c mbox_chan_txdone(mb_chan->chan, 0); mb_chan 112 drivers/mailbox/mailbox-xgene-slimpro.c if (mb_chan_status_avail(mb_chan)) mb_chan 113 drivers/mailbox/mailbox-xgene-slimpro.c mbox_chan_received_data(mb_chan->chan, mb_chan->rx_msg); mb_chan 120 drivers/mailbox/mailbox-xgene-slimpro.c struct slimpro_mbox_chan *mb_chan = chan->con_priv; mb_chan 122 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan_send_msg(mb_chan, msg); mb_chan 128 drivers/mailbox/mailbox-xgene-slimpro.c struct slimpro_mbox_chan *mb_chan = chan->con_priv; mb_chan 132 drivers/mailbox/mailbox-xgene-slimpro.c rc = devm_request_irq(mb_chan->dev, mb_chan->irq, slimpro_mbox_irq, 0, mb_chan 133 drivers/mailbox/mailbox-xgene-slimpro.c MBOX_CON_NAME, mb_chan); mb_chan 135 drivers/mailbox/mailbox-xgene-slimpro.c dev_err(mb_chan->dev, "failed to register mailbox interrupt %d\n", mb_chan 136 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan->irq); mb_chan 142 drivers/mailbox/mailbox-xgene-slimpro.c mb_chan->reg + REG_DB_STAT); mb_chan 144 drivers/mailbox/mailbox-xgene-slimpro.c val = readl(mb_chan->reg + REG_DB_STATMASK); mb_chan 146 drivers/mailbox/mailbox-xgene-slimpro.c writel(val, mb_chan->reg + REG_DB_STATMASK); mb_chan 153 drivers/mailbox/mailbox-xgene-slimpro.c struct slimpro_mbox_chan *mb_chan = chan->con_priv; mb_chan 157 drivers/mailbox/mailbox-xgene-slimpro.c val = readl(mb_chan->reg + REG_DB_STATMASK); mb_chan 159 drivers/mailbox/mailbox-xgene-slimpro.c writel(val, mb_chan->reg + REG_DB_STATMASK); mb_chan 161 drivers/mailbox/mailbox-xgene-slimpro.c devm_free_irq(mb_chan->dev, mb_chan->irq, mb_chan);