diff options
author | Sudeep Holla <sudeep.holla@arm.com> | 2014-11-11 19:33:01 +0100 |
---|---|---|
committer | Jassi Brar <jaswinder.singh@linaro.org> | 2014-11-27 08:20:59 +0100 |
commit | 97b0c7bd2e86c6e1e00c6b7178cf953d5f70c71a (patch) | |
tree | 32772563036f2a73a6603ba15ace848c710520b2 /drivers/mailbox | |
parent | mailbox: Don't unnecessarily re-arm the polling timer (diff) | |
download | linux-97b0c7bd2e86c6e1e00c6b7178cf953d5f70c71a.tar.xz linux-97b0c7bd2e86c6e1e00c6b7178cf953d5f70c71a.zip |
mailbox: add tx_prepare client callback
If the mailbox controller expects the payload is in place before
initiating the transmit, then it's impossible to reuse the list
maintained by core mailbox code currently. Maintaining another list
for sending the message in the controller seems totally unnecessary
as core mailbox library already provides that feature.
This patch introduces tx_prepare callback in mbox_client which
can be used by the core mailbox library before initiating the
transaction through mbox->ops->send_data. The client driver can
implement this callback to ensure the payload is copied to the
shared memory.
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Diffstat (limited to 'drivers/mailbox')
-rw-r--r-- | drivers/mailbox/mailbox.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c index c281e5562876..58789b027708 100644 --- a/drivers/mailbox/mailbox.c +++ b/drivers/mailbox/mailbox.c @@ -78,6 +78,8 @@ static void msg_submit(struct mbox_chan *chan) data = chan->msg_data[idx]; + if (chan->cl->tx_prepare) + chan->cl->tx_prepare(chan->cl, data); /* Try to submit a message to the MBOX controller */ err = chan->mbox->ops->send_data(chan, data); if (!err) { |