Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management

From: David Miller
Date: Thu Sep 17 2015 - 17:51:16 EST


From: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Wed, 16 Sep 2015 11:34:01 +0200

> David Miller <davem@xxxxxxxxxxxxx> writes:
>
>> From: Robert Jarzmik <robert.jarzmik@xxxxxxx>
>> Date: Sat, 12 Sep 2015 13:45:22 +0200
>>
>>> Instead of using directly the OS timer through direct register access,
>>> use the standard sched_clock(), which will end up in OSCR reading
>>> anyway.
>>>
>>> This is a first step for direct access register removal and machine
>>> specific code removal from this driver.
>>>
>>> Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
>>
>> What is the granularity of the OSCR register?
> It's 307ns (ie. 3.25MHz clock).
>
>> If it is not nanoseconds, then you need to adjust calculations
>> such as this one:
> Tell me if the 307ns requires something I should adjust.
>
> 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/