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: expose vcap_props structure
The vcap_props structure is common to other devices, specifically the VSC7512 chip that can only be controlled externally. Export this structure so it doesn't need to be recreated. Signed-off-by: Colin Foster <colin.foster@in-advantage.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> # regression Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
728d8019f1
commit
beb9a74e0b
3 changed files with 46 additions and 43 deletions
|
@ -180,49 +180,6 @@ static const struct ocelot_ops ocelot_ops = {
|
|||
.netdev_to_port = ocelot_netdev_to_port,
|
||||
};
|
||||
|
||||
static struct vcap_props vsc7514_vcap_props[] = {
|
||||
[VCAP_ES0] = {
|
||||
.action_type_width = 0,
|
||||
.action_table = {
|
||||
[ES0_ACTION_TYPE_NORMAL] = {
|
||||
.width = 73, /* HIT_STICKY not included */
|
||||
.count = 1,
|
||||
},
|
||||
},
|
||||
.target = S0,
|
||||
.keys = vsc7514_vcap_es0_keys,
|
||||
.actions = vsc7514_vcap_es0_actions,
|
||||
},
|
||||
[VCAP_IS1] = {
|
||||
.action_type_width = 0,
|
||||
.action_table = {
|
||||
[IS1_ACTION_TYPE_NORMAL] = {
|
||||
.width = 78, /* HIT_STICKY not included */
|
||||
.count = 4,
|
||||
},
|
||||
},
|
||||
.target = S1,
|
||||
.keys = vsc7514_vcap_is1_keys,
|
||||
.actions = vsc7514_vcap_is1_actions,
|
||||
},
|
||||
[VCAP_IS2] = {
|
||||
.action_type_width = 1,
|
||||
.action_table = {
|
||||
[IS2_ACTION_TYPE_NORMAL] = {
|
||||
.width = 49,
|
||||
.count = 2
|
||||
},
|
||||
[IS2_ACTION_TYPE_SMAC_SIP] = {
|
||||
.width = 6,
|
||||
.count = 4
|
||||
},
|
||||
},
|
||||
.target = S2,
|
||||
.keys = vsc7514_vcap_is2_keys,
|
||||
.actions = vsc7514_vcap_is2_actions,
|
||||
},
|
||||
};
|
||||
|
||||
static struct ptp_clock_info ocelot_ptp_clock_info = {
|
||||
.owner = THIS_MODULE,
|
||||
.name = "ocelot ptp",
|
||||
|
|
|
@ -639,3 +639,47 @@ const struct vcap_field vsc7514_vcap_is2_actions[] = {
|
|||
[VCAP_IS2_ACT_HIT_CNT] = { 49, 32 },
|
||||
};
|
||||
EXPORT_SYMBOL(vsc7514_vcap_is2_actions);
|
||||
|
||||
struct vcap_props vsc7514_vcap_props[] = {
|
||||
[VCAP_ES0] = {
|
||||
.action_type_width = 0,
|
||||
.action_table = {
|
||||
[ES0_ACTION_TYPE_NORMAL] = {
|
||||
.width = 73, /* HIT_STICKY not included */
|
||||
.count = 1,
|
||||
},
|
||||
},
|
||||
.target = S0,
|
||||
.keys = vsc7514_vcap_es0_keys,
|
||||
.actions = vsc7514_vcap_es0_actions,
|
||||
},
|
||||
[VCAP_IS1] = {
|
||||
.action_type_width = 0,
|
||||
.action_table = {
|
||||
[IS1_ACTION_TYPE_NORMAL] = {
|
||||
.width = 78, /* HIT_STICKY not included */
|
||||
.count = 4,
|
||||
},
|
||||
},
|
||||
.target = S1,
|
||||
.keys = vsc7514_vcap_is1_keys,
|
||||
.actions = vsc7514_vcap_is1_actions,
|
||||
},
|
||||
[VCAP_IS2] = {
|
||||
.action_type_width = 1,
|
||||
.action_table = {
|
||||
[IS2_ACTION_TYPE_NORMAL] = {
|
||||
.width = 49,
|
||||
.count = 2
|
||||
},
|
||||
[IS2_ACTION_TYPE_SMAC_SIP] = {
|
||||
.width = 6,
|
||||
.count = 4
|
||||
},
|
||||
},
|
||||
.target = S2,
|
||||
.keys = vsc7514_vcap_is2_keys,
|
||||
.actions = vsc7514_vcap_is2_actions,
|
||||
},
|
||||
};
|
||||
EXPORT_SYMBOL(vsc7514_vcap_props);
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
#include <soc/mscc/ocelot_vcap.h>
|
||||
|
||||
extern struct vcap_props vsc7514_vcap_props[];
|
||||
|
||||
extern const struct reg_field vsc7514_regfields[REGFIELD_MAX];
|
||||
|
||||
extern const u32 vsc7514_ana_regmap[];
|
||||
|
|
Loading…
Reference in a new issue