Re: [PATCH v4 2/2] mailbox: sprd: Add Spreadtrum mailbox driver

From: Baolin Wang
Date: Wed May 06 2020 - 23:23:30 EST


Hi Jassi,

On Thu, May 7, 2020 at 7:25 AM Jassi Brar <jassisinghbrar@xxxxxxxxx> wrote:
>
> On Wed, May 6, 2020 at 8:29 AM Baolin Wang <baolin.wang7@xxxxxxxxx> wrote:
> >
> > Hi Jassi,
> >
> > On Tue, Apr 28, 2020 at 11:10 AM Baolin Wang <baolin.wang7@xxxxxxxxx> wrote:
> > >
> > > From: Baolin Wang <baolin.wang@xxxxxxxxxx>
> > >
> > > The Spreadtrum mailbox controller supports 8 channels to communicate
> > > with MCUs, and it contains 2 different parts: inbox and outbox, which
> > > are used to send and receive messages by IRQ mode.
> > >
> > > Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
> > > Signed-off-by: Baolin Wang <baolin.wang7@xxxxxxxxx>
> > > ---
> > > Changes from v3:
> > > - Save the id in mbox_chan.con_priv and remove the 'sprd_mbox_chan'
> > >
> > > Changes from v2:
> > > - None.
> > >
> > > Changes from v1:
> > > - None
> >
> > Gentle ping, do you have any other comments? Thanks.
> >
> Yea, I am still not sure about the error returned in send_data(). It
> will either never hit or there will be no easy recovery from it. The
> api expects the driver to tell it the last-tx was done only when it
> can send the next message. (There may be case like sending depend on
> remote, which can't be ensured before hand).

Actually this is an unusual case, suppose the remote target did not
fetch the message as soon as possile, which will cause the FIFO
overflow, so in this case we can not send messages to the remote
target any more, otherwise messages will be lost. Thus we can return
errors to users to indicate that something wrong with the remote
target need to be checked.

So this validation in send_data() is mostly for debugging for this
abnormal case and we will not trigger this issue if the remote target
works well. So I think it is useful to keep this validation in
send_data(). Thanks.

--
Baolin Wang