[PATCH v3 1/2] ath10k: handle cycle counter wraparound

Michal Kazior michal.kazior at tieto.com
Mon May 25 01:23:54 PDT 2015


On 22 May 2015 at 19:11, Srinivasa Duvvuri <sduvvuri at google.com> wrote:
> Michal,
>    Sorry I was out sick last few days. Thanks for splitting and creating 2
> patches.
>    The math for total cycle counts makes sense but the math to handle the
> rx_clear_count
>    does not seem right to me. For the total cycle count we know that the
> count changes
>    from 0xffffffff to 0x7fffffff. So, we clearly know the wrap around point
> . But for
>    rcc( rx_clear_count)  we do not know when this count is halfed (wrapped).
>
>    Lets say rcc_prev  is the previous clear cycle count, rcc is the current
> clear cycle count
>    and rcc_wrap is a point at which the the total cycle count is wrapped
> from 0xfffffffff to 0x7fffffff .
>    At that point the rcc_wrap resets to rcc_wrap/2.
>
>     Here is how counts wrap around.
>
>    cc_prev  ............0xffffffff    -> 0x7fffffff ................ cc
>    rcc_prev ............rcc_wrap ->  rcc_wrap/2 ........... rcc.
>
>    The right math to calculate rcc_delta would be  (rcc_wrap - rcc_prev) +
> (rcc - rcc_wrap/2).
>    To do the math,  we need the rcc_wrap which we do not have.
>    the patch seems to simply do  2*rcc - rcc_prev . Unless I am missing
> something,
>    this does not seem right to me.

Ah, you're right. I guess I'll need to discard the data like you
originally did upon wraparound detection.


Michał



More information about the ath10k mailing list