[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87si6br8ev.fsf@belgarion.home>
Date: Fri, 18 Sep 2015 18:36:56 +0200
From: Robert Jarzmik <robert.jarzmik@...e.fr>
To: David Miller <davem@...emloft.net>
Cc: samuel@...tiz.org, petr.cvek@....cz, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, arnd@...db.de
Subject: Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management
David Miller <davem@...emloft.net> writes:
>> My understanding is that the flow will be :
>> sched_clock()
>> rd->read_sched_clock() (cyc_to_ns() transformed for return)
>> pxa_read_sched_clock()
>> readl_relaxed(OSCR)
>>
>> I didn't see any timings issue, as the flow looks equivalent to the readl(OSCR),
>> but I might have overlooked something.
>
> Of course it's different, because sched_clock() converts the value read
> from OSCR into nanoseconds, which is obviously different from using the
> OSCR register value directly.
>
> You're therefore feeding different values into this IRDA code.
Ah yes, I see it.
Which brings me to wonder which is the more correct :
(a) replace to reproduce the same calculation
Previously mtt was compared to a difference of 76ns steps (as 307ns / 4 =
76ns):
while ((sched_clock() - si->last_clk) * 76 < mtt)
(b) change the calculation assuming mtt is in microseconds :
while ((sched_clock() - si->last_clk) * 1000 < mtt)
I have no IRDA protocol knowledge so unless someone points me to the correct
calculation I'll try my luck with (b).
Cheers.
--
Robert
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists