[PATCH net-next v5 00/10] add sriov support for wangxun NICs
From: Mengyuan Lou <mengyuanlou@net-swift.com>
Date: 2024-08-04 12:49:08
Add sriov_configure for ngbe and txgbe drivers. Reallocate queue and irq resources when sriov is enabled. Add wx_msg_task in interrupts handler, which is used to process the configuration sent by vfs. Add ping_vf for wx_pf to tell vfs about pf link change. Make devlink allocation function generic to use it for PF and for VF. Add PF/VF devlink port creation. It will be used to set/get VFs. v5: - Add devlink allocation which will be used to add uAPI. - Remove unused EXPORT_SYMBOL. - Unify some functions return styles in patch 1 and patch 4. - Make the code line less than 80 columns. v4: https://lore.kernel.org/netdev/3601E5DE87D2BC4F+20240604155850.51983-1-mengyuanlou@net-swift.com/ (local) - Move wx_ping_vf to patch 6. - Modify return section format in Kernel docs. v3: https://lore.kernel.org/netdev/587FAB7876D85676+20240415110225.75132-1-mengyuanlou@net-swift.com/ (local) - Do not accept any new implementations of the old SR-IOV API. - So remove ndo_vf_xxx in these patches. Switch mode ops will be added - in vf driver which will be submitted later. v2: https://lore.kernel.org/netdev/EF19E603F7CCA7B9+20240403092714.3027-1-mengyuanlou@net-swift.com/ (local) - Fix some used uninitialised. - Use poll + yield with delay instead of busy poll of 10 times in mbx_lock obtain. - Split msg_task and flow into separate patches. v1: https://lore.kernel.org/netdev/DA3033FE3CCBBB84+20240307095755.7130-1-mengyuanlou@net-swift.com/ (local) Mengyuan Lou (10): net: libwx: Add malibox api for wangxun pf drivers net: libwx: Add sriov api for wangxun nics net: libwx: Redesign flow when sriov is enabled net: libwx: Add msg task func net: ngbe: add sriov function support net: txgbe: add sriov function support net: libwx: allocate devlink for devlink port net: libwx: add eswitch switch api for devlink ops net: txgbe: add devlink and devlink port created net: ngbe: add devlink and devlink port created drivers/net/ethernet/wangxun/libwx/Makefile | 3 +- .../net/ethernet/wangxun/libwx/wx_devlink.c | 211 ++++ .../net/ethernet/wangxun/libwx/wx_devlink.h | 13 + .../net/ethernet/wangxun/libwx/wx_eswitch.c | 53 + .../net/ethernet/wangxun/libwx/wx_eswitch.h | 13 + drivers/net/ethernet/wangxun/libwx/wx_hw.c | 301 +++++- drivers/net/ethernet/wangxun/libwx/wx_hw.h | 4 + drivers/net/ethernet/wangxun/libwx/wx_lib.c | 128 ++- drivers/net/ethernet/wangxun/libwx/wx_mbx.c | 175 ++++ drivers/net/ethernet/wangxun/libwx/wx_mbx.h | 86 ++ drivers/net/ethernet/wangxun/libwx/wx_sriov.c | 966 ++++++++++++++++++ drivers/net/ethernet/wangxun/libwx/wx_sriov.h | 15 + drivers/net/ethernet/wangxun/libwx/wx_type.h | 111 +- drivers/net/ethernet/wangxun/ngbe/ngbe_main.c | 73 +- drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c | 10 + drivers/net/ethernet/wangxun/ngbe/ngbe_type.h | 2 + .../net/ethernet/wangxun/txgbe/txgbe_irq.c | 21 +- .../net/ethernet/wangxun/txgbe/txgbe_main.c | 41 +- .../net/ethernet/wangxun/txgbe/txgbe_phy.c | 8 + .../net/ethernet/wangxun/txgbe/txgbe_type.h | 4 +- 20 files changed, 2208 insertions(+), 30 deletions(-) create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_devlink.c create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_devlink.h create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_eswitch.c create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_eswitch.h create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_mbx.c create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_mbx.h create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_sriov.c create mode 100644 drivers/net/ethernet/wangxun/libwx/wx_sriov.h -- 2.45.2