lkml.org 
[lkml]   [2022]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 net-next 04/14] net: mscc: ocelot: expose vcap_props structure
    Date
    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>
    ---

    v1 - v3 from previous RFC:
    * No changes

    ---
    drivers/net/ethernet/mscc/ocelot_vsc7514.c | 43 ---------------------
    drivers/net/ethernet/mscc/vsc7514_regs.c | 44 ++++++++++++++++++++++
    include/soc/mscc/vsc7514_regs.h | 1 +
    3 files changed, 45 insertions(+), 43 deletions(-)

    diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
    index 4fb525f071ac..19e5486d1dbd 100644
    --- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c
    +++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
    @@ -181,49 +181,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",
    diff --git a/drivers/net/ethernet/mscc/vsc7514_regs.c b/drivers/net/ethernet/mscc/vsc7514_regs.c
    index d665522e18c6..c943da4dd1f1 100644
    --- a/drivers/net/ethernet/mscc/vsc7514_regs.c
    +++ b/drivers/net/ethernet/mscc/vsc7514_regs.c
    @@ -644,3 +644,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);
    diff --git a/include/soc/mscc/vsc7514_regs.h b/include/soc/mscc/vsc7514_regs.h
    index d2b5b6b86aff..a939849efd91 100644
    --- a/include/soc/mscc/vsc7514_regs.h
    +++ b/include/soc/mscc/vsc7514_regs.h
    @@ -12,6 +12,7 @@
    #include <soc/mscc/ocelot_vcap.h>

    extern const struct ocelot_stat_layout vsc7514_stats_layout[];
    +extern struct vcap_props vsc7514_vcap_props[];

    extern const struct reg_field vsc7514_regfields[REGFIELD_MAX];

    --
    2.25.1
    \
     
     \ /
      Last update: 2022-09-26 02:31    [W:3.901 / U:0.424 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site