remove open coded ns_to_timespec64 and reverse
Subsystems (11)
cover remove open coded ns_to_timespec64 and reverse
This patch series is a follow up to the recent timespec64 work for the PTP Hardware Clock drivers. Arnd noticed that drivers are using open coded implementations of ns_to_timespec64 and timespec64_to_ns. This series replaces the open coded logic with the helper functions.
Thanks,
Richard
Richard Cochran (11):
ptp: blackfin: use helpers for converting ns to timespec.
ptp: bnx2x: use helpers for converting ns to timespec.
ptp: tg3: use helpers for converting ns to timespec.
ptp: fec: use helpers for converting ns to timespec.
ptp: gianfar: use helpers for converting ns to timespec.
ptp: e1000e: use helpers for converting ns to timespec.
ptp: igb: use helpers for converting ns to timespec.
ptp: ixgbe: use helpers for converting ns to timespec.
ptp: mlx4: use helpers for converting ns to timespec.
ptp: stmmac: use helpers for converting ns to timespec.
ptp: cpts: use helpers for converting ns to timespec.
drivers/net/ethernet/adi/bfin_mac.c | 8 +++----- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 7 ++----- drivers/net/ethernet/broadcom/tg3.c | 4 +--- drivers/net/ethernet/freescale/fec_ptp.c | 7 ++----- drivers/net/ethernet/freescale/gianfar_ptp.c | 8 +++----- drivers/net/ethernet/intel/e1000e/ptp.c | 4 +--- drivers/net/ethernet/intel/igb/igb_ptp.c | 7 ++----- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 7 ++----- drivers/net/ethernet/mellanox/mlx4/en_clock.c | 4 +--- drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 4 +--- drivers/net/ethernet/ti/cpts.c | 7 ++----- 11 files changed, 20 insertions(+), 47 deletions(-)
Signature · 1 line
1.7.10.4
PATCH 1/11 ptp: blackfin: use helpers for converting ns to timespec.
This patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
--- drivers/net/ethernet/adi/bfin_mac.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
drivers/net/ethernet/adi/bfin_mac.c +3 -5
@@ -986,7 +986,6 @@ static int bfin_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)static int bfin_ptp_gettime (struct ptp_clock_info *ptp,struct timespec64 *ts) {u64 ns; -u32 remainder;unsigned long flags;struct bfin_mac_local *lp = container_of(ptp, struct bfin_mac_local, caps);
@@ -997,8 +996,8 @@ static int bfin_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)spin_unlock_irqrestore (&lp->phc_lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000 , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns); +return 0 ; }
@@ -1010,8 +1009,7 @@ static int bfin_ptp_settime(struct ptp_clock_info *ptp,struct bfin_mac_local *lp = container_of(ptp, struct bfin_mac_local, caps); - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);spin_lock_irqsave (&lp->phc_lock, flags);
Signature · 1 line
1.7.10.4
PATCH 2/11 ptp: bnx2x: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +2 -5
@@ -13282,14 +13282,12 @@ static int bnx2x_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) { struct bnx2x *bp = container_of(ptp, struct bnx2x, ptp_clock_info);u64 ns; -u32 remainder; ns =timecounter_read (&bp->timecounter);DP (BNX2X_MSG_PTP ,"PTP gettime called, ns = %llu\n" , ns); - ts->tv_sec =div_u64_rem (ns,1000000000ULL , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
@@ -13300,8 +13298,7 @@ static int bnx2x_ptp_settime(struct ptp_clock_info *ptp, struct bnx2x *bp = container_of(ptp, struct bnx2x, ptp_clock_info);u64 ns; - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);DP (BNX2X_MSG_PTP ,"PTP settime called, ns = %llu\n" , ns);
Signature · 1 line
1.7.10.4
PATCH 3/11 ptp: tg3: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/broadcom/tg3.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/net/ethernet/broadcom/tg3.c +1 -3
@@ -6220,7 +6220,6 @@ static int tg3_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)static int tg3_ptp_gettime (struct ptp_clock_info *ptp,struct timespec64 *ts) {u64 ns; -u32 remainder; struct tg3 *tp = container_of(ptp, struct tg3, ptp_info);tg3_full_lock (tp,0 );
@@ -6228,8 +6227,7 @@ static int tg3_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) ns += tp->ptp_adjust;tg3_full_unlock (tp); - ts->tv_sec =div_u64_rem (ns,1000000000 , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
Signature · 1 line
1.7.10.4
PATCH 4/11 ptp: fec: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/freescale/fec_ptp.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/net/ethernet/freescale/fec_ptp.c +2 -5
@@ -395,15 +395,13 @@ static int fec_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)struct fec_enet_private *adapter = container_of(ptp, struct fec_enet_private, ptp_caps);u64 ns; -u32 remainder;unsigned long flags;spin_lock_irqsave (&adapter->tmreg_lock, flags); ns =timecounter_read (&adapter->tc);spin_unlock_irqrestore (&adapter->tmreg_lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000ULL , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
@@ -433,8 +431,7 @@ static int fec_ptp_settime(struct ptp_clock_info *ptp,return -EINVAL ; } - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);/* Get the timer value based on timestamp. * Update the counter with the masked value. */
Signature · 1 line
1.7.10.4
PATCH 5/11 ptp: gianfar: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
--- drivers/net/ethernet/freescale/gianfar_ptp.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
drivers/net/ethernet/freescale/gianfar_ptp.c +3 -5
@@ -326,7 +326,6 @@ static int ptp_gianfar_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) {u64 ns; -u32 remainder;unsigned long flags; struct etsects *etsects = container_of(ptp, struct etsects, caps);
@@ -336,8 +335,8 @@ static int ptp_gianfar_gettime(struct ptp_clock_info *ptp,spin_unlock_irqrestore (&etsects->lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000 , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns); +return 0 ; }
@@ -348,8 +347,7 @@ static int ptp_gianfar_settime(struct ptp_clock_info *ptp,unsigned long flags; struct etsects *etsects = container_of(ptp, struct etsects, caps); - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);spin_lock_irqsave (&etsects->lock, flags);
Signature · 1 line
1.7.10.4
PATCH 6/11 ptp: e1000e: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/intel/e1000e/ptp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/net/ethernet/intel/e1000e/ptp.c +1 -3
@@ -111,15 +111,13 @@ static int e1000e_phc_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) struct e1000_adapter *adapter = container_of(ptp, struct e1000_adapter, ptp_clock_info);unsigned long flags; -u32 remainder;u64 ns;spin_lock_irqsave (&adapter->systim_lock, flags); ns =timecounter_read (&adapter->tc);spin_unlock_irqrestore (&adapter->systim_lock, flags); - ts->tv_sec =div_u64_rem (ns,NSEC_PER_SEC , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
Signature · 1 line
1.7.10.4
Re: [PATCH net-next 06/11] ptp: e1000e: use helpers for converting ns to timespec.
Quoted 21 lines · Richard Cochran
This patch changes the driver to use
ns_to_timespec64()instead of open coding the same logic.Compile tested only.
Signed-off-by Richard Cochran <[email protected]>--- drivers/net/ethernet/intel/e1000e/ptp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)drivers/net/ethernet/intel/e1000e/ptp.c +0
-1@@ -111,15 +111,13 @@ static int e1000e_phc_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) struct e1000_adapter *adapter = container_of(ptp, struct e1000_adapter, ptp_clock_info);unsigned long flags; -u32 remainder;u64 ns;
drivers/net/ethernet/intel/e1000e/ptp.c static int e1000e_phc_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) · line 123
Quoted 10 lines
drivers/net/ethernet/intel/e1000e/ptp.c +1
-2spin_lock_irqsave (&adapter->systim_lock, flags); ns =timecounter_read (&adapter->tc);spin_unlock_irqrestore (&adapter->systim_lock, flags); - ts->tv_sec =div_u64_rem (ns,NSEC_PER_SEC , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
PATCH 7/11 ptp: igb: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/intel/igb/igb_ptp.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/net/ethernet/intel/igb/igb_ptp.c +2 -5
@@ -290,7 +290,6 @@ static int igb_ptp_gettime_82576(struct ptp_clock_info *ptp, ptp_caps);unsigned long flags;u64 ns; -u32 remainder;spin_lock_irqsave (&igb->tmreg_lock, flags);
@@ -298,8 +297,7 @@ static int igb_ptp_gettime_82576(struct ptp_clock_info *ptp,spin_unlock_irqrestore (&igb->tmreg_lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000 , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
@@ -328,8 +326,7 @@ static int igb_ptp_settime_82576(struct ptp_clock_info *ptp,unsigned long flags;u64 ns; - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);spin_lock_irqsave (&igb->tmreg_lock, flags);
Signature · 1 line
1.7.10.4
PATCH 8/11 ptp: ixgbe: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c +2 -5
@@ -284,15 +284,13 @@ static int ixgbe_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)struct ixgbe_adapter *adapter = container_of(ptp, struct ixgbe_adapter, ptp_caps);u64 ns; -u32 remainder;unsigned long flags;spin_lock_irqsave (&adapter->tmreg_lock, flags); ns =timecounter_read (&adapter->tc);spin_unlock_irqrestore (&adapter->tmreg_lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000ULL , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
@@ -313,8 +311,7 @@ static int ixgbe_ptp_settime(struct ptp_clock_info *ptp,u64 ns;unsigned long flags; - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);/* reset the timecounter */ spin_lock_irqsave (&adapter->tmreg_lock, flags);
Signature · 1 line
1.7.10.4
PATCH 9/11 ptp: mlx4: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/mellanox/mlx4/en_clock.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/net/ethernet/mellanox/mlx4/en_clock.c +1 -3
@@ -170,15 +170,13 @@ static int mlx4_en_phc_gettime(struct ptp_clock_info *ptp, struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev, ptp_clock_info);unsigned long flags; -u32 remainder;u64 ns;write_lock_irqsave (&mdev->clock_lock, flags); ns =timecounter_read (&mdev->clock);write_unlock_irqrestore (&mdev->clock_lock, flags); - ts->tv_sec =div_u64_rem (ns,NSEC_PER_SEC , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
Signature · 1 line
1.7.10.4
PATCH 10/11 ptp: stmmac: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c +1 -3
@@ -111,7 +111,6 @@ static int stmmac_get_time(struct ptp_clock_info *ptp, struct timespec64 *ts) container_of(ptp, struct stmmac_priv, ptp_clock_ops);unsigned long flags;u64 ns; -u32 reminder;spin_lock_irqsave (&priv->ptp_lock, flags);
@@ -119,8 +118,7 @@ static int stmmac_get_time(struct ptp_clock_info *ptp, struct timespec64 *ts)spin_unlock_irqrestore (&priv->ptp_lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000ULL , &reminder); - ts->tv_nsec = reminder; + *ts =ns_to_timespec64 (ns);return 0 ; }
Signature · 1 line
1.7.10.4
PATCH 11/11 ptp: cpts: use helpers for converting ns to timespec.
In reply to Richard CochranThis patch changes the driver to use ns_to_timespec64() and timespec64_to_ns() instead of open coding the same logic.
Compile tested only.
--- drivers/net/ethernet/ti/cpts.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/net/ethernet/ti/cpts.c +2 -5
@@ -170,7 +170,6 @@ static int cpts_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta)static int cpts_ptp_gettime (struct ptp_clock_info *ptp,struct timespec64 *ts) {u64 ns; -u32 remainder;unsigned long flags; struct cpts *cpts = container_of(ptp, struct cpts, info);
@@ -178,8 +177,7 @@ static int cpts_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts) ns =timecounter_read (&cpts->tc);spin_unlock_irqrestore (&cpts->lock, flags); - ts->tv_sec =div_u64_rem (ns,1000000000 , &remainder); - ts->tv_nsec = remainder; + *ts =ns_to_timespec64 (ns);return 0 ; }
@@ -191,8 +189,7 @@ static int cpts_ptp_settime(struct ptp_clock_info *ptp,unsigned long flags; struct cpts *cpts = container_of(ptp, struct cpts, info); - ns = ts->tv_sec *1000000000ULL ; - ns += ts->tv_nsec; + ns =timespec64_to_ns (ts);spin_lock_irqsave (&cpts->lock, flags);timecounter_init (&cpts->tc, &cpts->cc, ns);
Signature · 1 line
1.7.10.4
Quoted 21 lines · Richard Cochran
This patch series is a follow up to the recent timespec64 work for the PTP Hardware Clock drivers. Arnd noticed that drivers are using open coded implementations of
ns_to_timespec64andtimespec64_to_ns. This series replaces the open coded logic with the helper functions.Thanks,
RichardRichard Cochran (11):
ptp: blackfin: use helpers for converting ns to timespec.
ptp: bnx2x: use helpers for converting ns to timespec.
ptp: tg3: use helpers for converting ns to timespec.
ptp: fec: use helpers for converting ns to timespec.
ptp: gianfar: use helpers for converting ns to timespec.
ptp: e1000e: use helpers for converting ns to timespec.
ptp: igb: use helpers for converting ns to timespec.
ptp: ixgbe: use helpers for converting ns to timespec.
ptp: mlx4: use helpers for converting ns to timespec.
ptp: stmmac: use helpers for converting ns to timespec.
ptp: cpts: use helpers for converting ns to timespec.
Quoted 13 lines
drivers/net/ethernet/adi/bfin_mac.c | 8 +++----- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 7 ++----- drivers/net/ethernet/broadcom/tg3.c | 4 +--- drivers/net/ethernet/freescale/fec_ptp.c | 7 ++----- drivers/net/ethernet/freescale/gianfar_ptp.c | 8 +++----- drivers/net/ethernet/intel/e1000e/ptp.c | 4 +--- drivers/net/ethernet/intel/igb/igb_ptp.c | 7 ++----- drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 7 ++----- drivers/net/ethernet/mellanox/mlx4/en_clock.c | 4 +--- drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 4 +--- drivers/net/ethernet/ti/cpts.c | 7 ++----- 11 files changed, 20 insertions(+), 47 deletions(-)
For all the Intel drivers, this looks fine. I'm surprised I never noticed before.
Quoted 2 lines · Jacob E
For all the Intel drivers, this looks fine. I'm surprised I never noticed before.
I think the helpers appeared only after the first PHC drivers.
Thanks,
Richard
David Miller
maintainerFrom: Richard Cochran <[email protected]>
Date: Tue, 31 Mar 2015 23:08:05 +0200
Quoted 4 lines
This patch series is a follow up to the recent timespec64 work for the PTP Hardware Clock drivers. Arnd noticed that drivers are using open coded implementations of
ns_to_timespec64andtimespec64_to_ns. This series replaces the open coded logic with the helper functions.
Looks good, series applied, thanks.