diff options
author | Mengyuan Lou <mengyuanlou@net-swift.com> | 2025-07-04 17:49:16 +0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-07-09 18:39:13 -0700 |
commit | 4ee8afb44aeeeaa9120007d4c420bf63ac63cbc7 (patch) | |
tree | e0dbc696a4102138686baba39c36ae3509ddb130 /drivers/net/ethernet/wangxun/libwx/wx_vf_common.c | |
parent | 377d180bd71cd79f7134465d8af598ea764560da (diff) |
net: txgbevf: add sw init pci info and reset hardware
Add sw init and reset hw for txgbevf virtual functions
which initialize basic parameters, and then register netdev.
Signed-off-by: Mengyuan Lou <mengyuanlou@net-swift.com>
Link: https://patch.msgid.link/20250704094923.652-6-mengyuanlou@net-swift.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/wangxun/libwx/wx_vf_common.c')
-rw-r--r-- | drivers/net/ethernet/wangxun/libwx/wx_vf_common.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c index 4a3c7d61e5fd..ed5daeec598a 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c @@ -43,6 +43,14 @@ EXPORT_SYMBOL(wxvf_resume); void wxvf_remove(struct pci_dev *pdev) { + struct wx *wx = pci_get_drvdata(pdev); + struct net_device *netdev; + + netdev = wx->netdev; + unregister_netdev(netdev); + kfree(wx->vfinfo); + kfree(wx->rss_key); + kfree(wx->mac_table); pci_release_selected_regions(pdev, pci_select_bars(pdev, IORESOURCE_MEM)); pci_disable_device(pdev); @@ -232,3 +240,27 @@ int wx_set_mac_vf(struct net_device *netdev, void *p) return 0; } EXPORT_SYMBOL(wx_set_mac_vf); + +int wxvf_open(struct net_device *netdev) +{ + return 0; +} +EXPORT_SYMBOL(wxvf_open); + +static void wxvf_down(struct wx *wx) +{ + struct net_device *netdev = wx->netdev; + + netif_tx_disable(netdev); + wx_reset_vf(wx); +} + +int wxvf_close(struct net_device *netdev) +{ + struct wx *wx = netdev_priv(netdev); + + wxvf_down(wx); + + return 0; +} +EXPORT_SYMBOL(wxvf_close); |