mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
net: mscc: ocelot: remove redundant stats_layout pointers
Ever since commit 4d1d157fb6
("net: mscc: ocelot: share the common stat
definitions between all drivers") the stats_layout entry in ocelot and
felix drivers have become redundant. Remove the unnecessary code.
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
837a3d66d6
commit
33d5eeb9a6
7 changed files with 12 additions and 26 deletions
|
@ -1363,7 +1363,6 @@ static int felix_init_structs(struct felix *felix, int num_phys_ports)
|
|||
return -ENOMEM;
|
||||
|
||||
ocelot->map = felix->info->map;
|
||||
ocelot->stats_layout = felix->info->stats_layout;
|
||||
ocelot->num_mact_rows = felix->info->num_mact_rows;
|
||||
ocelot->vcap = felix->info->vcap;
|
||||
ocelot->vcap_pol.base = felix->info->vcap_pol_base;
|
||||
|
|
|
@ -28,7 +28,6 @@ struct felix_info {
|
|||
const struct ocelot_ops *ops;
|
||||
const u32 *port_modes;
|
||||
int num_mact_rows;
|
||||
const struct ocelot_stat_layout *stats_layout;
|
||||
int num_ports;
|
||||
int num_tx_queues;
|
||||
struct vcap_props *vcap;
|
||||
|
|
|
@ -565,10 +565,6 @@ static const struct reg_field vsc9959_regfields[REGFIELD_MAX] = {
|
|||
[SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 7, 4),
|
||||
};
|
||||
|
||||
static const struct ocelot_stat_layout vsc9959_stats_layout[OCELOT_NUM_STATS] = {
|
||||
OCELOT_COMMON_STATS,
|
||||
};
|
||||
|
||||
static const struct vcap_field vsc9959_vcap_es0_keys[] = {
|
||||
[VCAP_ES0_EGR_PORT] = { 0, 3},
|
||||
[VCAP_ES0_IGR_PORT] = { 3, 3},
|
||||
|
@ -2546,7 +2542,6 @@ static const struct felix_info felix_info_vsc9959 = {
|
|||
.regfields = vsc9959_regfields,
|
||||
.map = vsc9959_regmap,
|
||||
.ops = &vsc9959_ops,
|
||||
.stats_layout = vsc9959_stats_layout,
|
||||
.vcap = vsc9959_vcap_props,
|
||||
.vcap_pol_base = VSC9959_VCAP_POLICER_BASE,
|
||||
.vcap_pol_max = VSC9959_VCAP_POLICER_MAX,
|
||||
|
|
|
@ -543,10 +543,6 @@ static const struct reg_field vsc9953_regfields[REGFIELD_MAX] = {
|
|||
[SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 11, 4),
|
||||
};
|
||||
|
||||
static const struct ocelot_stat_layout vsc9953_stats_layout[OCELOT_NUM_STATS] = {
|
||||
OCELOT_COMMON_STATS,
|
||||
};
|
||||
|
||||
static const struct vcap_field vsc9953_vcap_es0_keys[] = {
|
||||
[VCAP_ES0_EGR_PORT] = { 0, 4},
|
||||
[VCAP_ES0_IGR_PORT] = { 4, 4},
|
||||
|
@ -970,7 +966,6 @@ static const struct felix_info seville_info_vsc9953 = {
|
|||
.regfields = vsc9953_regfields,
|
||||
.map = vsc9953_regmap,
|
||||
.ops = &vsc9953_ops,
|
||||
.stats_layout = vsc9953_stats_layout,
|
||||
.vcap = vsc9953_vcap_props,
|
||||
.vcap_pol_base = VSC9953_VCAP_POLICER_BASE,
|
||||
.vcap_pol_max = VSC9953_VCAP_POLICER_MAX,
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
#include <linux/workqueue.h>
|
||||
#include "ocelot.h"
|
||||
|
||||
static const struct ocelot_stat_layout ocelot_stats_layout[OCELOT_NUM_STATS] = {
|
||||
OCELOT_COMMON_STATS,
|
||||
};
|
||||
|
||||
/* Read the counters from hardware and keep them in region->buf.
|
||||
* Caller must hold &ocelot->stat_view_lock.
|
||||
*/
|
||||
|
@ -93,10 +97,10 @@ void ocelot_get_strings(struct ocelot *ocelot, int port, u32 sset, u8 *data)
|
|||
return;
|
||||
|
||||
for (i = 0; i < OCELOT_NUM_STATS; i++) {
|
||||
if (ocelot->stats_layout[i].name[0] == '\0')
|
||||
if (ocelot_stats_layout[i].name[0] == '\0')
|
||||
continue;
|
||||
|
||||
memcpy(data + i * ETH_GSTRING_LEN, ocelot->stats_layout[i].name,
|
||||
memcpy(data + i * ETH_GSTRING_LEN, ocelot_stats_layout[i].name,
|
||||
ETH_GSTRING_LEN);
|
||||
}
|
||||
}
|
||||
|
@ -137,7 +141,7 @@ int ocelot_get_sset_count(struct ocelot *ocelot, int port, int sset)
|
|||
return -EOPNOTSUPP;
|
||||
|
||||
for (i = 0; i < OCELOT_NUM_STATS; i++)
|
||||
if (ocelot->stats_layout[i].name[0] != '\0')
|
||||
if (ocelot_stats_layout[i].name[0] != '\0')
|
||||
num_stats++;
|
||||
|
||||
return num_stats;
|
||||
|
@ -154,7 +158,7 @@ static void ocelot_port_ethtool_stats_cb(struct ocelot *ocelot, int port,
|
|||
for (i = 0; i < OCELOT_NUM_STATS; i++) {
|
||||
int index = port * OCELOT_NUM_STATS + i;
|
||||
|
||||
if (ocelot->stats_layout[i].name[0] == '\0')
|
||||
if (ocelot_stats_layout[i].name[0] == '\0')
|
||||
continue;
|
||||
|
||||
*data++ = ocelot->stats[index];
|
||||
|
@ -389,10 +393,10 @@ static int ocelot_prepare_stats_regions(struct ocelot *ocelot)
|
|||
INIT_LIST_HEAD(&ocelot->stats_regions);
|
||||
|
||||
for (i = 0; i < OCELOT_NUM_STATS; i++) {
|
||||
if (!ocelot->stats_layout[i].reg)
|
||||
if (!ocelot_stats_layout[i].reg)
|
||||
continue;
|
||||
|
||||
if (region && ocelot->stats_layout[i].reg == last + 4) {
|
||||
if (region && ocelot_stats_layout[i].reg == last + 4) {
|
||||
region->count++;
|
||||
} else {
|
||||
region = devm_kzalloc(ocelot->dev, sizeof(*region),
|
||||
|
@ -400,12 +404,12 @@ static int ocelot_prepare_stats_regions(struct ocelot *ocelot)
|
|||
if (!region)
|
||||
return -ENOMEM;
|
||||
|
||||
region->base = ocelot->stats_layout[i].reg;
|
||||
region->base = ocelot_stats_layout[i].reg;
|
||||
region->count = 1;
|
||||
list_add_tail(®ion->node, &ocelot->stats_regions);
|
||||
}
|
||||
|
||||
last = ocelot->stats_layout[i].reg;
|
||||
last = ocelot_stats_layout[i].reg;
|
||||
}
|
||||
|
||||
list_for_each_entry(region, &ocelot->stats_regions, node) {
|
||||
|
|
|
@ -100,10 +100,6 @@ static const struct reg_field ocelot_regfields[REGFIELD_MAX] = {
|
|||
[SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 12, 4),
|
||||
};
|
||||
|
||||
static const struct ocelot_stat_layout ocelot_stats_layout[OCELOT_NUM_STATS] = {
|
||||
OCELOT_COMMON_STATS,
|
||||
};
|
||||
|
||||
static void ocelot_pll5_init(struct ocelot *ocelot)
|
||||
{
|
||||
/* Configure PLL5. This will need a proper CCF driver
|
||||
|
@ -138,7 +134,6 @@ static int ocelot_chip_init(struct ocelot *ocelot, const struct ocelot_ops *ops)
|
|||
int ret;
|
||||
|
||||
ocelot->map = ocelot_regmap;
|
||||
ocelot->stats_layout = ocelot_stats_layout;
|
||||
ocelot->num_mact_rows = 1024;
|
||||
ocelot->ops = ops;
|
||||
|
||||
|
|
|
@ -967,7 +967,6 @@ struct ocelot {
|
|||
struct regmap *targets[TARGET_MAX];
|
||||
struct regmap_field *regfields[REGFIELD_MAX];
|
||||
const u32 *const *map;
|
||||
const struct ocelot_stat_layout *stats_layout;
|
||||
struct list_head stats_regions;
|
||||
|
||||
u32 pool_size[OCELOT_SB_NUM][OCELOT_SB_POOL_NUM];
|
||||
|
|
Loading…
Reference in a new issue