[PATCH 2/2] common/cnxk: fix VF data offset

Nithin Dabilpuram ndabilpuram at marvell.com
Thu Mar 3 08:00:42 CET 2022


From: Harman Kalra <hkalra at marvell.com>

Data offset should be adjusted for VF to skip extra 8 bytes of timestamp,
if its PF has PTP enabled.

Fixes: c443e0d326e1 ("common/cnxk: support NIX PTP")
Cc: skori at marvell.com

Signed-off-by: Harman Kalra <hkalra at marvell.com>
---
 drivers/common/cnxk/roc_nix.h     | 1 +
 drivers/common/cnxk/roc_nix_ptp.c | 8 ++++++++
 drivers/common/cnxk/version.map   | 1 +
 drivers/net/cnxk/cnxk_ethdev.c    | 4 ++++
 4 files changed, 14 insertions(+)

diff --git a/drivers/common/cnxk/roc_nix.h b/drivers/common/cnxk/roc_nix.h
index 5e6eb58..dbb816d 100644
--- a/drivers/common/cnxk/roc_nix.h
+++ b/drivers/common/cnxk/roc_nix.h
@@ -864,6 +864,7 @@ int __roc_api roc_nix_ptp_sync_time_adjust(struct roc_nix *roc_nix,
 int __roc_api roc_nix_ptp_info_cb_register(struct roc_nix *roc_nix,
 					   ptp_info_update_t ptp_update);
 void __roc_api roc_nix_ptp_info_cb_unregister(struct roc_nix *roc_nix);
+bool __roc_api roc_nix_ptp_is_enable(struct roc_nix *roc_nix);
 
 /* VLAN */
 int __roc_api
diff --git a/drivers/common/cnxk/roc_nix_ptp.c b/drivers/common/cnxk/roc_nix_ptp.c
index 03c4c6e..05e4211 100644
--- a/drivers/common/cnxk/roc_nix_ptp.c
+++ b/drivers/common/cnxk/roc_nix_ptp.c
@@ -120,3 +120,11 @@ roc_nix_ptp_info_cb_unregister(struct roc_nix *roc_nix)
 
 	dev->ops->ptp_info_update = NULL;
 }
+
+bool
+roc_nix_ptp_is_enable(struct roc_nix *roc_nix)
+{
+	struct nix *nix = roc_nix_to_nix_priv(roc_nix);
+
+	return nix->ptp_en;
+}
diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map
index d346e6f..2a122e5 100644
--- a/drivers/common/cnxk/version.map
+++ b/drivers/common/cnxk/version.map
@@ -206,6 +206,7 @@ INTERNAL {
 	roc_nix_ptp_clock_read;
 	roc_nix_ptp_info_cb_register;
 	roc_nix_ptp_info_cb_unregister;
+	roc_nix_ptp_is_enable;
 	roc_nix_ptp_rx_ena_dis;
 	roc_nix_ptp_sync_time_adjust;
 	roc_nix_ptp_tx_ena_dis;
diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c
index deb95ae..1fa4131 100644
--- a/drivers/net/cnxk/cnxk_ethdev.c
+++ b/drivers/net/cnxk/cnxk_ethdev.c
@@ -1123,6 +1123,10 @@ cnxk_nix_configure(struct rte_eth_dev *eth_dev)
 		goto fail_configure;
 	}
 
+	/* Check if ptp is enable in PF owning this VF*/
+	if (!roc_nix_is_pf(nix) && (!roc_nix_is_sdp(nix)))
+		dev->ptp_en = roc_nix_ptp_is_enable(nix);
+
 	dev->npc.channel = roc_nix_get_base_chan(nix);
 
 	nb_rxq = data->nb_rx_queues;
-- 
2.8.4



More information about the dev mailing list