This is the 2/3 patch of the patch-set described below. The patch-set contains driver for Huawei's 3rd generation HiNIC Ethernet device that will be available in the future. This is an SRIOV device, designed for data centers. Initially, the driver only supports VFs. Following the discussion over RFC01, the code will be submitted in separate smaller patches where until the last patch the driver is non-functional. The RFC02 submission contains overall view of the entire driver but every patch will be posted as a standalone submission. Changes: PATCH 02 V01: https://lore.kernel.org/netdev/cover.1749561390.git.root@localhost.localdomain PATCH 02 V02: https://lore.kernel.org/netdev/cover.1749718348.git.zhuyikai1@xxxxxxxxxxxxxx * Fix build allmodconfig warning (patchwork) * Update cover-letter changes information. PATCH 02 V03: https://lore.kernel.org/netdev/cover.1750054732.git.zhuyikai1@xxxxxxxxxxxxxx * Use refcount_*() instead of atomic_*() (Jakub Kicinski) * Consistency fixes : HIG->HIGH, BAR45->BAR4/5 , etc (ALOK TIWARI) * Code format fixes : use \n before return, remove extra spaces (ALOK TIWARI) * Remove hinic3_request_irq redundant error print (ALOK TIWARI) * Modify hinic3_wq_create error print (ALOK TIWARI) PATCH 02 V04: https://lore.kernel.org/netdev/cover.1750665915.git.zhuyikai1@xxxxxxxxxxxxxx * Break it up into smaller patches (Jakub Kicinski) PATCH 02 V05: * Fix build clang warning (Jakub Kicinski) Fan Gong (8): hinic3: Async Event Queue interfaces hinic3: Complete Event Queue interfaces hinic3: Command Queue framework hinic3: Command Queue interfaces hinic3: TX & RX Queue coalesce interfaces hinic3: Mailbox framework hinic3: Mailbox management interfaces hinic3: Interrupt request configuration drivers/net/ethernet/huawei/hinic3/Makefile | 4 +- .../net/ethernet/huawei/hinic3/hinic3_cmdq.c | 912 ++++++++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_cmdq.h | 156 +++ .../ethernet/huawei/hinic3/hinic3_common.c | 31 + .../ethernet/huawei/hinic3/hinic3_common.h | 27 + .../net/ethernet/huawei/hinic3/hinic3_csr.h | 79 ++ .../net/ethernet/huawei/hinic3/hinic3_eqs.c | 803 +++++++++++++++ .../net/ethernet/huawei/hinic3/hinic3_eqs.h | 130 +++ .../ethernet/huawei/hinic3/hinic3_hw_cfg.c | 43 + .../ethernet/huawei/hinic3/hinic3_hw_comm.c | 31 + .../ethernet/huawei/hinic3/hinic3_hw_comm.h | 13 + .../ethernet/huawei/hinic3/hinic3_hw_intf.h | 36 + .../net/ethernet/huawei/hinic3/hinic3_hwif.c | 153 ++- .../net/ethernet/huawei/hinic3/hinic3_hwif.h | 16 + .../net/ethernet/huawei/hinic3/hinic3_irq.c | 137 ++- .../net/ethernet/huawei/hinic3/hinic3_main.c | 65 +- .../net/ethernet/huawei/hinic3/hinic3_mbox.c | 843 +++++++++++++++- .../net/ethernet/huawei/hinic3/hinic3_mbox.h | 127 +++ .../ethernet/huawei/hinic3/hinic3_nic_dev.h | 14 +- .../huawei/hinic3/hinic3_queue_common.h | 1 + .../net/ethernet/huawei/hinic3/hinic3_wq.c | 109 +++ .../net/ethernet/huawei/hinic3/hinic3_wq.h | 11 + 22 files changed, 3726 insertions(+), 15 deletions(-) create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_cmdq.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_csr.h create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_eqs.c create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_eqs.h base-commit: 5e95c0a3a55aea490420bd6994805edb050cc86b -- 2.43.0