From: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> To: davem@davemloft.net, joabreu@synopsys.com, kuba@kernel.org, alexandre.torgue@st.com, peppe.cavallaro@st.com, mcoquelin.stm32@gmail.com Cc: netdev@vger.kernel.org, boon.leong.ong@intel.com, weifeng.voon@intel.com, vee.khee.wong@intel.com, tee.min.tan@intel.com, mohammad.athari.ismail@intel.com, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, leoyang.li@nxp.com, vladimir.oltean@nxp.com, qiangqing.zhang@nxp.com, rui.sousa@nxp.com, mingkai.hu@nxp.com, yangbo.lu@nxp.com, xiaoliang.yang_1@nxp.com Subject: [PATCH v1 net-next 1/3] net: stmmac: separate the tas basetime calculation function Date: Tue, 1 Jun 2021 16:38:11 +0800 [thread overview] Message-ID: <20210601083813.1078-2-xiaoliang.yang_1@nxp.com> (raw) In-Reply-To: <20210601083813.1078-1-xiaoliang.yang_1@nxp.com> Separate the TAS basetime calculation function so that it can be called by other functions. Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 3 ++ .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 38 ++++++++++++------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h index b6cd43eda7ac..1ce25c95cb06 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h @@ -355,6 +355,9 @@ void stmmac_selftest_run(struct net_device *dev, void stmmac_selftest_get_strings(struct stmmac_priv *priv, u8 *data); int stmmac_selftest_get_count(struct stmmac_priv *priv); #else +struct timespec64 stmmac_calc_tas_basetime(ktime_t old_base_time, + ktime_t current_time, + u64 cycle_time); static inline void stmmac_selftest_run(struct net_device *dev, struct ethtool_test *etest, u64 *buf) { diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c index 4e70efc45458..d7d448c5a72b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -713,6 +713,29 @@ static int tc_setup_cls(struct stmmac_priv *priv, return ret; } +struct timespec64 stmmac_calc_tas_basetime(ktime_t old_base_time, + ktime_t current_time, + u64 cycle_time) +{ + struct timespec64 time; + + if (ktime_after(old_base_time, current_time)) { + time = ktime_to_timespec64(old_base_time); + } else { + s64 n; + ktime_t base_time; + + n = div64_s64(ktime_sub_ns(current_time, old_base_time), + cycle_time); + base_time = ktime_add_ns(old_base_time, + (n + 1) * cycle_time); + + time = ktime_to_timespec64(base_time); + } + + return time; +} + static int tc_setup_taprio(struct stmmac_priv *priv, struct tc_taprio_qopt_offload *qopt) { @@ -816,19 +839,8 @@ static int tc_setup_taprio(struct stmmac_priv *priv, /* Adjust for real system time */ priv->ptp_clock_ops.gettime64(&priv->ptp_clock_ops, ¤t_time); current_time_ns = timespec64_to_ktime(current_time); - if (ktime_after(qopt->base_time, current_time_ns)) { - time = ktime_to_timespec64(qopt->base_time); - } else { - ktime_t base_time; - s64 n; - - n = div64_s64(ktime_sub_ns(current_time_ns, qopt->base_time), - qopt->cycle_time); - base_time = ktime_add_ns(qopt->base_time, - (n + 1) * qopt->cycle_time); - - time = ktime_to_timespec64(base_time); - } + time = stmmac_calc_tas_basetime(qopt->base_time, current_time_ns, + qopt->cycle_time); priv->plat->est->btr[0] = (u32)time.tv_nsec; priv->plat->est->btr[1] = (u32)time.tv_sec; -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> To: davem@davemloft.net, joabreu@synopsys.com, kuba@kernel.org, alexandre.torgue@st.com, peppe.cavallaro@st.com, mcoquelin.stm32@gmail.com Cc: netdev@vger.kernel.org, boon.leong.ong@intel.com, weifeng.voon@intel.com, vee.khee.wong@intel.com, tee.min.tan@intel.com, mohammad.athari.ismail@intel.com, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, leoyang.li@nxp.com, vladimir.oltean@nxp.com, qiangqing.zhang@nxp.com, rui.sousa@nxp.com, mingkai.hu@nxp.com, yangbo.lu@nxp.com, xiaoliang.yang_1@nxp.com Subject: [PATCH v1 net-next 1/3] net: stmmac: separate the tas basetime calculation function Date: Tue, 1 Jun 2021 16:38:11 +0800 [thread overview] Message-ID: <20210601083813.1078-2-xiaoliang.yang_1@nxp.com> (raw) In-Reply-To: <20210601083813.1078-1-xiaoliang.yang_1@nxp.com> Separate the TAS basetime calculation function so that it can be called by other functions. Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac.h | 3 ++ .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 38 ++++++++++++------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h index b6cd43eda7ac..1ce25c95cb06 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h @@ -355,6 +355,9 @@ void stmmac_selftest_run(struct net_device *dev, void stmmac_selftest_get_strings(struct stmmac_priv *priv, u8 *data); int stmmac_selftest_get_count(struct stmmac_priv *priv); #else +struct timespec64 stmmac_calc_tas_basetime(ktime_t old_base_time, + ktime_t current_time, + u64 cycle_time); static inline void stmmac_selftest_run(struct net_device *dev, struct ethtool_test *etest, u64 *buf) { diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c index 4e70efc45458..d7d448c5a72b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -713,6 +713,29 @@ static int tc_setup_cls(struct stmmac_priv *priv, return ret; } +struct timespec64 stmmac_calc_tas_basetime(ktime_t old_base_time, + ktime_t current_time, + u64 cycle_time) +{ + struct timespec64 time; + + if (ktime_after(old_base_time, current_time)) { + time = ktime_to_timespec64(old_base_time); + } else { + s64 n; + ktime_t base_time; + + n = div64_s64(ktime_sub_ns(current_time, old_base_time), + cycle_time); + base_time = ktime_add_ns(old_base_time, + (n + 1) * cycle_time); + + time = ktime_to_timespec64(base_time); + } + + return time; +} + static int tc_setup_taprio(struct stmmac_priv *priv, struct tc_taprio_qopt_offload *qopt) { @@ -816,19 +839,8 @@ static int tc_setup_taprio(struct stmmac_priv *priv, /* Adjust for real system time */ priv->ptp_clock_ops.gettime64(&priv->ptp_clock_ops, ¤t_time); current_time_ns = timespec64_to_ktime(current_time); - if (ktime_after(qopt->base_time, current_time_ns)) { - time = ktime_to_timespec64(qopt->base_time); - } else { - ktime_t base_time; - s64 n; - - n = div64_s64(ktime_sub_ns(current_time_ns, qopt->base_time), - qopt->cycle_time); - base_time = ktime_add_ns(qopt->base_time, - (n + 1) * qopt->cycle_time); - - time = ktime_to_timespec64(base_time); - } + time = stmmac_calc_tas_basetime(qopt->base_time, current_time_ns, + qopt->cycle_time); priv->plat->est->btr[0] = (u32)time.tv_nsec; priv->plat->est->btr[1] = (u32)time.tv_sec; -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-06-01 8:29 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-01 8:38 [PATCH v1 net-next 0/3] net: stmmac: re-configure tas basetime after ptp time adjust Xiaoliang Yang 2021-06-01 8:38 ` Xiaoliang Yang 2021-06-01 8:38 ` Xiaoliang Yang [this message] 2021-06-01 8:38 ` [PATCH v1 net-next 1/3] net: stmmac: separate the tas basetime calculation function Xiaoliang Yang 2021-06-01 10:58 ` kernel test robot 2021-06-01 10:58 ` kernel test robot 2021-06-01 8:38 ` [PATCH v1 net-next 2/3] net: stmmac: add mutex lock to protect est parameters Xiaoliang Yang 2021-06-01 8:38 ` Xiaoliang Yang 2021-06-01 8:38 ` [PATCH v1 net-next 3/3] net: stmmac: ptp: update tas basetime after ptp adjust Xiaoliang Yang 2021-06-01 8:38 ` Xiaoliang Yang 2021-06-01 11:21 ` kernel test robot 2021-06-01 11:21 ` kernel test robot 2021-06-02 10:18 ` Rui Sousa 2021-06-02 10:18 ` Rui Sousa 2021-06-09 9:03 ` Xiaoliang Yang 2021-06-09 9:03 ` Xiaoliang Yang 2021-06-16 17:12 ` Rui Sousa 2021-06-16 17:12 ` Rui Sousa
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=20210601083813.1078-2-xiaoliang.yang_1@nxp.com \ --to=xiaoliang.yang_1@nxp.com \ --cc=alexandre.torgue@st.com \ --cc=boon.leong.ong@intel.com \ --cc=davem@davemloft.net \ --cc=joabreu@synopsys.com \ --cc=kuba@kernel.org \ --cc=leoyang.li@nxp.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=mcoquelin.stm32@gmail.com \ --cc=mingkai.hu@nxp.com \ --cc=mohammad.athari.ismail@intel.com \ --cc=netdev@vger.kernel.org \ --cc=peppe.cavallaro@st.com \ --cc=qiangqing.zhang@nxp.com \ --cc=rui.sousa@nxp.com \ --cc=tee.min.tan@intel.com \ --cc=vee.khee.wong@intel.com \ --cc=vladimir.oltean@nxp.com \ --cc=weifeng.voon@intel.com \ --cc=yangbo.lu@nxp.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: linkBe 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.