Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1228164

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

From Robert Jarzmik <robert.jarzmik@free.fr>
Newsgroups linux.kernel
Subject Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management
Date 2015-09-18 18:50 +0200
Message-ID <qa71f-8fE-3@gated-at.bofh.it> (permalink)
References <q7S6l-oH-3@gated-at.bofh.it> <q9894-40S-3@gated-at.bofh.it> <q9hm4-uy-35@gated-at.bofh.it> <q9PnH-85q-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management Robert Jarzmik <robert.jarzmik@free.fr> - 2015-09-12 14:30 +0200
  [PATCH v2 3/3] net: irda: pxaficp_ir: dmaengine conversion Robert Jarzmik <robert.jarzmik@free.fr> - 2015-09-12 14:30 +0200
  Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for  time management David Miller <davem@davemloft.net> - 2015-09-16 01:50 +0200
    Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management Robert Jarzmik <robert.jarzmik@free.fr> - 2015-09-16 11:40 +0200
      Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for  time management David Miller <davem@davemloft.net> - 2015-09-18 00:00 +0200
        Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for time management Robert Jarzmik <robert.jarzmik@free.fr> - 2015-09-18 18:50 +0200
          Re: [PATCH v2 1/3] net: irda: pxaficp_ir: use sched_clock() for  time management David Miller <davem@davemloft.net> - 2015-09-22 01:20 +0200

csiph-web