Messages in this thread | | | Date | Mon, 22 Sep 2014 19:15:56 +0100 | From | Sudeep Holla <> | Subject | Re: [PATCHv10 2/4] mailbox: Introduce framework for mailbox |
| |
On 22/09/14 19:01, Ashwin Chaugule wrote: > Hi Jassi, > > On 1 August 2014 08:31, Jassi Brar <jaswinder.singh@linaro.org> wrote: >> Introduce common framework for client/protocol drivers and >> controller drivers of Inter-Processor-Communication (IPC). >> >> Client driver developers should have a look at >> include/linux/mailbox_client.h to understand the part of >> the API exposed to client drivers. >> Similarly controller driver developers should have a look >> at include/linux/mailbox_controller.h >> >> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org> >> --- >> MAINTAINERS | 8 + >> drivers/mailbox/Makefile | 4 + >> drivers/mailbox/mailbox.c | 466 +++++++++++++++++++++++++++++++++++++ >> include/linux/mailbox_client.h | 46 ++++ >> include/linux/mailbox_controller.h | 135 +++++++++++ >> 5 files changed, 659 insertions(+) >> create mode 100644 drivers/mailbox/mailbox.c >> create mode 100644 include/linux/mailbox_client.h >> create mode 100644 include/linux/mailbox_controller.h >> > > [..] > >> + >> +static void poll_txdone(unsigned long data) >> +{ >> + struct mbox_controller *mbox = (struct mbox_controller *)data; >> + bool txdone, resched = false; >> + int i; >> + >> + for (i = 0; i < mbox->num_chans; i++) { >> + struct mbox_chan *chan = &mbox->chans[i]; >> + >> + if (chan->active_req && chan->cl) { >> + resched = true; >> + txdone = chan->mbox->ops->last_tx_done(chan); >> + if (txdone) >> + tx_tick(chan, 0); >> + } >> + } >> + >> + if (resched) >> + mod_timer(&mbox->poll, jiffies + >> + msecs_to_jiffies(mbox->period)); > > While preparing a different patch which uses the Mbox framework, I > noticed that mbox->period might not be initialized anywhere. Also, how > is mbox->txpoll_period to be used? It appears from the description of > txpoll_period in mbox_controller.h that you'd want to use that value > in the mod_timer above, or equate the two somewhere in the controller > registration or eliminate one of the two. FWIW I also looked at your > code in [1]. >
IIUC the controller needs to set the txpoll_period if it sets txdone_poll, may be a sanity check for !0 would be good.
Regards, Sudeep
| |