Re: [PATCH v2 12/13] net: ethernet: ti: cpts: calc mult and shift from refclk freq
From: Grygorii Strashko <grygorii.strashko@ti.com>
Date: 2016-11-29 16:22:45
Also in:
linux-omap, lkml, netdev
From: Grygorii Strashko <grygorii.strashko@ti.com>
Date: 2016-11-29 16:22:45
Also in:
linux-omap, lkml, netdev
On 11/29/2016 04:34 AM, Richard Cochran wrote:
On Mon, Nov 28, 2016 at 05:03:36PM -0600, Grygorii Strashko wrote:quoted
+static void cpts_calc_mult_shift(struct cpts *cpts) +{ + u64 frac, maxsec, ns; + u32 freq, mult, shift; + + freq = clk_get_rate(cpts->refclk); + + /* Calc the maximum number of seconds which we can run before + * wrapping around. + */ + maxsec = cpts->cc.mask; + do_div(maxsec, freq); + if (maxsec > 600 && cpts->cc.mask > UINT_MAX) + maxsec = 600;The reason for this test is not obvious. Why check cc.mask against UINT_MAX? Please use the comment to explain it.
Yeah. This is copy paste from __clocksource_update_freq_scale(), but I'm going to limit it to 10 sec for now, because otherwise it will result in too small mult in case of 64bit counter. if (maxsec > 10) maxsec = 10; -- regards, -grygorii