#
0448825b |
| 07-Mar-2024 |
Hao Lan <lanhao@huawei.com> |
net: hns3: Disable SerDes serial loopback for HiLink H60
When the hilink version is H60, the serdes serial loopback test is not supported. This patch add hilink version detection. When the version i
net: hns3: Disable SerDes serial loopback for HiLink H60
When the hilink version is H60, the serdes serial loopback test is not supported. This patch add hilink version detection. When the version is H60, the serdes serial loopback test will be disable.
Signed-off-by: Hao Lan <lanhao@huawei.com> Signed-off-by: Jijie Shao <shaojijie@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
36122201 |
| 15-Aug-2023 |
Jijie Shao <shaojijie@huawei.com> |
net: hns3: fix wrong rpu tln reg issue
In the original RPU query command, the status register values of multiple RPU tunnels are accumulated by default, which is unreasonable. This patch Fix it by q
net: hns3: fix wrong rpu tln reg issue
In the original RPU query command, the status register values of multiple RPU tunnels are accumulated by default, which is unreasonable. This patch Fix it by querying the specified tunnel ID. The tunnel number of the device can be obtained from firmware during initialization.
Fixes: ddb54554fa51 ("net: hns3: add DFX registers information for ethtool -d") Signed-off-by: Jijie Shao <shaojijie@huawei.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
faa90391 |
| 03-Aug-2023 |
Yue Haibing <yuehaibing@huawei.com> |
net: hns3: Remove unused function declarations
Commit 1e6e76101fd9 ("net: hns3: configure promisc mode for VF asynchronously") left behind hclge_inform_vf_promisc_info() declaration. And commit 68c0
net: hns3: Remove unused function declarations
Commit 1e6e76101fd9 ("net: hns3: configure promisc mode for VF asynchronously") left behind hclge_inform_vf_promisc_info() declaration. And commit 68c0a5c70614 ("net: hns3: Add HNS3 IMP(Integrated Mgmt Proc) Cmd Interface Support") declared but never implemented hclge_cmd_mdio_write() and hclge_cmd_mdio_read().
Signed-off-by: Yue Haibing <yuehaibing@huawei.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://lore.kernel.org/r/20230803135138.37456-1-yuehaibing@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
3b064f54 |
| 27-Mar-2023 |
Hao Lan <lanhao@huawei.com> |
net: hns3: support wake on lan configuration and query
The HNS3 driver supports Wake-on-LAN, which can wake up the server from power off state to power on state by magic packet or magic security pac
net: hns3: support wake on lan configuration and query
The HNS3 driver supports Wake-on-LAN, which can wake up the server from power off state to power on state by magic packet or magic security packet.
ChangeLog: v1->v2: Deleted the debugfs function that overlaps with the ethtool function from suggestion of Andrew Lunn.
v2->v3: Return the wol configuration stored in driver, suggested by Alexander H Duyck.
v3->v4: Add a helper to go from netdev to the local struct, suggested by Simon Horman and Jakub Kicinski.
Reviewed-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: Hao Lan <lanhao@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
0f032f93 |
| 06-Sep-2022 |
Hao Chen <chenhao418@huawei.com> |
net: hns3: add support to query and set lane number by ethtool
When serdes lane support setting 25Gb/s or 50Gb/s speed and user wants to set port speed as 50Gb/s, it can be setted as one 50Gb/s serd
net: hns3: add support to query and set lane number by ethtool
When serdes lane support setting 25Gb/s or 50Gb/s speed and user wants to set port speed as 50Gb/s, it can be setted as one 50Gb/s serdes lane or two 25Gb/s serdes lanes.
So, this patch adds support to query and set lane number by ethtool to satisfy this scenario.
Signed-off-by: Hao Chen <chenhao418@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
2cb343b9 |
| 06-Sep-2022 |
Hao Lan <lanhao@huawei.com> |
net: hns3: add querying fec statistics
FEC statistics can be used to check the transmission quality of links. This patch implements the get_fec_stats callback of ethtool_ops to support querying FEC
net: hns3: add querying fec statistics
FEC statistics can be used to check the transmission quality of links. This patch implements the get_fec_stats callback of ethtool_ops to support querying FEC statistics by command "ethtool -I --show-fec eth0".
Signed-off-by: Hao Lan <lanhao@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
5c4f7284 |
| 30-Aug-2022 |
Hao Lan <lanhao@huawei.com> |
net: hns3: add querying and setting fec llrs mode from firmware
This patch supports llrs fec mode in speed 200G for some new devices, and suppoprts querying llrs fec ability from firmware.
Signed-o
net: hns3: add querying and setting fec llrs mode from firmware
This patch supports llrs fec mode in speed 200G for some new devices, and suppoprts querying llrs fec ability from firmware.
Signed-off-by: Hao Lan <lanhao@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
eaf83ae5 |
| 30-Aug-2022 |
Guangbin Huang <huangguangbin2@huawei.com> |
net: hns3: add querying fec ability from firmware
For some new devices, driver can queries fec ability from firmware to decide which FEC mode can be supported.
If devices of old version which not s
net: hns3: add querying fec ability from firmware
For some new devices, driver can queries fec ability from firmware to decide which FEC mode can be supported.
If devices of old version which not support querying fec ability, driver sets fixed ability according to current speed.
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
43710bfe |
| 05-Jan-2022 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: create new common cmd code for PF and VF modules
Currently PF and VF use two sets of command code for modules to interact with firmware. These codes values are same espect the macro names
net: hns3: create new common cmd code for PF and VF modules
Currently PF and VF use two sets of command code for modules to interact with firmware. These codes values are same espect the macro names. It is redundent to keep two sets of command code for same functions between PF and VF.
So this patch firstly creates a unified command code for PF and VF module. We keep the macro name same with the PF command code name to avoid too many meaningless modifications. Secondly the new common command codes are used to replace the old ones in VF and deletes the old ones.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
07dce03c |
| 05-Jan-2022 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: refactor PF rss init APIs with new common rss init APIs
This patch uses common rss init APIs to replace the old APIs in PF rss module and deletes the old PF rss init APIs. Some related su
net: hns3: refactor PF rss init APIs with new common rss init APIs
This patch uses common rss init APIs to replace the old APIs in PF rss module and deletes the old PF rss init APIs. Some related subfunctions and macros are also modified in this patch.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
1813ee52 |
| 05-Jan-2022 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: refactor PF rss set APIs with new common rss set APIs
This patch uses new common rss set APIs to replace the old APIs in PF rss module and deletes the old rss set APIs. The related macros
net: hns3: refactor PF rss set APIs with new common rss set APIs
This patch uses new common rss set APIs to replace the old APIs in PF rss module and deletes the old rss set APIs. The related macros are also modified.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
8e2288ca |
| 31-Dec-2021 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: refactor PF cmdq init and uninit APIs with new common APIs
This patch uses common cmdq init and uninit APIs to replace the old APIs in PF cmdq module init and uninit modules. Then the old
net: hns3: refactor PF cmdq init and uninit APIs with new common APIs
This patch uses common cmdq init and uninit APIs to replace the old APIs in PF cmdq module init and uninit modules. Then the old PF init and uninit APIs is deleted.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
d3c69a88 |
| 31-Dec-2021 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: refactor PF cmdq resource APIs with new common APIs
This patch uses common cmdq resource allocate/free/query APIs to replace the old APIs in PF cmdq module and deletes the old cmdq resour
net: hns3: refactor PF cmdq resource APIs with new common APIs
This patch uses common cmdq resource allocate/free/query APIs to replace the old APIs in PF cmdq module and deletes the old cmdq resource APIs. Still we kept hclge_cmd_setup_basic_desc name as a seam API to avoid too many meaningless replacement.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
eaa5607d |
| 31-Dec-2021 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: refactor hclge_cmd_send with new hclge_comm_cmd_send API
This patch firstly uses new hardware description struct hclge_comm_hw as child member of hclge_hw and deletes the original child m
net: hns3: refactor hclge_cmd_send with new hclge_comm_cmd_send API
This patch firstly uses new hardware description struct hclge_comm_hw as child member of hclge_hw and deletes the original child memebers of hclge_hw. All the hclge_hw variables used in PF module is modified according to the new hclge_hw.
Secondly hclge_cmd_send is refactored to use hclge_comm_cmd_send APIs. The old functions called by hclge_cmd_send are deleted and hclge_cmd_send is kept to avoid too many meaningless modifications.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
0a7b6d22 |
| 31-Dec-2021 |
Jie Wang <wangjie125@huawei.com> |
net: hns3: create new cmdq hardware description structure hclge_comm_hw
Currently PF and VF cmdq APIs use struct hclge(vf)_hw to describe cmdq hardware information needed by hclge(vf)_cmd_send. Ther
net: hns3: create new cmdq hardware description structure hclge_comm_hw
Currently PF and VF cmdq APIs use struct hclge(vf)_hw to describe cmdq hardware information needed by hclge(vf)_cmd_send. There are a little differences between its child struct hclge_cmq_ring and hclgevf_cmq_ring. It is redundent to use two sets of structures to support same functions.
So this patch creates new set of common cmdq hardware description structures(hclge_comm_hw) to unify PF and VF cmdq functions. The struct hclge_desc is still kept to avoid too many meaningless replacement.
These new structures will be used to unify hclge(vf)_hw structures in PF and VF cmdq APIs in next patches.
Signed-off-by: Jie Wang <wangjie125@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
3b6db4a0 |
| 10-Nov-2021 |
Yufeng Mo <moyufeng@huawei.com> |
net: hns3: sync rx ring head in echo common pull
When the driver processes rx packets, the head pointer is updated only after the number of received packets reaches 16. However, hardware relies on t
net: hns3: sync rx ring head in echo common pull
When the driver processes rx packets, the head pointer is updated only after the number of received packets reaches 16. However, hardware relies on the head pointer to calculate the number of FBDs. As a result, the hardware calculates the FBD incorrectly. Therefore, the driver proactively updates the head pointer in each common poll to ensure that the number of FBDs calculated by the hardware is correct.
Fixes: 68752b24f51a ("net: hns3: schedule the polling again when allocation fails") Signed-off-by: Yufeng Mo <moyufeng@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
c8af2887 |
| 24-Oct-2021 |
Guangbin Huang <huangguangbin2@huawei.com> |
net: hns3: add support pause/pfc durations for mac statistics
The mac statistics add pause/pfc durations in device version V3, we can get total active cycle of pause/pfc from these durations.
As dr
net: hns3: add support pause/pfc durations for mac statistics
The mac statistics add pause/pfc durations in device version V3, we can get total active cycle of pause/pfc from these durations.
As driver gets register number from firmware to calculate desc number to query mac statistics, it needs to set mac statistics extended enable bit in firmware command 0x701A to tell firmware that driver supports extended mac statistics, otherwise firmware only returns register number of version V1.
As pause/pfc durations are not supported by hardware of old version, they should not been shown in command "ethtool -S ethX" in this case, so add checking max register number of each mac statistic in their version. If the max register number of one mac statistic is greater than register number got from firmware, it means hardware does not support this mac statistic, so ignore this statistic when get string and data of mac statistic.
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
5c56ff48 |
| 14-Sep-2021 |
Guangbin Huang <huangguangbin2@huawei.com> |
net: hns3: PF support get multicast MAC address space assigned by firmware
The new firmware supports to divides the whole multicast MAC address space equally to functions of all PFs, and calculates
net: hns3: PF support get multicast MAC address space assigned by firmware
The new firmware supports to divides the whole multicast MAC address space equally to functions of all PFs, and calculates the space size of each PF according to its function number.
To support this feature, PF driver adds querying multicast MAC address space size from firmware and limits used number according to space size.
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
e435a6b5 |
| 14-Sep-2021 |
Guangbin Huang <huangguangbin2@huawei.com> |
net: hns3: PF support get unicast MAC address space assigned by firmware
Currently, there are two ways for PF to set the unicast MAC address space size: specified by config parameters in firmware or
net: hns3: PF support get unicast MAC address space assigned by firmware
Currently, there are two ways for PF to set the unicast MAC address space size: specified by config parameters in firmware or set to default value.
That's mean if the config parameters in firmware is zero, driver will divide the whole unicast MAC address space equally to 8 PFs. However, in this case, the unicast MAC address space will be wasted a lot when the hardware actually has less then 8 PFs. And in the other hand, if one PF has much more VFs than other PFs, then each function of this PF will has much less address space than other PFs.
In order to ameliorate the above two situations, introduce the third way of unicast MAC address space assignment: firmware divides the whole unicast MAC address space equally to functions of all PFs, and calculates the space size of each PF according to its function number. PF queries the space size by the querying device specification command when in initialization process.
The third way assignment is lower priority than specified by config parameters, only if the config parameters is zero can be used, and if firmware does not support the third way assignment, then driver still divides the whole unicast MAC address space equally to 8 PFs.
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
0cb07041 |
| 28-Aug-2021 |
Hao Chen <chenhao288@hisilicon.com> |
net: hns3: add required space in comment
Add some required spaces in comment for cleanup.
Signed-off-by: Hao Chen <chenhao288@hisilicon.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com
net: hns3: add required space in comment
Add some required spaces in comment for cleanup.
Signed-off-by: Hao Chen <chenhao288@hisilicon.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
e1d93bc6 |
| 28-Aug-2021 |
Guangbin Huang <huangguangbin2@huawei.com> |
net: hns3: refactor function hclge_parse_capability()
The function hclge_parse_capability() uses too many if statement, and it may add more in the future. To improve code readability, maintainabilit
net: hns3: refactor function hclge_parse_capability()
The function hclge_parse_capability() uses too many if statement, and it may add more in the future. To improve code readability, maintainability and simplicity, refactor this function by using a bit mapping array of IMP capabilities and driver capabilities.
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
5a24b1fd |
| 27-Aug-2021 |
Peng Li <lipeng321@huawei.com> |
net: hns3: merge some repetitive macros
There are some repetitive macros have same meaning and value, this patch merges them to make code clean.
Signed-off-by: Peng Li <lipeng321@huawei.com> Signed
net: hns3: merge some repetitive macros
There are some repetitive macros have same meaning and value, this patch merges them to make code clean.
Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
4c116f85 |
| 27-Aug-2021 |
Guangbin Huang <huangguangbin2@huawei.com> |
net: hns3: add macros for mac speeds of firmware command
To improve code readability, replace digital numbers of mac speeds defined by firmware command with macros.
Signed-off-by: Guangbin Huang <h
net: hns3: add macros for mac speeds of firmware command
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>
show more ...
|
#
a96d9330 |
| 26-Aug-2021 |
Yufeng Mo <moyufeng@huawei.com> |
net: hns3: add waiting time before cmdq memory is released
After the cmdq registers are cleared, the firmware may take time to clear out possible left over commands in the cmdq. Driver must release
net: hns3: add waiting time before cmdq memory is released
After the cmdq registers are cleared, the firmware may take time to clear out possible left over commands in the cmdq. Driver must release cmdq memory only after firmware has completed processing of left over commands.
Fixes: 232d0d55fca6 ("net: hns3: uninitialize command queue while unloading PF driver") Signed-off-by: Yufeng Mo <moyufeng@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
1a6d2819 |
| 26-Aug-2021 |
Yufeng Mo <moyufeng@huawei.com> |
net: hns3: clear hardware resource when loading driver
If a PF is bonded to a virtual machine and the virtual machine exits unexpectedly, some hardware resource cannot be cleared. In this case, load
net: hns3: clear hardware resource when loading driver
If a PF is bonded to a virtual machine and the virtual machine exits unexpectedly, some hardware resource cannot be cleared. In this case, loading driver may cause exceptions. Therefore, the hardware resource needs to be cleared when the driver is loaded.
Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support") Signed-off-by: Yufeng Mo <moyufeng@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|