From: Richard Cochran <richardcochran@gmail.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: "David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, Mugunthan V N <mugunthanvnm@ti.com>,
Sekhar Nori <nsekhar@ti.com>,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
WingMan Kwok <w-kwok2@ti.com>
Subject: Re: [PATCH 7/9] net: ethernet: ti: cpts: calc mult and shift from refclk freq
Date: Wed, 14 Sep 2016 16:22:11 +0200 [thread overview]
Message-ID: <20160914142210.GE28592@localhost.localdomain> (raw)
In-Reply-To: <20160914130231.3035-8-grygorii.strashko@ti.com>
On Wed, Sep 14, 2016 at 04:02:29PM +0300, Grygorii Strashko wrote:
> @@ -35,6 +33,8 @@ Optional properties:
> For example in dra72x-evm, pcf gpio has to be
> driven low so that cpsw slave 0 and phy data
> lines are connected via mux.
> +- cpts_clock_mult : Numerator to convert input clock ticks into nanoseconds
> +- cpts_clock_shift : Denominator to convert input clock ticks into nanoseconds
You should explain to the reader how these will be calculated when the
properties are missing.
> diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c
> index ff8bb85..8046a21 100644
> --- a/drivers/net/ethernet/ti/cpts.c
> +++ b/drivers/net/ethernet/ti/cpts.c
> @@ -418,18 +418,60 @@ void cpts_unregister(struct cpts *cpts)
> clk_disable(cpts->refclk);
> }
>
> +static void cpts_calc_mult_shift(struct cpts *cpts)
> +{
> + u64 maxsec;
> + u32 freq;
> + u32 mult;
> + u32 shift;
> + u64 ns;
> + u64 frac;
Why so many new lines? This isn't good style. Please combine
variables of the same type into one line and sort the lists
alphabetically.
> + if (cpts->cc_mult || cpts->cc.shift)
> + return;
> +
> + 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)
> + maxsec = 1;
> + else if (maxsec > 600 && cpts->cc.mask > UINT_MAX)
> + maxsec = 600;
> +
> + clocks_calc_mult_shift(&mult, &shift, freq, NSEC_PER_SEC, maxsec);
> +
> + cpts->cc_mult = mult;
> + cpts->cc.mult = mult;
> + cpts->cc.shift = shift;
> + /* Check calculations and inform if not precise */
Contrary to this comment, you are not making any kind of judgment
about whether the calculations are precise or not.
> + frac = 0;
> + ns = cyclecounter_cyc2ns(&cpts->cc, freq, cpts->cc.mask, &frac);
> +
> + dev_info(cpts->dev,
> + "CPTS: ref_clk_freq:%u calc_mult:%u calc_shift:%u error:%lld nsec/sec\n",
> + freq, cpts->cc_mult, cpts->cc.shift, (ns - NSEC_PER_SEC));
> +}
> +
Thanks,
Richard
next prev parent reply other threads:[~2016-09-14 14:22 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-14 13:02 [PATCH 0/9] net: ethernet: ti: cpts: update and fixes Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 13:02 ` [PATCH 1/9] net: ethernet: ti: exclude cpts from build when disabled Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 13:02 ` [PATCH 2/9] net: ethernet: ti: cpsw: minimize direct access to struct cpts Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 13:02 ` [PATCH 3/9] net: ethernet: ti: cpts: rework initialization/deinitialization Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 13:52 ` Richard Cochran
2016-09-14 20:10 ` Grygorii Strashko
2016-09-14 20:10 ` Grygorii Strashko
2016-09-14 20:32 ` Richard Cochran
2016-09-14 20:37 ` Grygorii Strashko
2016-09-14 20:37 ` Grygorii Strashko
2016-09-14 20:52 ` Richard Cochran
2016-09-14 20:59 ` Grygorii Strashko
2016-09-14 20:59 ` Grygorii Strashko
2016-09-15 8:13 ` Richard Cochran
2016-09-14 13:02 ` [PATCH 4/9] net: ethernet: ti: cpts: move dt props parsing to cpts driver Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 13:55 ` Richard Cochran
2016-09-14 19:45 ` Grygorii Strashko
2016-09-14 19:45 ` Grygorii Strashko
2016-09-14 20:03 ` Richard Cochran
2016-09-14 13:02 ` [PATCH 5/9] net: ethernet: ti: cpts: add return value to tx and rx timestamp funcitons Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 14:00 ` Richard Cochran
2016-09-14 13:02 ` [PATCH 6/9] net: ethernet: ti: cpts: clean up event list if event pool is empty Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 14:14 ` Richard Cochran
2016-09-14 19:54 ` Grygorii Strashko
2016-09-14 19:54 ` Grygorii Strashko
2016-09-14 13:02 ` [PATCH 7/9] net: ethernet: ti: cpts: calc mult and shift from refclk freq Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 14:22 ` Richard Cochran [this message]
2016-09-14 19:59 ` Grygorii Strashko
2016-09-14 19:59 ` Grygorii Strashko
2016-09-14 20:26 ` Richard Cochran
2016-09-14 20:47 ` Grygorii Strashko
2016-09-14 20:47 ` Grygorii Strashko
2016-09-14 21:03 ` Richard Cochran
2016-09-14 21:14 ` Grygorii Strashko
2016-09-14 21:14 ` Grygorii Strashko
2016-09-15 11:58 ` Richard Cochran
2016-09-15 13:49 ` Richard Cochran
2016-09-14 13:02 ` [PATCH 8/9] net: ethernet: ti: cpts: fix overflow check period Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
2016-09-14 14:25 ` Richard Cochran
2016-09-14 20:03 ` Grygorii Strashko
2016-09-14 20:03 ` Grygorii Strashko
2016-09-14 20:08 ` Richard Cochran
2016-09-14 20:23 ` Grygorii Strashko
2016-09-14 20:23 ` Grygorii Strashko
2016-09-14 20:43 ` Richard Cochran
2016-09-14 20:48 ` Grygorii Strashko
2016-09-14 20:48 ` Grygorii Strashko
2016-09-14 13:02 ` [PATCH 9/9] net: ethernet: ti: cpts: switch to readl/writel_relaxed() Grygorii Strashko
2016-09-14 13:02 ` Grygorii Strashko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160914142210.GE28592@localhost.localdomain \
--to=richardcochran@gmail.com \
--cc=davem@davemloft.net \
--cc=grygorii.strashko@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=mugunthanvnm@ti.com \
--cc=netdev@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=w-kwok2@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.