2022-11-03 08:14:11

by Cai Huoqing

[permalink] [raw]
Subject: [PATCH net-next v4 1/3] net: hinic: Convert the cmd code from decimal to hex to be more readable

The print cmd code is in hex, so using hex cmd code intead of
decimal is easy to check the value with print info.

Signed-off-by: Cai Huoqing <[email protected]>
---
v1->v2:
1.Add net-next prefix.
The comments link: https://lore.kernel.org/lkml/[email protected]/
v2->v3:
1.Merge PATCH 3/3 to this series.
v3->v4:
1.Revert the empty lines.
The comments link: https://lore.kernel.org/lkml/[email protected]/

.../net/ethernet/huawei/hinic/hinic_hw_dev.h | 104 +++++++++---------
1 file changed, 52 insertions(+), 52 deletions(-)

diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
index d2d89b0a5ef0..6dae116a11f8 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
@@ -46,104 +46,104 @@ enum hinic_port_cmd {
HINIC_PORT_CMD_VF_REGISTER = 0x0,
HINIC_PORT_CMD_VF_UNREGISTER = 0x1,

- HINIC_PORT_CMD_CHANGE_MTU = 2,
+ HINIC_PORT_CMD_CHANGE_MTU = 0x2,

- HINIC_PORT_CMD_ADD_VLAN = 3,
- HINIC_PORT_CMD_DEL_VLAN = 4,
+ HINIC_PORT_CMD_ADD_VLAN = 0x3,
+ HINIC_PORT_CMD_DEL_VLAN = 0x4,

- HINIC_PORT_CMD_SET_PFC = 5,
+ HINIC_PORT_CMD_SET_PFC = 0x5,

- HINIC_PORT_CMD_SET_MAC = 9,
- HINIC_PORT_CMD_GET_MAC = 10,
- HINIC_PORT_CMD_DEL_MAC = 11,
+ HINIC_PORT_CMD_SET_MAC = 0x9,
+ HINIC_PORT_CMD_GET_MAC = 0xA,
+ HINIC_PORT_CMD_DEL_MAC = 0xB,

- HINIC_PORT_CMD_SET_RX_MODE = 12,
+ HINIC_PORT_CMD_SET_RX_MODE = 0xC,

- HINIC_PORT_CMD_GET_PAUSE_INFO = 20,
- HINIC_PORT_CMD_SET_PAUSE_INFO = 21,
+ HINIC_PORT_CMD_GET_PAUSE_INFO = 0x14,
+ HINIC_PORT_CMD_SET_PAUSE_INFO = 0x15,

- HINIC_PORT_CMD_GET_LINK_STATE = 24,
+ HINIC_PORT_CMD_GET_LINK_STATE = 0x18,

- HINIC_PORT_CMD_SET_LRO = 25,
+ HINIC_PORT_CMD_SET_LRO = 0x19,

- HINIC_PORT_CMD_SET_RX_CSUM = 26,
+ HINIC_PORT_CMD_SET_RX_CSUM = 0x1A,

- HINIC_PORT_CMD_SET_RX_VLAN_OFFLOAD = 27,
+ HINIC_PORT_CMD_SET_RX_VLAN_OFFLOAD = 0x1B,

- HINIC_PORT_CMD_GET_PORT_STATISTICS = 28,
+ HINIC_PORT_CMD_GET_PORT_STATISTICS = 0x1C,

- HINIC_PORT_CMD_CLEAR_PORT_STATISTICS = 29,
+ HINIC_PORT_CMD_CLEAR_PORT_STATISTICS = 0x1D,

- HINIC_PORT_CMD_GET_VPORT_STAT = 30,
+ HINIC_PORT_CMD_GET_VPORT_STAT = 0x1E,

- HINIC_PORT_CMD_CLEAN_VPORT_STAT = 31,
+ HINIC_PORT_CMD_CLEAN_VPORT_STAT = 0x1F,

- HINIC_PORT_CMD_GET_RSS_TEMPLATE_INDIR_TBL = 37,
+ HINIC_PORT_CMD_GET_RSS_TEMPLATE_INDIR_TBL = 0x25,

- HINIC_PORT_CMD_SET_PORT_STATE = 41,
+ HINIC_PORT_CMD_SET_PORT_STATE = 0x29,

- HINIC_PORT_CMD_SET_RSS_TEMPLATE_TBL = 43,
+ HINIC_PORT_CMD_SET_RSS_TEMPLATE_TBL = 0x2B,

- HINIC_PORT_CMD_GET_RSS_TEMPLATE_TBL = 44,
+ HINIC_PORT_CMD_GET_RSS_TEMPLATE_TBL = 0x2C,

- HINIC_PORT_CMD_SET_RSS_HASH_ENGINE = 45,
+ HINIC_PORT_CMD_SET_RSS_HASH_ENGINE = 0x2D,

- HINIC_PORT_CMD_GET_RSS_HASH_ENGINE = 46,
+ HINIC_PORT_CMD_GET_RSS_HASH_ENGINE = 0x2E,

- HINIC_PORT_CMD_GET_RSS_CTX_TBL = 47,
+ HINIC_PORT_CMD_GET_RSS_CTX_TBL = 0x2F,

- HINIC_PORT_CMD_SET_RSS_CTX_TBL = 48,
+ HINIC_PORT_CMD_SET_RSS_CTX_TBL = 0x30,

- HINIC_PORT_CMD_RSS_TEMP_MGR = 49,
+ HINIC_PORT_CMD_RSS_TEMP_MGR = 0x31,

- HINIC_PORT_CMD_RD_LINE_TBL = 57,
+ HINIC_PORT_CMD_RD_LINE_TBL = 0x39,

- HINIC_PORT_CMD_RSS_CFG = 66,
+ HINIC_PORT_CMD_RSS_CFG = 0x42,

- HINIC_PORT_CMD_FWCTXT_INIT = 69,
+ HINIC_PORT_CMD_FWCTXT_INIT = 0x45,

- HINIC_PORT_CMD_GET_LOOPBACK_MODE = 72,
- HINIC_PORT_CMD_SET_LOOPBACK_MODE,
+ HINIC_PORT_CMD_GET_LOOPBACK_MODE = 0x48,
+ HINIC_PORT_CMD_SET_LOOPBACK_MODE = 0x49,

- HINIC_PORT_CMD_ENABLE_SPOOFCHK = 78,
+ HINIC_PORT_CMD_ENABLE_SPOOFCHK = 0x4E,

- HINIC_PORT_CMD_GET_MGMT_VERSION = 88,
+ HINIC_PORT_CMD_GET_MGMT_VERSION = 0x58,

- HINIC_PORT_CMD_SET_FUNC_STATE = 93,
+ HINIC_PORT_CMD_SET_FUNC_STATE = 0x5D,

- HINIC_PORT_CMD_GET_GLOBAL_QPN = 102,
+ HINIC_PORT_CMD_GET_GLOBAL_QPN = 0x66,

- HINIC_PORT_CMD_SET_VF_RATE = 105,
+ HINIC_PORT_CMD_SET_VF_RATE = 0x69,

- HINIC_PORT_CMD_SET_VF_VLAN = 106,
+ HINIC_PORT_CMD_SET_VF_VLAN = 0x6A,

- HINIC_PORT_CMD_CLR_VF_VLAN,
+ HINIC_PORT_CMD_CLR_VF_VLAN = 0x6B,

- HINIC_PORT_CMD_SET_TSO = 112,
+ HINIC_PORT_CMD_SET_TSO = 0x70,

- HINIC_PORT_CMD_UPDATE_FW = 114,
+ HINIC_PORT_CMD_UPDATE_FW = 0x72,

- HINIC_PORT_CMD_SET_RQ_IQ_MAP = 115,
+ HINIC_PORT_CMD_SET_RQ_IQ_MAP = 0x73,

- HINIC_PORT_CMD_LINK_STATUS_REPORT = 160,
+ HINIC_PORT_CMD_LINK_STATUS_REPORT = 0xA0,

- HINIC_PORT_CMD_UPDATE_MAC = 164,
+ HINIC_PORT_CMD_UPDATE_MAC = 0xA4,

- HINIC_PORT_CMD_GET_CAP = 170,
+ HINIC_PORT_CMD_GET_CAP = 0xAA,

- HINIC_PORT_CMD_GET_LINK_MODE = 217,
+ HINIC_PORT_CMD_GET_LINK_MODE = 0xD9,

- HINIC_PORT_CMD_SET_SPEED = 218,
+ HINIC_PORT_CMD_SET_SPEED = 0xDA,

- HINIC_PORT_CMD_SET_AUTONEG = 219,
+ HINIC_PORT_CMD_SET_AUTONEG = 0xDB,

- HINIC_PORT_CMD_GET_STD_SFP_INFO = 240,
+ HINIC_PORT_CMD_GET_STD_SFP_INFO = 0xF0,

- HINIC_PORT_CMD_SET_LRO_TIMER = 244,
+ HINIC_PORT_CMD_SET_LRO_TIMER = 0xF4,

- HINIC_PORT_CMD_SET_VF_MAX_MIN_RATE = 249,
+ HINIC_PORT_CMD_SET_VF_MAX_MIN_RATE = 0xF9,

- HINIC_PORT_CMD_GET_SFP_ABS = 251,
+ HINIC_PORT_CMD_GET_SFP_ABS = 0xFB,
};

/* cmd of mgmt CPU message for HILINK module */
--
2.25.1



2022-11-03 09:12:53

by Cai Huoqing

[permalink] [raw]
Subject: [PATCH net-next v4 3/3] net: hinic: Add support for configuration of rx-vlan-filter by ethtool

When ethtool config rx-vlan-filter, the driver will send
control command to firmware, then set to hardware in this patch.

Signed-off-by: Cai Huoqing <[email protected]>
---
v1->v3:
1.Merge this patch to the series.
comments link: https://lore.kernel.org/lkml/[email protected]/

.../net/ethernet/huawei/hinic/hinic_main.c | 10 ++++++
.../net/ethernet/huawei/hinic/hinic_port.c | 33 +++++++++++++++++++
.../net/ethernet/huawei/hinic/hinic_port.h | 12 +++++++
3 files changed, 55 insertions(+)

diff --git a/drivers/net/ethernet/huawei/hinic/hinic_main.c b/drivers/net/ethernet/huawei/hinic/hinic_main.c
index 9d4d795e1081..977c41473ab7 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_main.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_main.c
@@ -1092,6 +1092,16 @@ static int set_features(struct hinic_dev *nic_dev,
}
}

+ if (changed & NETIF_F_HW_VLAN_CTAG_FILTER) {
+ ret = hinic_set_vlan_fliter(nic_dev,
+ !!(features &
+ NETIF_F_HW_VLAN_CTAG_FILTER));
+ if (ret) {
+ err = ret;
+ failed_features |= NETIF_F_HW_VLAN_CTAG_FILTER;
+ }
+ }
+
if (err) {
nic_dev->netdev->features = features ^ failed_features;
return -EIO;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.c b/drivers/net/ethernet/huawei/hinic/hinic_port.c
index 0a39c3dffa9a..9406237c461e 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_port.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_port.c
@@ -447,6 +447,39 @@ int hinic_set_rx_vlan_offload(struct hinic_dev *nic_dev, u8 en)
return 0;
}

+int hinic_set_vlan_fliter(struct hinic_dev *nic_dev, u32 en)
+{
+ struct hinic_hwdev *hwdev = nic_dev->hwdev;
+ struct hinic_hwif *hwif = hwdev->hwif;
+ struct pci_dev *pdev = hwif->pdev;
+ struct hinic_vlan_filter vlan_filter;
+ u16 out_size = sizeof(vlan_filter);
+ int err;
+
+ if (!hwdev)
+ return -EINVAL;
+
+ vlan_filter.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
+ vlan_filter.enable = en;
+
+ err = hinic_port_msg_cmd(hwdev, HINIC_PORT_CMD_SET_VLAN_FILTER,
+ &vlan_filter, sizeof(vlan_filter),
+ &vlan_filter, &out_size);
+ if (vlan_filter.status == HINIC_MGMT_CMD_UNSUPPORTED) {
+ err = HINIC_MGMT_CMD_UNSUPPORTED;
+ } else if ((err == HINIC_MBOX_VF_CMD_ERROR) &&
+ HINIC_IS_VF(hwif)) {
+ err = HINIC_MGMT_CMD_UNSUPPORTED;
+ } else if (err || !out_size || vlan_filter.status) {
+ dev_err(&pdev->dev,
+ "Failed to set vlan fliter, err: %d, status: 0x%x, out size: 0x%x\n",
+ err, vlan_filter.status, out_size);
+ err = -EINVAL;
+ }
+
+ return err;
+}
+
int hinic_set_max_qnum(struct hinic_dev *nic_dev, u8 num_rqs)
{
struct hinic_hwdev *hwdev = nic_dev->hwdev;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.h b/drivers/net/ethernet/huawei/hinic/hinic_port.h
index c9ae3d4dc547..c8694ac7c702 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_port.h
+++ b/drivers/net/ethernet/huawei/hinic/hinic_port.h
@@ -351,6 +351,16 @@ struct hinic_vlan_cfg {
u8 rsvd1[5];
};

+struct hinic_vlan_filter {
+ u8 status;
+ u8 version;
+ u8 rsvd0[6];
+
+ u16 func_idx;
+ u8 rsvd1[2];
+ u32 enable;
+};
+
struct hinic_rss_template_mgmt {
u8 status;
u8 version;
@@ -831,6 +841,8 @@ int hinic_get_vport_stats(struct hinic_dev *nic_dev,

int hinic_set_rx_vlan_offload(struct hinic_dev *nic_dev, u8 en);

+int hinic_set_vlan_fliter(struct hinic_dev *nic_dev, u32 en);
+
int hinic_get_mgmt_version(struct hinic_dev *nic_dev, u8 *mgmt_ver);

int hinic_set_link_settings(struct hinic_hwdev *hwdev,
--
2.25.1


2022-11-07 09:33:59

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net-next v4 1/3] net: hinic: Convert the cmd code from decimal to hex to be more readable

Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <[email protected]>:

On Thu, 3 Nov 2022 16:05:09 +0800 you wrote:
> The print cmd code is in hex, so using hex cmd code intead of
> decimal is easy to check the value with print info.
>
> Signed-off-by: Cai Huoqing <[email protected]>
> ---
> v1->v2:
> 1.Add net-next prefix.
> The comments link: https://lore.kernel.org/lkml/[email protected]/
> v2->v3:
> 1.Merge PATCH 3/3 to this series.
> v3->v4:
> 1.Revert the empty lines.
> The comments link: https://lore.kernel.org/lkml/[email protected]/
>
> [...]

Here is the summary with links:
- [net-next,v4,1/3] net: hinic: Convert the cmd code from decimal to hex to be more readable
https://git.kernel.org/netdev/net-next/c/ac33d7ae8f71
- [net-next,v4,2/3] net: hinic: Add control command support for VF PMD driver in DPDK
https://git.kernel.org/netdev/net-next/c/13265568a863
- [net-next,v4,3/3] net: hinic: Add support for configuration of rx-vlan-filter by ethtool
https://git.kernel.org/netdev/net-next/c/2acf960e3be6

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html