From: Dongdong Liu <liudongdong3@huawei.com>
To: <dev@dpdk.org>, <ferruh.yigit@amd.com>, <thomas@monjalon.net>,
<andrew.rybchenko@oktetlabs.ru>, <fengchengwen@huawei.com>
Cc: <stable@dpdk.org>, <lihuisong@huawei.com>,
<liudongdong3@huawei.com>, <yisen.zhuang@huawei.com>,
<huangdengdui@huawei.com>
Subject: [PATCH 03/11] net/hns3: add the uninitialization process of PTP
Date: Mon, 29 May 2023 21:09:32 +0800 [thread overview]
Message-ID: <20230529130940.1501-4-liudongdong3@huawei.com> (raw)
In-Reply-To: <20230529130940.1501-1-liudongdong3@huawei.com>
From: Huisong Li <lihuisong@huawei.com>
This patch adds the uninitialization process of PTP in case
of having an impact on PF driver in kernel.
Fixes: 38b539d96eb6 ("net/hns3: support IEEE 1588 PTP")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
drivers/net/hns3/hns3_ethdev.c | 2 +
drivers/net/hns3/hns3_ethdev.h | 1 +
drivers/net/hns3/hns3_ptp.c | 68 +++++++++++++++++++++-------------
3 files changed, 46 insertions(+), 25 deletions(-)
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 39bbee1d7b..b62058a0a9 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -4633,6 +4633,7 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
hns3_fdir_filter_uninit(hns);
err_fdir:
hns3_uninit_umv_space(hw);
+ hns3_ptp_uninit(hw);
err_init_hw:
hns3_stats_uninit(hw);
err_get_config:
@@ -4668,6 +4669,7 @@ hns3_uninit_pf(struct rte_eth_dev *eth_dev)
hns3_flow_uninit(eth_dev);
hns3_fdir_filter_uninit(hns);
hns3_uninit_umv_space(hw);
+ hns3_ptp_uninit(hw);
hns3_stats_uninit(hw);
hns3_config_mac_tnl_int(hw, false);
hns3_pf_disable_irq0(hw);
diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h
index 88146f5054..a03dc9fa89 100644
--- a/drivers/net/hns3/hns3_ethdev.h
+++ b/drivers/net/hns3/hns3_ethdev.h
@@ -1043,6 +1043,7 @@ int hns3_restore_ptp(struct hns3_adapter *hns);
int hns3_mbuf_dyn_rx_timestamp_register(struct rte_eth_dev *dev,
struct rte_eth_conf *conf);
int hns3_ptp_init(struct hns3_hw *hw);
+void hns3_ptp_uninit(struct hns3_hw *hw);
int hns3_timesync_enable(struct rte_eth_dev *dev);
int hns3_timesync_disable(struct rte_eth_dev *dev);
int hns3_timesync_read_rx_timestamp(struct rte_eth_dev *dev,
diff --git a/drivers/net/hns3/hns3_ptp.c b/drivers/net/hns3/hns3_ptp.c
index fb834bb180..44cba29854 100644
--- a/drivers/net/hns3/hns3_ptp.c
+++ b/drivers/net/hns3/hns3_ptp.c
@@ -56,31 +56,6 @@ hns3_ptp_int_en(struct hns3_hw *hw, bool en)
return ret;
}
-int
-hns3_ptp_init(struct hns3_hw *hw)
-{
- struct timespec sys_time;
- struct rte_eth_dev *dev;
- int ret;
-
- if (!hns3_dev_get_support(hw, PTP))
- return 0;
-
- ret = hns3_ptp_int_en(hw, true);
- if (ret)
- return ret;
-
- /* Start PTP timer */
- hns3_write_dev(hw, HNS3_CFG_TIME_CYC_EN, 1);
-
- /* Initializing the RTC. */
- dev = &rte_eth_devices[hw->data->port_id];
- clock_gettime(CLOCK_REALTIME, &sys_time);
- (void)hns3_timesync_write_time(dev, &sys_time);
-
- return 0;
-}
-
static int
hns3_timesync_configure(struct hns3_adapter *hns, bool en)
{
@@ -301,3 +276,46 @@ hns3_restore_ptp(struct hns3_adapter *hns)
return ret;
}
+
+int
+hns3_ptp_init(struct hns3_hw *hw)
+{
+ struct timespec sys_time;
+ struct rte_eth_dev *dev;
+ int ret;
+
+ if (!hns3_dev_get_support(hw, PTP))
+ return 0;
+
+ ret = hns3_ptp_int_en(hw, true);
+ if (ret != 0)
+ return ret;
+
+ /* Start PTP timer */
+ hns3_write_dev(hw, HNS3_CFG_TIME_CYC_EN, 1);
+
+ /* Initializing the RTC. */
+ dev = &rte_eth_devices[hw->data->port_id];
+ clock_gettime(CLOCK_REALTIME, &sys_time);
+ (void)hns3_timesync_write_time(dev, &sys_time);
+
+ return 0;
+}
+
+void
+hns3_ptp_uninit(struct hns3_hw *hw)
+{
+ struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+ int ret;
+
+ if (!hns3_dev_get_support(hw, PTP))
+ return;
+
+ ret = hns3_ptp_int_en(hw, false);
+ if (ret != 0)
+ hns3_err(hw, "disable PTP interrupt failed, ret = %d.", ret);
+
+ ret = hns3_timesync_configure(hns, false);
+ if (ret != 0)
+ hns3_err(hw, "disable timesync failed, ret = %d.", ret);
+}
--
2.22.0
next prev parent reply other threads:[~2023-05-29 13:12 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-29 13:09 [PATCH 00/11] net/hns3: add some bugfixes for hns3 Dongdong Liu
2023-05-29 13:09 ` [PATCH 01/11] net/hns3: fix uninitialized RTC time Dongdong Liu
2023-06-02 9:00 ` Ferruh Yigit
2023-06-02 10:55 ` Dongdong Liu
2023-05-29 13:09 ` [PATCH 02/11] net/hns3: fix unenabled RTC time after reset Dongdong Liu
2023-05-29 13:09 ` Dongdong Liu [this message]
2023-05-29 13:09 ` [PATCH 04/11] net/hns3: extract a PTP header file Dongdong Liu
2023-05-29 13:09 ` [PATCH 05/11] net/hns3: fix mbuf leak when start rxq in resetting Dongdong Liu
2023-05-29 13:09 ` [PATCH 06/11] net/hns3: fix mbuf leak when start rxq after resetting Dongdong Liu
2023-05-29 13:09 ` [PATCH 07/11] net/hns3: fix no errcode returned when failed to init queue Dongdong Liu
2023-05-29 13:09 ` [PATCH 08/11] net/hns3: fix uninitialized variable Dongdong Liu
2023-05-29 13:09 ` [PATCH 09/11] net/hns3: make code more clean Dongdong Liu
2023-05-29 13:09 ` [PATCH 10/11] net/hns3: fix inaccurate log Dongdong Liu
2023-05-29 13:09 ` [PATCH 11/11] net/hns3: remove log redundant line break Dongdong Liu
2023-06-02 10:52 ` [PATCH 00/11] net/hns3: add some bugfixes for hns3 Ferruh Yigit
2023-06-02 11:41 ` [PATCH v2 " Dongdong Liu
2023-06-02 11:41 ` [PATCH v2 01/11] net/hns3: fix uninitialized RTC time Dongdong Liu
2023-06-02 11:41 ` [PATCH v2 02/11] net/hns3: fix unenabled RTC time after reset Dongdong Liu
2023-06-02 11:41 ` [PATCH v2 03/11] net/hns3: add the uninitialization process of PTP Dongdong Liu
2023-06-02 11:41 ` [PATCH v2 04/11] net/hns3: extract a PTP header file Dongdong Liu
2023-06-02 11:41 ` [PATCH v2 05/11] net/hns3: fix mbuf leak when start rxq in resetting Dongdong Liu
2023-06-02 11:42 ` [PATCH v2 06/11] net/hns3: fix mbuf leak when start rxq after resetting Dongdong Liu
2023-06-02 11:42 ` [PATCH v2 07/11] net/hns3: fix no errcode returned when failed to init queue Dongdong Liu
2023-06-02 11:42 ` [PATCH v2 08/11] net/hns3: fix uninitialized variable Dongdong Liu
2023-06-02 11:42 ` [PATCH v2 09/11] net/hns3: make code more clean Dongdong Liu
2023-06-02 11:42 ` [PATCH v2 10/11] net/hns3: fix inaccurate log Dongdong Liu
2023-06-02 11:42 ` [PATCH v2 11/11] net/hns3: remove log redundant line break Dongdong Liu
2023-06-02 13:51 ` [PATCH v2 00/11] net/hns3: add some bugfixes for hns3 Ferruh Yigit
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=20230529130940.1501-4-liudongdong3@huawei.com \
--to=liudongdong3@huawei.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=ferruh.yigit@amd.com \
--cc=huangdengdui@huawei.com \
--cc=lihuisong@huawei.com \
--cc=stable@dpdk.org \
--cc=thomas@monjalon.net \
--cc=yisen.zhuang@huawei.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 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).