[dpdk-dev] [PATCH 09/12] net/hns3: fix PTP caps report

Min Hu (Connor) humin29 at huawei.com
Tue Apr 13 13:50:08 CEST 2021


From: Chengwen Feng <fengchengwen at huawei.com>

The PTP depends on special packet type reported by hardware which
enabled rxd advanced layout, so if the hardware doesn't support rxd
advanced layout, driver should ignore the PTP capability.

Fixes: 438752358158 ("net/hns3: get device capability from firmware")
Cc: stable at dpdk.org

Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
---
 drivers/net/hns3/hns3_cmd.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index df167f1..b571999 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -422,8 +422,19 @@ hns3_parse_capability(struct hns3_hw *hw,
 	if (hns3_get_bit(caps, HNS3_CAPS_FD_QUEUE_REGION_B))
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_FD_QUEUE_REGION_B,
 			     1);
-	if (hns3_get_bit(caps, HNS3_CAPS_PTP_B))
-		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_PTP_B, 1);
+	if (hns3_get_bit(caps, HNS3_CAPS_PTP_B)) {
+		/*
+		 * PTP depends on special packet type reported by hardware which
+		 * enabled rxd advanced layout, so if the hardware doesn't
+		 * support rxd advanced layout, driver should ignore the PTP
+		 * capability.
+		 */
+		if (hns3_get_bit(caps, HNS3_CAPS_RXD_ADV_LAYOUT_B))
+			hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_PTP_B, 1);
+		else
+			hns3_warn(hw, "ignore PTP capability due to lack of "
+				  "rxd advanced layout capability.");
+	}
 	if (hns3_get_bit(caps, HNS3_CAPS_TX_PUSH_B))
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_TX_PUSH_B, 1);
 	if (hns3_get_bit(caps, HNS3_CAPS_PHY_IMP_B))
-- 
2.7.4



More information about the dev mailing list