Commit 95e96f77 authored by Martin Habets's avatar Martin Habets Committed by Jakub Kicinski
Browse files

sfc/siena: Rename peripheral functions to avoid conflicts with sfc



For siena use efx_siena_ as the function prefix.
This patch covers selftest.h, ptp.h, net_driver.h and ethtool_common.h.
efx_ethtool_fill_self_tests() can become static.
Some functions in ptp.c can also become static.
Rename loopback_mode in net_driver.h.

Signed-off-by: default avatarMartin Habets <habetsm.xilinx@gmail.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 7f9e4b2a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -494,9 +494,9 @@ static int efx_ioctl(struct net_device *net_dev, struct ifreq *ifr, int cmd)
	struct mii_ioctl_data *data = if_mii(ifr);

	if (cmd == SIOCSHWTSTAMP)
		return efx_ptp_set_ts_config(efx, ifr);
		return efx_siena_ptp_set_ts_config(efx, ifr);
	if (cmd == SIOCGHWTSTAMP)
		return efx_ptp_get_ts_config(efx, ifr);
		return efx_siena_ptp_get_ts_config(efx, ifr);

	/* Convert phy_id from older PRTAD/DEVAD format */
	if ((cmd == SIOCGMIIREG || cmd == SIOCSMIIREG) &&
@@ -536,7 +536,7 @@ static int efx_net_open(struct net_device *net_dev)
	efx_siena_start_all(efx);
	if (efx->state == STATE_DISABLED || efx->reset_pending)
		netif_device_detach(efx->net_dev);
	efx_selftest_async_start(efx);
	efx_siena_selftest_async_start(efx);
	return 0;
}

+6 −6
Original line number Diff line number Diff line
@@ -73,8 +73,8 @@ static const char *const efx_reset_type_names[] = {
	STRING_TABLE_LOOKUP(type, efx_reset_type)

/* Loopback mode names (see LOOPBACK_MODE()) */
const unsigned int efx_loopback_mode_max = LOOPBACK_MAX;
const char *const efx_loopback_mode_names[] = {
const unsigned int efx_siena_loopback_mode_max = LOOPBACK_MAX;
const char *const efx_siena_loopback_mode_names[] = {
	[LOOPBACK_NONE]		= "NONE",
	[LOOPBACK_DATA]		= "DATAPATH",
	[LOOPBACK_GMAC]		= "GMAC",
@@ -434,7 +434,7 @@ static void efx_start_datapath(struct efx_nic *efx)
	/* Initialise the channels */
	efx_siena_start_channels(efx);

	efx_ptp_start_datapath(efx);
	efx_siena_ptp_start_datapath(efx);

	if (netif_device_present(efx->net_dev))
		netif_tx_wake_all_queues(efx->net_dev);
@@ -445,7 +445,7 @@ static void efx_stop_datapath(struct efx_nic *efx)
	EFX_ASSERT_RESET_SERIALISED(efx);
	BUG_ON(efx->port_enabled);

	efx_ptp_stop_datapath(efx);
	efx_siena_ptp_stop_datapath(efx);

	efx_siena_stop_channels(efx);
}
@@ -514,7 +514,7 @@ static void efx_stop_port(struct efx_nic *efx)
	netif_addr_unlock_bh(efx->net_dev);

	cancel_delayed_work_sync(&efx->monitor_work);
	efx_selftest_async_cancel(efx);
	efx_siena_selftest_async_cancel(efx);
	cancel_work_sync(&efx->mac_work);
}

@@ -994,7 +994,7 @@ int efx_siena_init_struct(struct efx_nic *efx,
#endif
	INIT_WORK(&efx->reset_work, efx_reset_work);
	INIT_DELAYED_WORK(&efx->monitor_work, efx_monitor);
	efx_selftest_async_init(efx);
	efx_siena_selftest_async_init(efx);
	efx->pci_dev = pci_dev;
	efx->msg_enable = debug;
	efx->state = STATE_UNINIT;
+25 −25
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ static int efx_ethtool_get_ts_info(struct net_device *net_dev,
				    SOF_TIMESTAMPING_SOFTWARE);
	ts_info->phc_index = -1;

	efx_ptp_get_ts_info(efx, ts_info);
	efx_siena_ptp_get_ts_info(efx, ts_info);
	return 0;
}

@@ -243,40 +243,40 @@ const struct ethtool_ops efx_siena_ethtool_ops = {
	.supported_coalesce_params = ETHTOOL_COALESCE_USECS |
				     ETHTOOL_COALESCE_USECS_IRQ |
				     ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
	.get_drvinfo		= efx_ethtool_get_drvinfo,
	.get_drvinfo		= efx_siena_ethtool_get_drvinfo,
	.get_regs_len		= efx_ethtool_get_regs_len,
	.get_regs		= efx_ethtool_get_regs,
	.get_msglevel		= efx_ethtool_get_msglevel,
	.set_msglevel		= efx_ethtool_set_msglevel,
	.get_msglevel		= efx_siena_ethtool_get_msglevel,
	.set_msglevel		= efx_siena_ethtool_set_msglevel,
	.get_link		= ethtool_op_get_link,
	.get_coalesce		= efx_ethtool_get_coalesce,
	.set_coalesce		= efx_ethtool_set_coalesce,
	.get_ringparam		= efx_ethtool_get_ringparam,
	.set_ringparam		= efx_ethtool_set_ringparam,
	.get_pauseparam         = efx_ethtool_get_pauseparam,
	.set_pauseparam         = efx_ethtool_set_pauseparam,
	.get_sset_count		= efx_ethtool_get_sset_count,
	.self_test		= efx_ethtool_self_test,
	.get_strings		= efx_ethtool_get_strings,
	.get_pauseparam         = efx_siena_ethtool_get_pauseparam,
	.set_pauseparam         = efx_siena_ethtool_set_pauseparam,
	.get_sset_count		= efx_siena_ethtool_get_sset_count,
	.self_test		= efx_siena_ethtool_self_test,
	.get_strings		= efx_siena_ethtool_get_strings,
	.set_phys_id		= efx_ethtool_phys_id,
	.get_ethtool_stats	= efx_ethtool_get_stats,
	.get_ethtool_stats	= efx_siena_ethtool_get_stats,
	.get_wol                = efx_ethtool_get_wol,
	.set_wol                = efx_ethtool_set_wol,
	.reset			= efx_ethtool_reset,
	.get_rxnfc		= efx_ethtool_get_rxnfc,
	.set_rxnfc		= efx_ethtool_set_rxnfc,
	.get_rxfh_indir_size	= efx_ethtool_get_rxfh_indir_size,
	.get_rxfh_key_size	= efx_ethtool_get_rxfh_key_size,
	.get_rxfh		= efx_ethtool_get_rxfh,
	.set_rxfh		= efx_ethtool_set_rxfh,
	.get_rxfh_context	= efx_ethtool_get_rxfh_context,
	.set_rxfh_context	= efx_ethtool_set_rxfh_context,
	.reset			= efx_siena_ethtool_reset,
	.get_rxnfc		= efx_siena_ethtool_get_rxnfc,
	.set_rxnfc		= efx_siena_ethtool_set_rxnfc,
	.get_rxfh_indir_size	= efx_siena_ethtool_get_rxfh_indir_size,
	.get_rxfh_key_size	= efx_siena_ethtool_get_rxfh_key_size,
	.get_rxfh		= efx_siena_ethtool_get_rxfh,
	.set_rxfh		= efx_siena_ethtool_set_rxfh,
	.get_rxfh_context	= efx_siena_ethtool_get_rxfh_context,
	.set_rxfh_context	= efx_siena_ethtool_set_rxfh_context,
	.get_ts_info		= efx_ethtool_get_ts_info,
	.get_module_info	= efx_ethtool_get_module_info,
	.get_module_eeprom	= efx_ethtool_get_module_eeprom,
	.get_link_ksettings	= efx_ethtool_get_link_ksettings,
	.set_link_ksettings	= efx_ethtool_set_link_ksettings,
	.get_module_info	= efx_siena_ethtool_get_module_info,
	.get_module_eeprom	= efx_siena_ethtool_get_module_eeprom,
	.get_link_ksettings	= efx_siena_ethtool_get_link_ksettings,
	.set_link_ksettings	= efx_siena_ethtool_set_link_ksettings,
	.get_fec_stats		= efx_ethtool_get_fec_stats,
	.get_fecparam		= efx_ethtool_get_fecparam,
	.set_fecparam		= efx_ethtool_set_fecparam,
	.get_fecparam		= efx_siena_ethtool_get_fecparam,
	.set_fecparam		= efx_siena_ethtool_set_fecparam,
};
+100 −99
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ static const struct efx_sw_stat_desc efx_sw_stat_desc[] = {

#define EFX_ETHTOOL_SW_STAT_COUNT ARRAY_SIZE(efx_sw_stat_desc)

void efx_ethtool_get_drvinfo(struct net_device *net_dev,
void efx_siena_ethtool_get_drvinfo(struct net_device *net_dev,
				   struct ethtool_drvinfo *info)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -111,69 +111,21 @@ void efx_ethtool_get_drvinfo(struct net_device *net_dev,
	strlcpy(info->bus_info, pci_name(efx->pci_dev), sizeof(info->bus_info));
}

u32 efx_ethtool_get_msglevel(struct net_device *net_dev)
u32 efx_siena_ethtool_get_msglevel(struct net_device *net_dev)
{
	struct efx_nic *efx = netdev_priv(net_dev);

	return efx->msg_enable;
}

void efx_ethtool_set_msglevel(struct net_device *net_dev, u32 msg_enable)
void efx_siena_ethtool_set_msglevel(struct net_device *net_dev, u32 msg_enable)
{
	struct efx_nic *efx = netdev_priv(net_dev);

	efx->msg_enable = msg_enable;
}

void efx_ethtool_self_test(struct net_device *net_dev,
			   struct ethtool_test *test, u64 *data)
{
	struct efx_nic *efx = netdev_priv(net_dev);
	struct efx_self_tests *efx_tests;
	bool already_up;
	int rc = -ENOMEM;

	efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL);
	if (!efx_tests)
		goto fail;

	if (efx->state != STATE_READY) {
		rc = -EBUSY;
		goto out;
	}

	netif_info(efx, drv, efx->net_dev, "starting %sline testing\n",
		   (test->flags & ETH_TEST_FL_OFFLINE) ? "off" : "on");

	/* We need rx buffers and interrupts. */
	already_up = (efx->net_dev->flags & IFF_UP);
	if (!already_up) {
		rc = dev_open(efx->net_dev, NULL);
		if (rc) {
			netif_err(efx, drv, efx->net_dev,
				  "failed opening device.\n");
			goto out;
		}
	}

	rc = efx_selftest(efx, efx_tests, test->flags);

	if (!already_up)
		dev_close(efx->net_dev);

	netif_info(efx, drv, efx->net_dev, "%s %sline self-tests\n",
		   rc == 0 ? "passed" : "failed",
		   (test->flags & ETH_TEST_FL_OFFLINE) ? "off" : "on");

out:
	efx_ethtool_fill_self_tests(efx, efx_tests, NULL, data);
	kfree(efx_tests);
fail:
	if (rc)
		test->flags |= ETH_TEST_FL_FAILED;
}

void efx_ethtool_get_pauseparam(struct net_device *net_dev,
void efx_siena_ethtool_get_pauseparam(struct net_device *net_dev,
				      struct ethtool_pauseparam *pause)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -183,7 +135,7 @@ void efx_ethtool_get_pauseparam(struct net_device *net_dev,
	pause->autoneg = !!(efx->wanted_fc & EFX_FC_AUTO);
}

int efx_ethtool_set_pauseparam(struct net_device *net_dev,
int efx_siena_ethtool_set_pauseparam(struct net_device *net_dev,
				     struct ethtool_pauseparam *pause)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -281,7 +233,7 @@ static void efx_fill_test(unsigned int test_index, u8 *strings, u64 *data,
#define EFX_CHANNEL_NAME(_channel) "chan%d", _channel->channel
#define EFX_TX_QUEUE_NAME(_tx_queue) "txq%d", _tx_queue->label
#define EFX_LOOPBACK_NAME(_mode, _counter)			\
	"loopback.%s." _counter, STRING_TABLE_LOOKUP(_mode, efx_loopback_mode)
	"loopback.%s." _counter, STRING_TABLE_LOOKUP(_mode, efx_siena_loopback_mode)

/**
 * efx_fill_loopback_test - fill in a block of loopback self-test entries
@@ -340,7 +292,7 @@ static int efx_fill_loopback_test(struct efx_nic *efx,
 * The reason for merging these three functions is to make sure that
 * they can never be inconsistent.
 */
int efx_ethtool_fill_self_tests(struct efx_nic *efx,
static int efx_ethtool_fill_self_tests(struct efx_nic *efx,
				       struct efx_self_tests *tests,
				       u8 *strings, u64 *data)
{
@@ -395,6 +347,54 @@ int efx_ethtool_fill_self_tests(struct efx_nic *efx,
	return n;
}

void efx_siena_ethtool_self_test(struct net_device *net_dev,
				 struct ethtool_test *test, u64 *data)
{
	struct efx_nic *efx = netdev_priv(net_dev);
	struct efx_self_tests *efx_tests;
	bool already_up;
	int rc = -ENOMEM;

	efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL);
	if (!efx_tests)
		goto fail;

	if (efx->state != STATE_READY) {
		rc = -EBUSY;
		goto out;
	}

	netif_info(efx, drv, efx->net_dev, "starting %sline testing\n",
		   (test->flags & ETH_TEST_FL_OFFLINE) ? "off" : "on");

	/* We need rx buffers and interrupts. */
	already_up = (efx->net_dev->flags & IFF_UP);
	if (!already_up) {
		rc = dev_open(efx->net_dev, NULL);
		if (rc) {
			netif_err(efx, drv, efx->net_dev,
				  "failed opening device.\n");
			goto out;
		}
	}

	rc = efx_siena_selftest(efx, efx_tests, test->flags);

	if (!already_up)
		dev_close(efx->net_dev);

	netif_info(efx, drv, efx->net_dev, "%s %sline self-tests\n",
		   rc == 0 ? "passed" : "failed",
		   (test->flags & ETH_TEST_FL_OFFLINE) ? "off" : "on");

out:
	efx_ethtool_fill_self_tests(efx, efx_tests, NULL, data);
	kfree(efx_tests);
fail:
	if (rc)
		test->flags |= ETH_TEST_FL_FAILED;
}

static size_t efx_describe_per_queue_stats(struct efx_nic *efx, u8 *strings)
{
	size_t n_stats = 0;
@@ -439,7 +439,7 @@ static size_t efx_describe_per_queue_stats(struct efx_nic *efx, u8 *strings)
	return n_stats;
}

int efx_ethtool_get_sset_count(struct net_device *net_dev, int string_set)
int efx_siena_ethtool_get_sset_count(struct net_device *net_dev, int string_set)
{
	struct efx_nic *efx = netdev_priv(net_dev);

@@ -448,7 +448,7 @@ int efx_ethtool_get_sset_count(struct net_device *net_dev, int string_set)
		return efx->type->describe_stats(efx, NULL) +
		       EFX_ETHTOOL_SW_STAT_COUNT +
		       efx_describe_per_queue_stats(efx, NULL) +
		       efx_ptp_describe_stats(efx, NULL);
		       efx_siena_ptp_describe_stats(efx, NULL);
	case ETH_SS_TEST:
		return efx_ethtool_fill_self_tests(efx, NULL, NULL, NULL);
	default:
@@ -456,7 +456,7 @@ int efx_ethtool_get_sset_count(struct net_device *net_dev, int string_set)
	}
}

void efx_ethtool_get_strings(struct net_device *net_dev,
void efx_siena_ethtool_get_strings(struct net_device *net_dev,
				   u32 string_set, u8 *strings)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -472,7 +472,7 @@ void efx_ethtool_get_strings(struct net_device *net_dev,
		strings += EFX_ETHTOOL_SW_STAT_COUNT * ETH_GSTRING_LEN;
		strings += (efx_describe_per_queue_stats(efx, strings) *
			    ETH_GSTRING_LEN);
		efx_ptp_describe_stats(efx, strings);
		efx_siena_ptp_describe_stats(efx, strings);
		break;
	case ETH_SS_TEST:
		efx_ethtool_fill_self_tests(efx, NULL, strings, NULL);
@@ -483,7 +483,7 @@ void efx_ethtool_get_strings(struct net_device *net_dev,
	}
}

void efx_ethtool_get_stats(struct net_device *net_dev,
void efx_siena_ethtool_get_stats(struct net_device *net_dev,
				 struct ethtool_stats *stats,
				 u64 *data)
{
@@ -554,11 +554,11 @@ void efx_ethtool_get_stats(struct net_device *net_dev,
		}
	}

	efx_ptp_update_stats(efx, data);
	efx_siena_ptp_update_stats(efx, data);
}

/* This must be called with rtnl_lock held. */
int efx_ethtool_get_link_ksettings(struct net_device *net_dev,
int efx_siena_ethtool_get_link_ksettings(struct net_device *net_dev,
					 struct ethtool_link_ksettings *cmd)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -581,7 +581,8 @@ int efx_ethtool_get_link_ksettings(struct net_device *net_dev,
}

/* This must be called with rtnl_lock held. */
int efx_ethtool_set_link_ksettings(struct net_device *net_dev,
int
efx_siena_ethtool_set_link_ksettings(struct net_device *net_dev,
				     const struct ethtool_link_ksettings *cmd)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -601,7 +602,7 @@ int efx_ethtool_set_link_ksettings(struct net_device *net_dev,
	return rc;
}

int efx_ethtool_get_fecparam(struct net_device *net_dev,
int efx_siena_ethtool_get_fecparam(struct net_device *net_dev,
				   struct ethtool_fecparam *fecparam)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -614,7 +615,7 @@ int efx_ethtool_get_fecparam(struct net_device *net_dev,
	return rc;
}

int efx_ethtool_set_fecparam(struct net_device *net_dev,
int efx_siena_ethtool_set_fecparam(struct net_device *net_dev,
				   struct ethtool_fecparam *fecparam)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -806,7 +807,7 @@ static int efx_ethtool_get_class_rule(struct efx_nic *efx,
	return rc;
}

int efx_ethtool_get_rxnfc(struct net_device *net_dev,
int efx_siena_ethtool_get_rxnfc(struct net_device *net_dev,
				struct ethtool_rxnfc *info, u32 *rule_locs)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -1125,7 +1126,7 @@ static int efx_ethtool_set_class_rule(struct efx_nic *efx,
	return 0;
}

int efx_ethtool_set_rxnfc(struct net_device *net_dev,
int efx_siena_ethtool_set_rxnfc(struct net_device *net_dev,
				struct ethtool_rxnfc *info)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -1147,7 +1148,7 @@ int efx_ethtool_set_rxnfc(struct net_device *net_dev,
	}
}

u32 efx_ethtool_get_rxfh_indir_size(struct net_device *net_dev)
u32 efx_siena_ethtool_get_rxfh_indir_size(struct net_device *net_dev)
{
	struct efx_nic *efx = netdev_priv(net_dev);

@@ -1156,14 +1157,14 @@ u32 efx_ethtool_get_rxfh_indir_size(struct net_device *net_dev)
	return ARRAY_SIZE(efx->rss_context.rx_indir_table);
}

u32 efx_ethtool_get_rxfh_key_size(struct net_device *net_dev)
u32 efx_siena_ethtool_get_rxfh_key_size(struct net_device *net_dev)
{
	struct efx_nic *efx = netdev_priv(net_dev);

	return efx->type->rx_hash_key_size;
}

int efx_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key,
int efx_siena_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key,
			       u8 *hfunc)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -1184,7 +1185,7 @@ int efx_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key,
	return 0;
}

int efx_ethtool_set_rxfh(struct net_device *net_dev, const u32 *indir,
int efx_siena_ethtool_set_rxfh(struct net_device *net_dev, const u32 *indir,
			       const u8 *key, const u8 hfunc)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -1203,7 +1204,7 @@ int efx_ethtool_set_rxfh(struct net_device *net_dev, const u32 *indir,
	return efx->type->rx_push_rss_config(efx, true, indir, key);
}

int efx_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir,
int efx_siena_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir,
				       u8 *key, u8 *hfunc, u32 rss_context)
{
	struct efx_nic *efx = netdev_priv(net_dev);
@@ -1234,7 +1235,7 @@ int efx_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir,
	return rc;
}

int efx_ethtool_set_rxfh_context(struct net_device *net_dev,
int efx_siena_ethtool_set_rxfh_context(struct net_device *net_dev,
				       const u32 *indir, const u8 *key,
				       const u8 hfunc, u32 *rss_context,
				       bool delete)
@@ -1299,7 +1300,7 @@ int efx_ethtool_set_rxfh_context(struct net_device *net_dev,
	return rc;
}

int efx_ethtool_reset(struct net_device *net_dev, u32 *flags)
int efx_siena_ethtool_reset(struct net_device *net_dev, u32 *flags)
{
	struct efx_nic *efx = netdev_priv(net_dev);
	int rc;
@@ -1311,7 +1312,7 @@ int efx_ethtool_reset(struct net_device *net_dev, u32 *flags)
	return efx_siena_reset(efx, rc);
}

int efx_ethtool_get_module_eeprom(struct net_device *net_dev,
int efx_siena_ethtool_get_module_eeprom(struct net_device *net_dev,
					struct ethtool_eeprom *ee,
					u8 *data)
{
@@ -1325,7 +1326,7 @@ int efx_ethtool_get_module_eeprom(struct net_device *net_dev,
	return ret;
}

int efx_ethtool_get_module_info(struct net_device *net_dev,
int efx_siena_ethtool_get_module_info(struct net_device *net_dev,
				      struct ethtool_modinfo *modinfo)
{
	struct efx_nic *efx = netdev_priv(net_dev);
+46 −49
Original line number Diff line number Diff line
@@ -11,53 +11,50 @@
#ifndef EFX_ETHTOOL_COMMON_H
#define EFX_ETHTOOL_COMMON_H

void efx_ethtool_get_drvinfo(struct net_device *net_dev,
void efx_siena_ethtool_get_drvinfo(struct net_device *net_dev,
				   struct ethtool_drvinfo *info);
u32 efx_ethtool_get_msglevel(struct net_device *net_dev);
void efx_ethtool_set_msglevel(struct net_device *net_dev, u32 msg_enable);
void efx_ethtool_self_test(struct net_device *net_dev,
u32 efx_siena_ethtool_get_msglevel(struct net_device *net_dev);
void efx_siena_ethtool_set_msglevel(struct net_device *net_dev, u32 msg_enable);
void efx_siena_ethtool_self_test(struct net_device *net_dev,
				 struct ethtool_test *test, u64 *data);
void efx_ethtool_get_pauseparam(struct net_device *net_dev,
void efx_siena_ethtool_get_pauseparam(struct net_device *net_dev,
				      struct ethtool_pauseparam *pause);
int efx_ethtool_set_pauseparam(struct net_device *net_dev,
int efx_siena_ethtool_set_pauseparam(struct net_device *net_dev,
				     struct ethtool_pauseparam *pause);
int efx_ethtool_fill_self_tests(struct efx_nic *efx,
				struct efx_self_tests *tests,
				u8 *strings, u64 *data);
int efx_ethtool_get_sset_count(struct net_device *net_dev, int string_set);
void efx_ethtool_get_strings(struct net_device *net_dev, u32 string_set,
int efx_siena_ethtool_get_sset_count(struct net_device *net_dev, int string_set);
void efx_siena_ethtool_get_strings(struct net_device *net_dev, u32 string_set,
				   u8 *strings);
void efx_ethtool_get_stats(struct net_device *net_dev,
			   struct ethtool_stats *stats __attribute__ ((unused)),
void efx_siena_ethtool_get_stats(struct net_device *net_dev,
				 struct ethtool_stats *stats __always_unused,
				 u64 *data);
int efx_ethtool_get_link_ksettings(struct net_device *net_dev,
int efx_siena_ethtool_get_link_ksettings(struct net_device *net_dev,
					 struct ethtool_link_ksettings *out);
int efx_ethtool_set_link_ksettings(struct net_device *net_dev,
int efx_siena_ethtool_set_link_ksettings(struct net_device *net_dev,
				const struct ethtool_link_ksettings *settings);
int efx_ethtool_get_fecparam(struct net_device *net_dev,
int efx_siena_ethtool_get_fecparam(struct net_device *net_dev,
				   struct ethtool_fecparam *fecparam);
int efx_ethtool_set_fecparam(struct net_device *net_dev,
int efx_siena_ethtool_set_fecparam(struct net_device *net_dev,
				   struct ethtool_fecparam *fecparam);
int efx_ethtool_get_rxnfc(struct net_device *net_dev,
int efx_siena_ethtool_get_rxnfc(struct net_device *net_dev,
				struct ethtool_rxnfc *info, u32 *rule_locs);
int efx_ethtool_set_rxnfc(struct net_device *net_dev,
int efx_siena_ethtool_set_rxnfc(struct net_device *net_dev,
				struct ethtool_rxnfc *info);
u32 efx_ethtool_get_rxfh_indir_size(struct net_device *net_dev);
u32 efx_ethtool_get_rxfh_key_size(struct net_device *net_dev);
int efx_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key,
u32 efx_siena_ethtool_get_rxfh_indir_size(struct net_device *net_dev);
u32 efx_siena_ethtool_get_rxfh_key_size(struct net_device *net_dev);
int efx_siena_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key,
			       u8 *hfunc);
int efx_ethtool_set_rxfh(struct net_device *net_dev,
int efx_siena_ethtool_set_rxfh(struct net_device *net_dev,
			       const u32 *indir, const u8 *key, const u8 hfunc);
int efx_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir,
int efx_siena_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir,
				       u8 *key, u8 *hfunc, u32 rss_context);
int efx_ethtool_set_rxfh_context(struct net_device *net_dev,
int efx_siena_ethtool_set_rxfh_context(struct net_device *net_dev,
				       const u32 *indir, const u8 *key,
				       const u8 hfunc, u32 *rss_context,
				       bool delete);
int efx_ethtool_reset(struct net_device *net_dev, u32 *flags);
int efx_ethtool_get_module_eeprom(struct net_device *net_dev,
int efx_siena_ethtool_reset(struct net_device *net_dev, u32 *flags);
int efx_siena_ethtool_get_module_eeprom(struct net_device *net_dev,
					struct ethtool_eeprom *ee,
					u8 *data);
int efx_ethtool_get_module_info(struct net_device *net_dev,
int efx_siena_ethtool_get_module_info(struct net_device *net_dev,
				      struct ethtool_modinfo *modinfo);
#endif
Loading