Commit a5b65cd2 authored by Paul Greenwalt's avatar Paul Greenwalt Committed by David S. Miller
Browse files

qede: Refactor qede_forced_speed_maps_init()



Refactor qede_forced_speed_maps_init() to use commen implementation
ethtool_forced_speed_maps_init().

The qede driver was compile tested only.

Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: default avatarPawel Chmielewski <pawel.chmielewski@intel.com>
Signed-off-by: default avatarPaul Greenwalt <paul.greenwalt@intel.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 26c5334d
Loading
Loading
Loading
Loading
+12 −34
Original line number Diff line number Diff line
@@ -201,21 +201,6 @@ static const char qede_tests_str_arr[QEDE_ETHTOOL_TEST_MAX][ETH_GSTRING_LEN] = {

/* Forced speed capabilities maps */

struct qede_forced_speed_map {
	u32		speed;
	__ETHTOOL_DECLARE_LINK_MODE_MASK(caps);

	const u32	*cap_arr;
	u32		arr_size;
};

#define QEDE_FORCED_SPEED_MAP(value)					\
{									\
	.speed		= SPEED_##value,				\
	.cap_arr	= qede_forced_speed_##value,			\
	.arr_size	= ARRAY_SIZE(qede_forced_speed_##value),	\
}

static const u32 qede_forced_speed_1000[] __initconst = {
	ETHTOOL_LINK_MODE_1000baseT_Full_BIT,
	ETHTOOL_LINK_MODE_1000baseKX_Full_BIT,
@@ -263,28 +248,21 @@ static const u32 qede_forced_speed_100000[] __initconst = {
	ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT,
};

static struct qede_forced_speed_map qede_forced_speed_maps[] __ro_after_init = {
	QEDE_FORCED_SPEED_MAP(1000),
	QEDE_FORCED_SPEED_MAP(10000),
	QEDE_FORCED_SPEED_MAP(20000),
	QEDE_FORCED_SPEED_MAP(25000),
	QEDE_FORCED_SPEED_MAP(40000),
	QEDE_FORCED_SPEED_MAP(50000),
	QEDE_FORCED_SPEED_MAP(100000),
static struct ethtool_forced_speed_map
qede_forced_speed_maps[] __ro_after_init = {
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 1000),
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 10000),
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 20000),
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 25000),
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 40000),
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 50000),
	ETHTOOL_FORCED_SPEED_MAP(qede_forced_speed, 100000),
};

void __init qede_forced_speed_maps_init(void)
{
	struct qede_forced_speed_map *map;
	u32 i;

	for (i = 0; i < ARRAY_SIZE(qede_forced_speed_maps); i++) {
		map = qede_forced_speed_maps + i;

		linkmode_set_bit_array(map->cap_arr, map->arr_size, map->caps);
		map->cap_arr = NULL;
		map->arr_size = 0;
	}
	ethtool_forced_speed_maps_init(qede_forced_speed_maps,
				       ARRAY_SIZE(qede_forced_speed_maps));
}

/* Ethtool callbacks */
@@ -564,8 +542,8 @@ static int qede_set_link_ksettings(struct net_device *dev,
				   const struct ethtool_link_ksettings *cmd)
{
	const struct ethtool_link_settings *base = &cmd->base;
	const struct ethtool_forced_speed_map *map;
	struct qede_dev *edev = netdev_priv(dev);
	const struct qede_forced_speed_map *map;
	struct qed_link_output current_link;
	struct qed_link_params params;
	u32 i;