Skip to content

Commit

Permalink
net/hns3: uninitialize PTP
Browse files Browse the repository at this point in the history
[ upstream commit bfd20b33e752a2597e85283e9fbb134170cce3a0 ]

This patch adds the uninitialization process of PTP in case
of having an impact on PF driver in kernel.

Fixes: 38b539d ("net/hns3: support IEEE 1588 PTP")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
  • Loading branch information
LiHuiSong1 authored and kevintraynor committed Jul 11, 2023
1 parent d2ec3c3 commit 80d032e
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/net/hns3/hns3_ethdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -4667,6 +4667,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:
Expand Down Expand Up @@ -4702,6 +4703,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);
Expand Down
1 change: 1 addition & 0 deletions drivers/net/hns3/hns3_ethdev.h
Original file line number Diff line number Diff line change
Expand Up @@ -1044,6 +1044,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,
Expand Down
18 changes: 18 additions & 0 deletions drivers/net/hns3/hns3_ptp.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,3 +306,21 @@ hns3_restore_ptp(struct hns3_adapter *hns)

return ret;
}

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);
}

0 comments on commit 80d032e

Please sign in to comment.