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@xxxxxxxxxxxxxx * 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) * Move endinass-improvements to a separate patch (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 V02: 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 | 195 ++++ .../ethernet/huawei/hinic3/hinic3_hw_cfg.h | 4 + .../ethernet/huawei/hinic3/hinic3_hw_comm.c | 364 ++++++++ .../ethernet/huawei/hinic3/hinic3_hw_comm.h | 21 + .../ethernet/huawei/hinic3/hinic3_hw_intf.h | 121 +++ .../net/ethernet/huawei/hinic3/hinic3_hwdev.c | 547 ++++++++++- .../net/ethernet/huawei/hinic3/hinic3_hwif.c | 253 +++++ .../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 | 9 +- .../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 | 432 ++++++++- .../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 | 874 +++++++++++++++++- .../ethernet/huawei/hinic3/hinic3_nic_io.h | 39 +- .../huawei/hinic3/hinic3_pci_id_tbl.h | 9 + .../net/ethernet/huawei/hinic3/hinic3_rss.c | 352 +++++++ .../net/ethernet/huawei/hinic3/hinic3_rss.h | 14 + .../net/ethernet/huawei/hinic3/hinic3_rx.c | 232 ++++- .../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, 3980 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