On 22 September 2014 14:33, Sudeep Holla <sudeep.holla@xxxxxxx> wrote: > 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@xxxxxxxxxx> 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@xxxxxxxxxx> >>>> --- >>>> 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. Right. I dont see the need for having both either. Unless the Mailbox maintainer wants to fix this in some other way, I can send a patch for replacing mbox->period with mbox->txpoll_period along with my PCC work. Thanks, Ashwin -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html