171 lines
5.7 KiB
Diff
171 lines
5.7 KiB
Diff
From c2d68c8d8c58d761ecf66d36d69e459ba46a2f34 Mon Sep 17 00:00:00 2001
|
|
From: Guangbin Huang <huangguangbin2@huawei.com>
|
|
Date: Tue, 28 Sep 2021 11:51:54 +0800
|
|
Subject: [PATCH 104/283] net: hns3: add macros for mac speeds of firmware
|
|
command
|
|
|
|
mainline inclusion
|
|
from mainline-v5.15-rc1
|
|
commit 4c116f85ecf8c147450602ed47ee25de60807f45
|
|
category: feature
|
|
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I8EMYT
|
|
CVE: NA
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4c116f85ecf8c147450602ed47ee25de60807f45
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
To improve code readability, replace digital numbers of mac speeds
|
|
defined by firmware command with macros.
|
|
|
|
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Reviewed-by: Yongxin Li <liyongxin1@huawei.com>
|
|
Signed-off-by: Junxin Chen <chenjunxin1@huawei.com>
|
|
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
|
Signed-off-by: Xiaodong Li <lixiaodong67@huawei.com>
|
|
|
|
Conflicts:
|
|
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
|
|
---
|
|
.../hisilicon/hns3/hns3pf/hclge_cmd.h | 13 +++++++
|
|
.../hisilicon/hns3/hns3pf/hclge_main.c | 39 +++++++++++--------
|
|
.../hisilicon/hns3/hns3pf/hclge_main.h | 3 +-
|
|
3 files changed, 38 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
|
|
index 5daf24ca0e4e..c8e8ca961c53 100644
|
|
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
|
|
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h
|
|
@@ -1196,6 +1196,19 @@ struct hclge_dev_specs_1_cmd {
|
|
u8 rsv1[18];
|
|
};
|
|
|
|
+/* mac speed type defined in firmware command */
|
|
+enum HCLGE_FIRMWARE_MAC_SPEED {
|
|
+ HCLGE_FW_MAC_SPEED_1G,
|
|
+ HCLGE_FW_MAC_SPEED_10G,
|
|
+ HCLGE_FW_MAC_SPEED_25G,
|
|
+ HCLGE_FW_MAC_SPEED_40G,
|
|
+ HCLGE_FW_MAC_SPEED_50G,
|
|
+ HCLGE_FW_MAC_SPEED_100G,
|
|
+ HCLGE_FW_MAC_SPEED_10M,
|
|
+ HCLGE_FW_MAC_SPEED_100M,
|
|
+ HCLGE_FW_MAC_SPEED_200G,
|
|
+};
|
|
+
|
|
#define HCLGE_PHY_LINK_SETTING_BD_NUM 2
|
|
|
|
struct hclge_phy_link_ksetting_0_cmd {
|
|
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
|
|
index e8937e67ea47..ecbf9487b977 100644
|
|
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
|
|
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
|
|
@@ -942,30 +942,33 @@ static int hclge_query_pf_resource(struct hclge_dev *hdev)
|
|
static int hclge_parse_speed(u8 speed_cmd, u32 *speed)
|
|
{
|
|
switch (speed_cmd) {
|
|
- case 6:
|
|
+ case HCLGE_FW_MAC_SPEED_10M:
|
|
*speed = HCLGE_MAC_SPEED_10M;
|
|
break;
|
|
- case 7:
|
|
+ case HCLGE_FW_MAC_SPEED_100M:
|
|
*speed = HCLGE_MAC_SPEED_100M;
|
|
break;
|
|
- case 0:
|
|
+ case HCLGE_FW_MAC_SPEED_1G:
|
|
*speed = HCLGE_MAC_SPEED_1G;
|
|
break;
|
|
- case 1:
|
|
+ case HCLGE_FW_MAC_SPEED_10G:
|
|
*speed = HCLGE_MAC_SPEED_10G;
|
|
break;
|
|
- case 2:
|
|
+ case HCLGE_FW_MAC_SPEED_25G:
|
|
*speed = HCLGE_MAC_SPEED_25G;
|
|
break;
|
|
- case 3:
|
|
+ case HCLGE_FW_MAC_SPEED_40G:
|
|
*speed = HCLGE_MAC_SPEED_40G;
|
|
break;
|
|
- case 4:
|
|
+ case HCLGE_FW_MAC_SPEED_50G:
|
|
*speed = HCLGE_MAC_SPEED_50G;
|
|
break;
|
|
- case 5:
|
|
+ case HCLGE_FW_MAC_SPEED_100G:
|
|
*speed = HCLGE_MAC_SPEED_100G;
|
|
break;
|
|
+ case HCLGE_FW_MAC_SPEED_200G:
|
|
+ *speed = HCLGE_MAC_SPEED_200G;
|
|
+ break;
|
|
default:
|
|
return -EINVAL;
|
|
}
|
|
@@ -2503,35 +2506,39 @@ int hclge_cfg_mac_speed_dup_hw(struct hclge_dev *hdev, int speed,
|
|
switch (speed) {
|
|
case HCLGE_MAC_SPEED_10M:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 6);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_10M);
|
|
break;
|
|
case HCLGE_MAC_SPEED_100M:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 7);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_100M);
|
|
break;
|
|
case HCLGE_MAC_SPEED_1G:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 0);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_1G);
|
|
break;
|
|
case HCLGE_MAC_SPEED_10G:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 1);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_10G);
|
|
break;
|
|
case HCLGE_MAC_SPEED_25G:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 2);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_25G);
|
|
break;
|
|
case HCLGE_MAC_SPEED_40G:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 3);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_40G);
|
|
break;
|
|
case HCLGE_MAC_SPEED_50G:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 4);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_50G);
|
|
break;
|
|
case HCLGE_MAC_SPEED_100G:
|
|
hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
- HCLGE_CFG_SPEED_S, 5);
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_100G);
|
|
+ break;
|
|
+ case HCLGE_MAC_SPEED_200G:
|
|
+ hnae3_set_field(req->speed_dup, HCLGE_CFG_SPEED_M,
|
|
+ HCLGE_CFG_SPEED_S, HCLGE_FW_MAC_SPEED_200G);
|
|
break;
|
|
default:
|
|
dev_err(&hdev->pdev->dev, "invalid speed (%d)\n", speed);
|
|
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
|
|
index eda3120be294..9dacd7136ed9 100644
|
|
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
|
|
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
|
|
@@ -253,7 +253,8 @@ enum HCLGE_MAC_SPEED {
|
|
HCLGE_MAC_SPEED_25G = 25000, /* 25000 Mbps = 25 Gbps */
|
|
HCLGE_MAC_SPEED_40G = 40000, /* 40000 Mbps = 40 Gbps */
|
|
HCLGE_MAC_SPEED_50G = 50000, /* 50000 Mbps = 50 Gbps */
|
|
- HCLGE_MAC_SPEED_100G = 100000 /* 100000 Mbps = 100 Gbps */
|
|
+ HCLGE_MAC_SPEED_100G = 100000, /* 100000 Mbps = 100 Gbps */
|
|
+ HCLGE_MAC_SPEED_200G = 200000 /* 200000 Mbps = 200 Gbps */
|
|
};
|
|
|
|
enum HCLGE_MAC_DUPLEX {
|
|
--
|
|
2.34.1
|
|
|