Commit 1b8d1c50 authored by Mengyuan Lou's avatar Mengyuan Lou Committed by Jakub Kicinski
Browse files

net: wangxun: Add the basic ethtool interfaces



Add the basic ethtool ops get_drvinfo and get_link for ngbe and txgbe.
Ngbe implements get_link_ksettings, nway_reset and set_link_ksettings
for free using phylib code.
The code related to the physical interface is not yet fully implemented
in txgbe using phylink code. So do not implement get_link_ksettings,
nway_reset and set_link_ksettings in txgbe.

Signed-off-by: default avatarMengyuan Lou <mengyuanlou@net-swift.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20230214091527.69943-1-mengyuanlou@net-swift.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 14ade6ba
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4,4 +4,4 @@

obj-$(CONFIG_LIBWX) += libwx.o

libwx-objs := wx_hw.o wx_lib.o
libwx-objs := wx_hw.o wx_lib.o wx_ethtool.o
+18 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2015 - 2023 Beijing WangXun Technology Co., Ltd. */

#include <linux/pci.h>
#include <linux/phy.h>

#include "wx_type.h"
#include "wx_ethtool.h"

void wx_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *info)
{
	struct wx *wx = netdev_priv(netdev);

	strscpy(info->driver, wx->driver_name, sizeof(info->driver));
	strscpy(info->fw_version, wx->eeprom_id, sizeof(info->fw_version));
	strscpy(info->bus_info, pci_name(wx->pdev), sizeof(info->bus_info));
}
EXPORT_SYMBOL(wx_get_drvinfo);
+8 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2015 - 2023 Beijing WangXun Technology Co., Ltd. */

#ifndef _WX_ETHTOOL_H_
#define _WX_ETHTOOL_H_

void wx_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *info);
#endif /* _WX_ETHTOOL_H_ */
+1 −0
Original line number Diff line number Diff line
@@ -633,6 +633,7 @@ struct wx {
	bool adapter_stopped;
	u16 tpid[8];
	char eeprom_id[32];
	char *driver_name;
	enum wx_reset_type reset_type;

	/* PHY stuff */
+1 −1
Original line number Diff line number Diff line
@@ -6,4 +6,4 @@

obj-$(CONFIG_NGBE) += ngbe.o

ngbe-objs := ngbe_main.o ngbe_hw.o ngbe_mdio.o
ngbe-objs := ngbe_main.o ngbe_hw.o ngbe_mdio.o ngbe_ethtool.o
Loading