Unverified Commit 1b220dec authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3353 RDMA/hns: Add support more netdev speed

Merge Pull Request from: @stinft 
 
Add support for 100G and 200G speed display in RDMA.
Chengchang Tang (1):
RDMA/hns: Fix port active speed
Haoyue Xu (1):
RDMA/core:Add support more netdev speed

issue:https://gitee.com/openeuler/kernel/issues/I8HZAQ 
 
Link:https://gitee.com/openeuler/kernel/pulls/3353

 

Reviewed-by: default avatarChengchang Tang <tangchengchang@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents e832a3e1 d765b0f6
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1822,8 +1822,9 @@ int ib_get_eth_speed(struct ib_device *dev, u8 port_num, u16 *speed, u8 *width)
		netdev_speed = lksettings.base.speed;
	} else {
		netdev_speed = SPEED_1000;
		pr_warn("%s speed is unknown, defaulting to %d\n", netdev->name,
			netdev_speed);
		if (rc)
			pr_warn("%s speed is unknown, defaulting to %d\n",
				netdev->name, netdev_speed);
	}

	if (netdev_speed <= SPEED_1000) {
@@ -1841,9 +1842,15 @@ int ib_get_eth_speed(struct ib_device *dev, u8 port_num, u16 *speed, u8 *width)
	} else if (netdev_speed <= SPEED_40000) {
		*width = IB_WIDTH_4X;
		*speed = IB_SPEED_FDR10;
	} else {
	} else if (netdev_speed <= SPEED_100000) {
		*width = IB_WIDTH_4X;
		*speed = IB_SPEED_EDR;
	} else if (netdev_speed <= SPEED_200000) {
		*width = IB_WIDTH_4X;
		*speed = IB_SPEED_HDR;
	} else {
		*width = IB_WIDTH_4X;
		*speed = IB_SPEED_NDR;
	}

	return 0;
+5 −2
Original line number Diff line number Diff line
@@ -293,6 +293,7 @@ static int hns_roce_query_port(struct ib_device *ib_dev, u8 port_num,
	unsigned long flags;
	enum ib_mtu mtu;
	u8 port;
	int ret;

	port = port_num - 1;

@@ -305,8 +306,10 @@ static int hns_roce_query_port(struct ib_device *ib_dev, u8 port_num,
				IB_PORT_BOOT_MGMT_SUP;
	props->max_msg_sz = HNS_ROCE_MAX_MSG_LEN;
	props->pkey_tbl_len = 1;
	props->active_width = IB_WIDTH_4X;
	props->active_speed = 1;
	ret = ib_get_eth_speed(ib_dev, port_num, &props->active_speed,
			       &props->active_width);
	if (ret)
		ibdev_warn(ib_dev, "failed to get speed, ret = %d.\n", ret);

	spin_lock_irqsave(&hr_dev->iboe.lock, flags);