Commit 90d9834e authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'net-hns3-misc-updates-for-next'



Huazhong Tan says:

====================
net: hns3: misc updates for -next

This patchset includes some misc updates for the HNS3 ethernet driver.

 #1 & #2 add two cleanups.
 #3 provides an interface for the client to query the CMDQ's status.
 #4 adds a little optimization about debugfs.
 #5 prevents 1000M auto-negotiation off setting.
====================

Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents bed37f0b 81c287e3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -552,6 +552,7 @@ struct hnae3_ae_ops {
	int (*set_vf_mac)(struct hnae3_handle *handle, int vf, u8 *p);
	int (*get_module_eeprom)(struct hnae3_handle *handle, u32 offset,
				 u32 len, u8 *data);
	bool (*get_cmdq_stat)(struct hnae3_handle *handle);
};

struct hnae3_dcb_ops {
+6 −1
Original line number Diff line number Diff line
@@ -773,8 +773,13 @@ static int hns3_set_link_ksettings(struct net_device *netdev,
		  cmd->base.autoneg, cmd->base.speed, cmd->base.duplex);

	/* Only support ksettings_set for netdev with phy attached for now */
	if (netdev->phydev)
	if (netdev->phydev) {
		if (cmd->base.speed == SPEED_1000 &&
		    cmd->base.autoneg == AUTONEG_DISABLE)
			return -EINVAL;

		return phy_ethtool_ksettings_set(netdev->phydev, cmd);
	}

	if (handle->pdev->revision == 0x20)
		return -EOPNOTSUPP;
+2 −2
Original line number Diff line number Diff line
@@ -184,11 +184,11 @@ enum hclge_opcode_type {
	/* TQP commands */
	HCLGE_OPC_CFG_TX_QUEUE		= 0x0B01,
	HCLGE_OPC_QUERY_TX_POINTER	= 0x0B02,
	HCLGE_OPC_QUERY_TX_STATUS	= 0x0B03,
	HCLGE_OPC_QUERY_TX_STATS	= 0x0B03,
	HCLGE_OPC_TQP_TX_QUEUE_TC	= 0x0B04,
	HCLGE_OPC_CFG_RX_QUEUE		= 0x0B11,
	HCLGE_OPC_QUERY_RX_POINTER	= 0x0B12,
	HCLGE_OPC_QUERY_RX_STATUS	= 0x0B13,
	HCLGE_OPC_QUERY_RX_STATS	= 0x0B13,
	HCLGE_OPC_STASH_RX_QUEUE_LRO	= 0x0B16,
	HCLGE_OPC_CFG_RX_QUEUE_LRO	= 0x0B17,
	HCLGE_OPC_CFG_COM_TQP_QUEUE	= 0x0B20,
+10 −5
Original line number Diff line number Diff line
@@ -1258,6 +1258,7 @@ static void hclge_dbg_dump_ncl_config(struct hclge_dev *hdev,
{
#define HCLGE_MAX_NCL_CONFIG_OFFSET	4096
#define HCLGE_NCL_CONFIG_LENGTH_IN_EACH_CMD	(20 + 24 * 4)
#define HCLGE_NCL_CONFIG_PARAM_NUM	2

	struct hclge_desc desc[HCLGE_CMD_NCL_CONFIG_BD_NUM];
	int bd_num = HCLGE_CMD_NCL_CONFIG_BD_NUM;
@@ -1267,13 +1268,17 @@ static void hclge_dbg_dump_ncl_config(struct hclge_dev *hdev,
	int ret;

	ret = sscanf(cmd_buf, "%x %x", &offset, &length);
	if (ret != 2 || offset >= HCLGE_MAX_NCL_CONFIG_OFFSET ||
	    length > HCLGE_MAX_NCL_CONFIG_OFFSET - offset) {
		dev_err(&hdev->pdev->dev, "Invalid offset or length.\n");
	if (ret != HCLGE_NCL_CONFIG_PARAM_NUM) {
		dev_err(&hdev->pdev->dev,
			"Too few parameters, num = %d.\n", ret);
		return;
	}
	if (offset < 0 || length <= 0) {
		dev_err(&hdev->pdev->dev, "Non-positive offset or length.\n");

	if (offset < 0 || offset >= HCLGE_MAX_NCL_CONFIG_OFFSET ||
	    length <= 0 || length > HCLGE_MAX_NCL_CONFIG_OFFSET - offset) {
		dev_err(&hdev->pdev->dev,
			"Invalid input, offset = %d, length = %d.\n",
			offset, length);
		return;
	}

+0 −1
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
#define HCLGE_RAS_REG_NFE_MASK   0xFF00
#define HCLGE_RAS_REG_ROCEE_ERR_MASK   0x3000000

#define HCLGE_VECTOR0_PF_OTHER_INT_STS_REG   0x20800
#define HCLGE_VECTOR0_REG_MSIX_MASK   0x1FF00

#define HCLGE_IMP_TCM_ECC_ERR_INT_EN	0xFFFF0000
Loading