Messages in this thread | | | Subject | Re: [PATCH] mailbox: txdone_method shouldn't always be reset | From | Sudeep Holla <> | Date | Fri, 17 Nov 2017 09:51:40 +0000 |
| |
On 17/11/17 07:04, Bjorn Andersson wrote: > On Thu 16 Nov 22:47 PST 2017, Jassi Brar wrote: >> On 16 Nov 2017 23:12, "Bjorn Andersson" <bjorn.andersson@linaro.org> wrote: >> On Thu 16 Nov 09:06 PST 2017, Jassi Brar wrote: >>> diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c >>> index 674b35f..95e480e 100644 >>> --- a/drivers/mailbox/mailbox.c >>> +++ b/drivers/mailbox/mailbox.c >>> @@ -124,7 +124,8 @@ static enum hrtimer_restart txdone_hrtimer(struct >>> hrtimer *hrtimer) >>> for (i = 0; i < mbox->num_chans; i++) { >>> struct mbox_chan *chan = &mbox->chans[i]; >>> >>> - if (chan->active_req && chan->cl) { >>> + if (chan->active_req && chan->cl && >>> + chan->txdone_method == TXDONE_BY_POLL) { >> >> The hrtimer code will crash before reaching this point if the channel >> wasn't TXDONE_BY_POLL when it was created, so this part is not needed. >> >> >> We have one timer for all channels of a controller. While this channel may >> be run by ACK, some other might need to be POLLed. And we want to avoid >> polling this channel. >> > > Oh, you're right. > > But the fact that the timer function will poll channels that are > "upgraded" to ACK is a separate issue. >
Ah right, I recall now that's the reason Alexey had patch introducing timer per channel.
-- Regards, Sudeep
| |