[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CABb+yY2hjXn27c6824t4jz8_=w6cpEbjaP7ptS09S5yLV9Whmg@mail.gmail.com>
Date: Fri, 17 Nov 2017 18:10:41 +0530
From: Jassi Brar <jassisinghbrar@...il.com>
To: Bjorn Andersson <bjorn.andersson@...aro.org>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Alexey Klimov <alexey.klimov@....com>,
Sudeep Holla <sudeep.holla@....com>
Subject: Re: [PATCH] mailbox: txdone_method shouldn't always be reset
On Fri, Nov 17, 2017 at 12:34 PM, Bjorn Andersson
<bjorn.andersson@...aro.org> wrote:
> On Thu 16 Nov 22:47 PST 2017, Jassi Brar wrote:
>> On 16 Nov 2017 23:12, "Bjorn Andersson" <bjorn.andersson@...aro.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.
>
After adding that extra check, the timer function never polls such a channel.
thnx
Powered by blists - more mailing lists