lkml.org 
[lkml]   [2015]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management
Date
David Miller <davem@davemloft.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


\
 
 \ /
  Last update: 2015-09-18 19:01    [W:0.067 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site