Messages in this thread | | | Date | Mon, 22 Sep 2014 19:33:32 +0100 | From | Sudeep Holla <> | Subject | Re: [PATCHv10 2/4] mailbox: Introduce framework for mailbox |
| |
On 22/09/14 19:15, Sudeep Holla wrote: > > > 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. >
Ah, sorry I confused mbox->period to txpoll_period. You are right mbox->period is not set, the header claims it to be private, and hence I assume it needs to be handled only in core mailbox library. Not sure if we need both mbox->period and txpoll_period though.
Regards, Sudeep
| |