[PATCH net-next v02 0/9] net: hinic3: PF initialization
From: Fan Gong <gongfan1@huawei.com>
Date: 2026-03-07 06:44:04
Also in:
linux-doc, lkml
This is [2/3] part of hinic3 Ethernet driver second submission. With this patch hinic3 becomes a complete Ethernet driver with pf and vf. Add cmdq detailed-response interfaces. Add dump interfaces for cmdq, aeq, ceq and mailbox. Add msg_send_lock for message sending concurrency. Add PF device support and chip_present_flag to check cards. Add rx vlan offload support. Add PF FLR wait and timeout handling. Add 5 ethtool ops for information of driver and link. Changes: PATCH 02 V01: https://lore.kernel.org/netdev/cover.1771916043.git.zhuyikai1@h-partners.com/ (local) * Add err handling after cmdq_sync_cmd_direct_resp (AI review) * Merge "cmdq_sync_cmd_detail_resp" and "cmdq_sync_cmd_direct_resp" into "cmdq_sync_cmd_exec" (AI review) * Add "status == HINIC3_PCIE_LINK_DOWN" in check_hwif_ready_handler to check card present (AI review) * Remove unneed GRO feature judgement and move csum_level to hinic3_rx_csum (AI review) * Add chip_present_flag judgement in hinic3_check_flr_finish_handler to avoid meaningless polling (AI review) * Remove unneed judgement in hinic3_parse_l2nic_res_cap (AI review) * Add hinic3 prefix to get_cap_from_fw and modify error log (AI review) * Execute hinic3_set_wq_page_size for both PF and VF (AI review) * Divide v01 patch into two parts (Jakub Kicinski) PATCH 02 V02: Fan Gong (9): hinic3: Add command queue detailed-response interfaces hinic3: Add Command Queue/Async Event Queue/Complete Event Queue/Mailbox dump interfaces hinic3: Add chip_present_flag checks to prevent errors when card is absent hinic3: Add RX VLAN offload support hinic3: Add msg_send_lock for message sending concurrecy hinic3: Add PF device support and function type validation hinic3: Add PF FLR wait and timeout handling hinic3: Add PF/VF capability parsing and parameter validation hinic3: Add ethtool basic ops drivers/net/ethernet/huawei/hinic3/Makefile | 1 + .../net/ethernet/huawei/hinic3/hinic3_cmdq.c | 195 +++++++- .../net/ethernet/huawei/hinic3/hinic3_cmdq.h | 15 + .../ethernet/huawei/hinic3/hinic3_common.c | 6 +- .../ethernet/huawei/hinic3/hinic3_common.h | 1 + .../net/ethernet/huawei/hinic3/hinic3_csr.h | 2 + .../net/ethernet/huawei/hinic3/hinic3_eqs.c | 65 +++ .../net/ethernet/huawei/hinic3/hinic3_eqs.h | 5 + .../ethernet/huawei/hinic3/hinic3_ethtool.c | 425 ++++++++++++++++++ .../ethernet/huawei/hinic3/hinic3_hw_cfg.c | 47 +- .../ethernet/huawei/hinic3/hinic3_hw_cfg.h | 8 + .../ethernet/huawei/hinic3/hinic3_hw_comm.c | 69 +++ .../ethernet/huawei/hinic3/hinic3_hw_comm.h | 2 + .../ethernet/huawei/hinic3/hinic3_hw_intf.h | 12 + .../net/ethernet/huawei/hinic3/hinic3_hwdev.c | 9 + .../net/ethernet/huawei/hinic3/hinic3_hwdev.h | 1 + .../net/ethernet/huawei/hinic3/hinic3_hwif.c | 23 +- .../net/ethernet/huawei/hinic3/hinic3_lld.c | 1 + .../net/ethernet/huawei/hinic3/hinic3_main.c | 3 + .../net/ethernet/huawei/hinic3/hinic3_mbox.c | 39 +- .../net/ethernet/huawei/hinic3/hinic3_mbox.h | 4 + .../huawei/hinic3/hinic3_mgmt_interface.h | 16 +- .../huawei/hinic3/hinic3_netdev_ops.c | 16 +- .../ethernet/huawei/hinic3/hinic3_nic_cfg.c | 83 ++++ .../ethernet/huawei/hinic3/hinic3_nic_cfg.h | 110 +++++ .../ethernet/huawei/hinic3/hinic3_nic_dev.h | 3 + .../huawei/hinic3/hinic3_pci_id_tbl.h | 1 + .../net/ethernet/huawei/hinic3/hinic3_rss.c | 2 +- .../net/ethernet/huawei/hinic3/hinic3_rx.c | 15 + .../net/ethernet/huawei/hinic3/hinic3_rx.h | 3 + 30 files changed, 1152 insertions(+), 30 deletions(-) create mode 100644 drivers/net/ethernet/huawei/hinic3/hinic3_ethtool.c base-commit: ad3dfa80be765757f612da04318248f6d20e4f71 -- 2.43.0