diff mbox series

[09/12] net/hns3: fix PTP caps report

Message ID 1618314611-47978-10-git-send-email-humin29@huawei.com (mailing list archive)
State Accepted
Delegated to: Ferruh Yigit
Headers show
Series Bugfix for hns3 PMD | expand

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Min Hu (Connor) April 13, 2021, 11:50 a.m. UTC
From: Chengwen Feng <fengchengwen@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@dpdk.org

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

Patch

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