[PATCH net-next v05 00/14] net: hinic3: Add a driver for Huawei 3rd gen NIC - sw and hw initialization

Fan Gong posted 14 patches 13 hours ago
drivers/net/ethernet/huawei/hinic3/Makefile   |   2 +
.../ethernet/huawei/hinic3/hinic3_hw_cfg.c    | 168 ++++
.../ethernet/huawei/hinic3/hinic3_hw_cfg.h    |   4 +
.../ethernet/huawei/hinic3/hinic3_hw_comm.c   | 361 ++++++++
.../ethernet/huawei/hinic3/hinic3_hw_comm.h   |  21 +
.../ethernet/huawei/hinic3/hinic3_hw_intf.h   | 115 +++
.../net/ethernet/huawei/hinic3/hinic3_hwdev.c | 541 ++++++++++-
.../net/ethernet/huawei/hinic3/hinic3_hwif.c  | 269 ++++++
.../net/ethernet/huawei/hinic3/hinic3_hwif.h  |  16 +
.../net/ethernet/huawei/hinic3/hinic3_irq.c   |   2 +-
.../net/ethernet/huawei/hinic3/hinic3_lld.c   |   9 +-
.../net/ethernet/huawei/hinic3/hinic3_main.c  |   8 +-
.../net/ethernet/huawei/hinic3/hinic3_mgmt.c  |  21 +
.../net/ethernet/huawei/hinic3/hinic3_mgmt.h  |   2 +
.../huawei/hinic3/hinic3_mgmt_interface.h     | 119 +++
.../huawei/hinic3/hinic3_netdev_ops.c         | 425 ++++++++-
.../ethernet/huawei/hinic3/hinic3_nic_cfg.c   | 152 +++
.../ethernet/huawei/hinic3/hinic3_nic_cfg.h   |  20 +
.../ethernet/huawei/hinic3/hinic3_nic_dev.h   |   5 +
.../ethernet/huawei/hinic3/hinic3_nic_io.c    | 870 +++++++++++++++++-
.../ethernet/huawei/hinic3/hinic3_nic_io.h    |  39 +-
.../huawei/hinic3/hinic3_pci_id_tbl.h         |   9 +
.../net/ethernet/huawei/hinic3/hinic3_rss.c   | 336 +++++++
.../net/ethernet/huawei/hinic3/hinic3_rss.h   |  14 +
.../net/ethernet/huawei/hinic3/hinic3_rx.c    | 226 ++++-
.../net/ethernet/huawei/hinic3/hinic3_rx.h    |  38 +-
.../net/ethernet/huawei/hinic3/hinic3_tx.c    | 184 +++-
.../net/ethernet/huawei/hinic3/hinic3_tx.h    |  30 +-
28 files changed, 3920 insertions(+), 86 deletions(-)
create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c
create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_pci_id_tbl.h
create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rss.c
create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rss.h
[PATCH net-next v05 00/14] net: hinic3: Add a driver for Huawei 3rd gen NIC - sw and hw initialization
Posted by Fan Gong 13 hours ago
This is [3/3] part of hinic3 Ethernet driver initial submission.
With this patch hinic3 becomes a functional Ethernet driver.

The driver parts contained in this patch:
Memory allocation and initialization of the driver structures.
Management interfaces initialization.
HW capabilities probing, initialization and setup using management
interfaces.
Net device open/stop implementation and data queues initialization.
Register VID:DID in PCI id_table.
Fix netif_queue_set_napi usage.

Changes:

PATCH 03 V01: https://lore.kernel.org/netdev/cover.1756195078.git.zhuyikai1@h-partners.com

PATCH 03 V02: https://lore.kernel.org/netdev/cover.1756378721.git.zhuyikai1@h-partners.com
* Remove extra memset 0 after kzalloc (Vadim Fedorenko)
* Remove another init function in hinic3_init_hwdev/hwif/nic_io (Vadim Fedorenko)
* Create a new separate patch of fixing code style (Vadim Fedorenko)
* Use bitmap_free instead of kfree (ALOK TIWARI)
* Add prefix "hinic3" to non-static functions and parse_* functions (Vadim Fedorenko)
* Init func_tbl_cfg to {} (Vadim Fedorenko)
* Extract endianess improvement from queue pair resource initialization (Vadim Fedorenko)
* Use kmalloc_array before overwrite rss_hkey on the very next line (Vadim Fedorenko)
* Remove extra key copy about hinic3_rss_set_hash_key (Vadim Fedorenko)
* Use netdev_rss_key_fill instead of static rss hash key for safety (Eric Dumazet)

PATCH 03 V03: https://lore.kernel.org/netdev/cover.1756524443.git.zhuyikai1@h-partners.com
* Modify get_hwif_attr function for improving readability (Vadim Fedorenko)
* Add HINIC3_PCIE_LINK_DOWN errorcode to init_hwif_attr error handling (Vadim Fedorenko)

PATCH 03 V04: https://lore.kernel.org/netdev/cover.1757057860.git.zhuyikai1@h-partners.com
* Use pci_enable_msix_range instead of pci_alloc_irq_vectors (Jakub Kicinski)
* Move defensive codes to place that they are set/loaded (Jakub Kicinski)
* Code format fixes: remove empty lines between error handling path (Jakub Kicinski)
* Remove redundant waiting sleep in hinic3_rx_tx_flush (Jakub Kicinski)
* Use ethtool_rxfh_indir_default for standalizing codes (Jakub Kicinski)
* Use netif_get_num_default_rss_queues instead of driver-local logic (Jakub Kicinski)
* Use netif_set_real_num_queues to set both TX and RX queues (Jakub Kicinski)

PATCH 03 V05:
* Merge comm_cmd_clear_doorbell & comm_cmd_clear_resource (Vadim Fedorenko)
* Merge hinic3_enable/disable_doorbell to hinic3_toggle_doorbel (Vadim Fedorenko)
* Update hinic3_Nic_io initialization commit message (Vadim Fedorenko)

Fan Gong (14):
  hinic3: HW initialization
  hinic3: HW management interfaces
  hinic3: HW common function initialization
  hinic3: HW capability initialization
  hinic3: Command Queue flush interfaces
  hinic3: Nic_io initialization
  hinic3: Queue pair endianness improvements
  hinic3: Queue pair resource initialization
  hinic3: Queue pair context initialization
  hinic3: Tx & Rx configuration
  hinic3: Add Rss function
  hinic3: Add port management
  hinic3: Fix missing napi->dev in netif_queue_set_napi
  hinic3: Fix code style (Missing a blank line before return)

 drivers/net/ethernet/huawei/hinic3/Makefile   |   2 +
 .../ethernet/huawei/hinic3/hinic3_hw_cfg.c    | 168 ++++
 .../ethernet/huawei/hinic3/hinic3_hw_cfg.h    |   4 +
 .../ethernet/huawei/hinic3/hinic3_hw_comm.c   | 361 ++++++++
 .../ethernet/huawei/hinic3/hinic3_hw_comm.h   |  21 +
 .../ethernet/huawei/hinic3/hinic3_hw_intf.h   | 115 +++
 .../net/ethernet/huawei/hinic3/hinic3_hwdev.c | 541 ++++++++++-
 .../net/ethernet/huawei/hinic3/hinic3_hwif.c  | 269 ++++++
 .../net/ethernet/huawei/hinic3/hinic3_hwif.h  |  16 +
 .../net/ethernet/huawei/hinic3/hinic3_irq.c   |   2 +-
 .../net/ethernet/huawei/hinic3/hinic3_lld.c   |   9 +-
 .../net/ethernet/huawei/hinic3/hinic3_main.c  |   8 +-
 .../net/ethernet/huawei/hinic3/hinic3_mgmt.c  |  21 +
 .../net/ethernet/huawei/hinic3/hinic3_mgmt.h  |   2 +
 .../huawei/hinic3/hinic3_mgmt_interface.h     | 119 +++
 .../huawei/hinic3/hinic3_netdev_ops.c         | 425 ++++++++-
 .../ethernet/huawei/hinic3/hinic3_nic_cfg.c   | 152 +++
 .../ethernet/huawei/hinic3/hinic3_nic_cfg.h   |  20 +
 .../ethernet/huawei/hinic3/hinic3_nic_dev.h   |   5 +
 .../ethernet/huawei/hinic3/hinic3_nic_io.c    | 870 +++++++++++++++++-
 .../ethernet/huawei/hinic3/hinic3_nic_io.h    |  39 +-
 .../huawei/hinic3/hinic3_pci_id_tbl.h         |   9 +
 .../net/ethernet/huawei/hinic3/hinic3_rss.c   | 336 +++++++
 .../net/ethernet/huawei/hinic3/hinic3_rss.h   |  14 +
 .../net/ethernet/huawei/hinic3/hinic3_rx.c    | 226 ++++-
 .../net/ethernet/huawei/hinic3/hinic3_rx.h    |  38 +-
 .../net/ethernet/huawei/hinic3/hinic3_tx.c    | 184 +++-
 .../net/ethernet/huawei/hinic3/hinic3_tx.h    |  30 +-
 28 files changed, 3920 insertions(+), 86 deletions(-)
 create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_mgmt.c
 create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_pci_id_tbl.h
 create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rss.c
 create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_rss.h


base-commit: b1c92cdf5af3198e8fbc1345a80e2a1dff386c02
-- 
2.43.0