linux-renesas-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next 11/14] ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm
       [not found] <20220818222742.1070935-1-jacob.e.keller@intel.com>
@ 2022-08-18 22:27 ` Jacob Keller
  2022-08-20 19:33   ` Sergey Shtylyov
  0 siblings, 1 reply; 3+ messages in thread
From: Jacob Keller @ 2022-08-18 22:27 UTC (permalink / raw)
  To: netdev
  Cc: Jacob Keller, K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger,
	Wei Liu, Dexuan Cui, Tom Lendacky, Shyam Sundar S K,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Siva Reddy Kallam, Prashant Sreedharan, Michael Chan,
	Yisen Zhuang, Salil Mehta, Jesse Brandeburg, Tony Nguyen,
	Tariq Toukan, Saeed Mahameed, Leon Romanovsky, Bryan Whitehead,
	Sergey Shtylyov, Giuseppe Cavallaro, Alexandre Torgue,
	Jose Abreu, Maxime Coquelin, Richard Cochran, Vivek Thampi,
	VMware PV-Drivers Reviewers, Jie Wang, Guangbin Huang,
	Eran Ben Elisha, Aya Levin, Cai Huoqing, Biju Das, Lad Prabhakar,
	Phil Edworthy, Jiasheng Jiang, Gustavo A. R. Silva,
	Linus Walleij, Wan Jiabing, Lv Ruyi, Arnd Bergmann,
	linux-renesas-soc

The ravb implementation of .adjfreq is implemented in terms of a
straight forward "base * ppb / 1 billion" calculation.

Convert this driver to .adjfine and use the adjust_by_scaled_ppm helper
function to calculate the new addend.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Cc: Sergey Shtylyov <s.shtylyov@omp.ru>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Phil Edworthy <phil.edworthy@renesas.com>
Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Cc: linux-renesas-soc@vger.kernel.org
---

I do not have this hardware, and have only compile tested the change.

 drivers/net/ethernet/renesas/ravb_ptp.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet/renesas/ravb_ptp.c
index 87c4306d66ec..941aa3b0e8a0 100644
--- a/drivers/net/ethernet/renesas/ravb_ptp.c
+++ b/drivers/net/ethernet/renesas/ravb_ptp.c
@@ -88,24 +88,18 @@ static int ravb_ptp_update_compare(struct ravb_private *priv, u32 ns)
 }
 
 /* PTP clock operations */
-static int ravb_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb)
+static int ravb_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm)
 {
 	struct ravb_private *priv = container_of(ptp, struct ravb_private,
 						 ptp.info);
 	struct net_device *ndev = priv->ndev;
 	unsigned long flags;
-	u32 diff, addend;
-	bool neg_adj = false;
+	u32 addend;
 	u32 gccr;
 
-	if (ppb < 0) {
-		neg_adj = true;
-		ppb = -ppb;
-	}
 	addend = priv->ptp.default_addend;
-	diff = div_u64((u64)addend * ppb, NSEC_PER_SEC);
-
-	addend = neg_adj ? addend - diff : addend + diff;
+	addend = (u32)adjust_by_scaled_ppm(priv->ptp.default_addend,
+					   scaled_ppm);
 
 	spin_lock_irqsave(&priv->lock, flags);
 
@@ -295,7 +289,7 @@ static const struct ptp_clock_info ravb_ptp_info = {
 	.max_adj	= 50000000,
 	.n_ext_ts	= N_EXT_TS,
 	.n_per_out	= N_PER_OUT,
-	.adjfreq	= ravb_ptp_adjfreq,
+	.adjfine	= ravb_ptp_adjfine,
 	.adjtime	= ravb_ptp_adjtime,
 	.gettime64	= ravb_ptp_gettime64,
 	.settime64	= ravb_ptp_settime64,
-- 
2.37.1.208.ge72d93e88cb2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [net-next 11/14] ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm
  2022-08-18 22:27 ` [net-next 11/14] ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm Jacob Keller
@ 2022-08-20 19:33   ` Sergey Shtylyov
  2022-08-22 17:07     ` Keller, Jacob E
  0 siblings, 1 reply; 3+ messages in thread
From: Sergey Shtylyov @ 2022-08-20 19:33 UTC (permalink / raw)
  To: Jacob Keller, netdev
  Cc: K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger, Wei Liu,
	Dexuan Cui, Tom Lendacky, Shyam Sundar S K, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Siva Reddy Kallam,
	Prashant Sreedharan, Michael Chan, Yisen Zhuang, Salil Mehta,
	Jesse Brandeburg, Tony Nguyen, Tariq Toukan, Saeed Mahameed,
	Leon Romanovsky, Bryan Whitehead, Giuseppe Cavallaro,
	Alexandre Torgue, Jose Abreu, Maxime Coquelin, Richard Cochran,
	Vivek Thampi, VMware PV-Drivers Reviewers, Jie Wang,
	Guangbin Huang, Eran Ben Elisha, Aya Levin, Cai Huoqing,
	Biju Das, Lad Prabhakar, Phil Edworthy, Jiasheng Jiang,
	Gustavo A. R. Silva, Linus Walleij, Wan Jiabing, Lv Ruyi,
	Arnd Bergmann, linux-renesas-soc

Hello!

On 8/19/22 1:27 AM, Jacob Keller wrote:

> The ravb implementation of .adjfreq is implemented in terms of a
> straight forward "base * ppb / 1 billion" calculation.
> 
> Convert this driver to .adjfine and use the adjust_by_scaled_ppm helper
> function to calculate the new addend.
> 
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> Cc: Sergey Shtylyov <s.shtylyov@omp.ru>
> Cc: Biju Das <biju.das.jz@bp.renesas.com>
> Cc: Phil Edworthy <phil.edworthy@renesas.com>
> Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Cc: linux-renesas-soc@vger.kernel.org
> ---
> 
> I do not have this hardware, and have only compile tested the change.
> 
>  drivers/net/ethernet/renesas/ravb_ptp.c | 16 +++++-----------
>  1 file changed, 5 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet/renesas/ravb_ptp.c
> index 87c4306d66ec..941aa3b0e8a0 100644
> --- a/drivers/net/ethernet/renesas/ravb_ptp.c
> +++ b/drivers/net/ethernet/renesas/ravb_ptp.c
> @@ -88,24 +88,18 @@ static int ravb_ptp_update_compare(struct ravb_private *priv, u32 ns)
>  }
>  
>  /* PTP clock operations */
> -static int ravb_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb)
> +static int ravb_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm)
>  {
>  	struct ravb_private *priv = container_of(ptp, struct ravb_private,
>  						 ptp.info);
>  	struct net_device *ndev = priv->ndev;
>  	unsigned long flags;
> -	u32 diff, addend;
> -	bool neg_adj = false;
> +	u32 addend;
>  	u32 gccr;
>  
> -	if (ppb < 0) {
> -		neg_adj = true;
> -		ppb = -ppb;
> -	}
>  	addend = priv->ptp.default_addend;

   I don't think we should keep this line -- it has no effect now...

> -	diff = div_u64((u64)addend * ppb, NSEC_PER_SEC);
> -
> -	addend = neg_adj ? addend - diff : addend + diff;
> +	addend = (u32)adjust_by_scaled_ppm(priv->ptp.default_addend,
> +					   scaled_ppm);
>  
>  	spin_lock_irqsave(&priv->lock, flags);
>  
[...]

MBR, Sergey

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [net-next 11/14] ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm
  2022-08-20 19:33   ` Sergey Shtylyov
@ 2022-08-22 17:07     ` Keller, Jacob E
  0 siblings, 0 replies; 3+ messages in thread
From: Keller, Jacob E @ 2022-08-22 17:07 UTC (permalink / raw)
  To: Sergey Shtylyov, netdev
  Cc: K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger, Wei Liu, Cui,
	Dexuan, Tom Lendacky, Shyam Sundar S K, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Siva Reddy Kallam,
	Prashant Sreedharan, Michael Chan, Yisen Zhuang, Salil Mehta,
	Brandeburg, Jesse, Nguyen, Anthony L, Tariq Toukan,
	Saeed Mahameed, Leon Romanovsky, Bryan Whitehead,
	Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu,
	Maxime Coquelin, Richard Cochran, Thampi, Vivek,
	VMware PV-Drivers Reviewers, Jie Wang, Guangbin Huang,
	Eran Ben Elisha, Aya Levin, Cai Huoqing, Biju Das, Lad Prabhakar,
	Phil Edworthy, Jiasheng Jiang, Gustavo A. R. Silva,
	Linus Walleij, Wan Jiabing, Lv Ruyi, Arnd Bergmann,
	linux-renesas-soc



> -----Original Message-----
> From: Sergey Shtylyov <s.shtylyov@omp.ru>
> Sent: Saturday, August 20, 2022 12:34 PM
> To: Keller, Jacob E <jacob.e.keller@intel.com>; netdev@vger.kernel.org
> Cc: K. Y. Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; Stephen Hemminger <sthemmin@microsoft.com>;
> Wei Liu <wei.liu@kernel.org>; Cui, Dexuan <decui@microsoft.com>; Tom
> Lendacky <thomas.lendacky@amd.com>; Shyam Sundar S K <Shyam-sundar.S-
> k@amd.com>; David S. Miller <davem@davemloft.net>; Eric Dumazet
> <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni
> <pabeni@redhat.com>; Siva Reddy Kallam <siva.kallam@broadcom.com>;
> Prashant Sreedharan <prashant@broadcom.com>; Michael Chan
> <mchan@broadcom.com>; Yisen Zhuang <yisen.zhuang@huawei.com>; Salil
> Mehta <salil.mehta@huawei.com>; Brandeburg, Jesse
> <jesse.brandeburg@intel.com>; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>; Tariq Toukan <tariqt@nvidia.com>; Saeed
> Mahameed <saeedm@nvidia.com>; Leon Romanovsky <leon@kernel.org>;
> Bryan Whitehead <bryan.whitehead@microchip.com>; Giuseppe Cavallaro
> <peppe.cavallaro@st.com>; Alexandre Torgue <alexandre.torgue@foss.st.com>;
> Jose Abreu <joabreu@synopsys.com>; Maxime Coquelin
> <mcoquelin.stm32@gmail.com>; Richard Cochran <richardcochran@gmail.com>;
> Thampi, Vivek <vithampi@vmware.com>; VMware PV-Drivers Reviewers <pv-
> drivers@vmware.com>; Jie Wang <wangjie125@huawei.com>; Guangbin Huang
> <huangguangbin2@huawei.com>; Eran Ben Elisha <eranbe@nvidia.com>; Aya
> Levin <ayal@nvidia.com>; Cai Huoqing <cai.huoqing@linux.dev>; Biju Das
> <biju.das.jz@bp.renesas.com>; Lad Prabhakar <prabhakar.mahadev-
> lad.rj@bp.renesas.com>; Phil Edworthy <phil.edworthy@renesas.com>; Jiasheng
> Jiang <jiasheng@iscas.ac.cn>; Gustavo A. R. Silva <gustavoars@kernel.org>; Linus
> Walleij <linus.walleij@linaro.org>; Wan Jiabing <wanjiabing@vivo.com>; Lv Ruyi
> <lv.ruyi@zte.com.cn>; Arnd Bergmann <arnd@arndb.de>; linux-renesas-
> soc@vger.kernel.org
> Subject: Re: [net-next 11/14] ptp: ravb: convert to .adjfine and
> adjust_by_scaled_ppm
> 
> Hello!
> 
> On 8/19/22 1:27 AM, Jacob Keller wrote:
> 
> > The ravb implementation of .adjfreq is implemented in terms of a
> > straight forward "base * ppb / 1 billion" calculation.
> >
> > Convert this driver to .adjfine and use the adjust_by_scaled_ppm helper
> > function to calculate the new addend.
> >
> > Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> > Cc: Sergey Shtylyov <s.shtylyov@omp.ru>
> > Cc: Biju Das <biju.das.jz@bp.renesas.com>
> > Cc: Phil Edworthy <phil.edworthy@renesas.com>
> > Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > Cc: linux-renesas-soc@vger.kernel.org
> > ---
> >
> > I do not have this hardware, and have only compile tested the change.
> >
> >  drivers/net/ethernet/renesas/ravb_ptp.c | 16 +++++-----------
> >  1 file changed, 5 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c
> b/drivers/net/ethernet/renesas/ravb_ptp.c
> > index 87c4306d66ec..941aa3b0e8a0 100644
> > --- a/drivers/net/ethernet/renesas/ravb_ptp.c
> > +++ b/drivers/net/ethernet/renesas/ravb_ptp.c
> > @@ -88,24 +88,18 @@ static int ravb_ptp_update_compare(struct
> ravb_private *priv, u32 ns)
> >  }
> >
> >  /* PTP clock operations */
> > -static int ravb_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb)
> > +static int ravb_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm)
> >  {
> >  	struct ravb_private *priv = container_of(ptp, struct ravb_private,
> >  						 ptp.info);
> >  	struct net_device *ndev = priv->ndev;
> >  	unsigned long flags;
> > -	u32 diff, addend;
> > -	bool neg_adj = false;
> > +	u32 addend;
> >  	u32 gccr;
> >
> > -	if (ppb < 0) {
> > -		neg_adj = true;
> > -		ppb = -ppb;
> > -	}
> >  	addend = priv->ptp.default_addend;
> 
>    I don't think we should keep this line -- it has no effect now...
> 

Yea this can be dropped.

> > -	diff = div_u64((u64)addend * ppb, NSEC_PER_SEC);
> > -
> > -	addend = neg_adj ? addend - diff : addend + diff;
> > +	addend = (u32)adjust_by_scaled_ppm(priv->ptp.default_addend,
> > +					   scaled_ppm);
> >
> >  	spin_lock_irqsave(&priv->lock, flags);
> >
> [...]
> 
> MBR, Sergey

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-22 17:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20220818222742.1070935-1-jacob.e.keller@intel.com>
2022-08-18 22:27 ` [net-next 11/14] ptp: ravb: convert to .adjfine and adjust_by_scaled_ppm Jacob Keller
2022-08-20 19:33   ` Sergey Shtylyov
2022-08-22 17:07     ` Keller, Jacob E

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).