Thread (16 messages) 16 messages, 5 authors, 2020-02-15

Re: [PATCH v6 2/6] mailbox: sun6i-msgbox: Add a new mailbox driver

From: Jassi Brar <jassisinghbrar@gmail.com>
Date: 2020-02-13 02:02:38
Also in: linux-devicetree, lkml

On Sun, Jan 12, 2020 at 11:18 PM Samuel Holland [off-list ref] wrote:
+static int sun6i_msgbox_send_data(struct mbox_chan *chan, void *data)
+{
+       struct sun6i_msgbox *mbox = to_sun6i_msgbox(chan);
+       int n = channel_number(chan);
+       uint32_t msg = *(uint32_t *)data;
+
+       /* Using a channel backwards gets the hardware into a bad state. */
+       if (WARN_ON_ONCE(!(readl(mbox->regs + CTRL_REG(n)) & CTRL_TX(n))))
+               return 0;
+
+       /* We cannot post a new message if the FIFO is full. */
+       if (readl(mbox->regs + FIFO_STAT_REG(n)) & FIFO_STAT_MASK) {
+               mbox_dbg(mbox, "Channel %d busy sending 0x%08x\n", n, msg);
+               return -EBUSY;
+       }
+
This check should go into sun6i_msgbox_last_tx_done().
send_data() assumes all is clear to send next packet.

.....
+
+       mbox->controller.dev           = dev;
+       mbox->controller.ops           = &sun6i_msgbox_chan_ops;
+       mbox->controller.chans         = chans;
+       mbox->controller.num_chans     = NUM_CHANS;
+       mbox->controller.txdone_irq    = false;
+       mbox->controller.txdone_poll   = true;
+       mbox->controller.txpoll_period = 5;
+
nit:  just a single space should do too.

Sorry, for some reason I thought I had replied to this patch, but
apparently not. My mistake. Do you want to revise this submission or
send another patch on top?

thanks

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help