Unverified Commit 5c4fe008 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3303 net: hns3: Add support for some CMIS transceiver modules and synchronize...

!3303 net: hns3: Add support for some CMIS transceiver modules and synchronize some CMIS transceiver

Merge Pull Request from: @svishen 
 
This pr Add support for some CMIS transceiver modules, synchronize some CMIS transceiver
and some hns3 bugfix.

issue:
https://gitee.com/openeuler/kernel/issues/I8MV8N 
 
Link:https://gitee.com/openeuler/kernel/pulls/3303

 

Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 177692a2 f18e4f63
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ static int hns3_dcbnl_ieee_delapp(struct net_device *ndev, struct dcb_app *app)
	if (hns3_nic_resetting(ndev))
		return -EBUSY;

	if (h->kinfo.dcb_ops->ieee_setapp)
	if (h->kinfo.dcb_ops->ieee_delapp)
		return h->kinfo.dcb_ops->ieee_delapp(h, app);

	return -EOPNOTSUPP;
+8 −0
Original line number Diff line number Diff line
@@ -1838,6 +1838,14 @@ static int hns3_get_module_info(struct net_device *netdev,
		modinfo->type = ETH_MODULE_SFF_8636;
		modinfo->eeprom_len = ETH_MODULE_SFF_8636_MAX_LEN;
		break;
	case SFF8024_ID_QSFP_DD:
	case SFF8024_ID_QSFP_PLUS_CMIS:
		modinfo->type = ETH_MODULE_SFF_8636;
		if (sfp_type.flat_mem & HNS3_CMIS_FLAT_MEMORY)
			modinfo->eeprom_len = ETH_MODULE_SFF_8636_LEN;
		else
			modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN;
		break;
	default:
		netdev_err(netdev, "Optical module unknown: %#x\n",
			   sfp_type.type);
+2 −0
Original line number Diff line number Diff line
@@ -12,9 +12,11 @@ struct hns3_stats {
	int stats_offset;
};

#define HNS3_CMIS_FLAT_MEMORY	BIT(7)
struct hns3_sfp_type {
	u8 type;
	u8 ext_type;
	u8 flat_mem;
};

struct hns3_pflag_desc {
+3 −2
Original line number Diff line number Diff line
@@ -82,8 +82,9 @@ static int hclge_devlink_reload_down(struct devlink *devlink, bool netns_change,
	struct pci_dev *pdev = hdev->pdev;
	int ret;

	if (test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state)) {
		dev_err(&pdev->dev, "reset is handling\n");
	if (test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state) ||
	    !test_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state)) {
		dev_err(&pdev->dev, "reset is handling or driver removed\n");
		return -EBUSY;
	}

+3 −2
Original line number Diff line number Diff line
@@ -46,8 +46,9 @@ static int hclgevf_devlink_reload_down(struct devlink *devlink,
	struct pci_dev *pdev = hdev->pdev;
	int ret;

	if (test_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state)) {
		dev_err(&pdev->dev, "reset is handling\n");
	if (test_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state) ||
	    !test_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state)) {
		dev_err(&pdev->dev, "reset is handling or driver removed\n");
		return -EBUSY;
	}

Loading