net: mscc: ocelot: unexpose ocelot_vcap_policer_{add,del}
authorVladimir Oltean <vladimir.oltean@nxp.com>
Sat, 20 Jun 2020 15:43:47 +0000 (18:43 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 21 Jun 2020 00:25:23 +0000 (17:25 -0700)
Remove the function prototypes from ocelot_police.h and make these
functions static. We need to move them above their callers. Note that
moving the implementations to ocelot_police.c is not trivially possible
due to dependency on is2_entry_set() which is static to ocelot_vcap.c.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mscc/ocelot_police.h
drivers/net/ethernet/mscc/ocelot_vcap.c

index be6f228..7adb05f 100644 (file)
@@ -33,9 +33,4 @@ struct qos_policer_conf {
 int qos_policer_conf_set(struct ocelot *ocelot, int port, u32 pol_ix,
                         struct qos_policer_conf *conf);
 
-int ocelot_vcap_policer_add(struct ocelot *ocelot, u32 pol_ix,
-                           struct ocelot_policer *pol);
-
-int ocelot_vcap_policer_del(struct ocelot *ocelot, u32 pol_ix);
-
 #endif /* _MSCC_OCELOT_POLICE_H_ */
index 8597034..3ef620f 100644 (file)
@@ -651,6 +651,49 @@ static void is2_entry_get(struct ocelot *ocelot, struct ocelot_vcap_filter *filt
        filter->stats.pkts = cnt;
 }
 
+static int ocelot_vcap_policer_add(struct ocelot *ocelot, u32 pol_ix,
+                                  struct ocelot_policer *pol)
+{
+       struct qos_policer_conf pp = { 0 };
+
+       if (!pol)
+               return -EINVAL;
+
+       pp.mode = MSCC_QOS_RATE_MODE_DATA;
+       pp.pir = pol->rate;
+       pp.pbs = pol->burst;
+
+       return qos_policer_conf_set(ocelot, 0, pol_ix, &pp);
+}
+
+static void ocelot_vcap_policer_del(struct ocelot *ocelot,
+                                   struct ocelot_vcap_block *block,
+                                   u32 pol_ix)
+{
+       struct ocelot_vcap_filter *filter;
+       struct qos_policer_conf pp = {0};
+       int index = -1;
+
+       if (pol_ix < block->pol_lpr)
+               return;
+
+       list_for_each_entry(filter, &block->rules, list) {
+               index++;
+               if (filter->action == OCELOT_VCAP_ACTION_POLICE &&
+                   filter->pol_ix < pol_ix) {
+                       filter->pol_ix += 1;
+                       ocelot_vcap_policer_add(ocelot, filter->pol_ix,
+                                               &filter->pol);
+                       is2_entry_set(ocelot, index, filter);
+               }
+       }
+
+       pp.mode = MSCC_QOS_RATE_MODE_DISABLED;
+       qos_policer_conf_set(ocelot, 0, pol_ix, &pp);
+
+       block->pol_lpr++;
+}
+
 static void ocelot_vcap_filter_add_to_block(struct ocelot *ocelot,
                                            struct ocelot_vcap_block *block,
                                            struct ocelot_vcap_filter *filter)
@@ -848,55 +891,6 @@ int ocelot_vcap_filter_add(struct ocelot *ocelot,
        return 0;
 }
 
-int ocelot_vcap_policer_add(struct ocelot *ocelot, u32 pol_ix,
-                           struct ocelot_policer *pol)
-{
-       struct qos_policer_conf pp = { 0 };
-
-       if (!pol)
-               return -EINVAL;
-
-       pp.mode = MSCC_QOS_RATE_MODE_DATA;
-       pp.pir = pol->rate;
-       pp.pbs = pol->burst;
-
-       return qos_policer_conf_set(ocelot, 0, pol_ix, &pp);
-}
-
-int ocelot_vcap_policer_del(struct ocelot *ocelot, u32 pol_ix)
-{
-       struct qos_policer_conf pp = { 0 };
-
-       pp.mode = MSCC_QOS_RATE_MODE_DISABLED;
-
-       return qos_policer_conf_set(ocelot, 0, pol_ix, &pp);
-}
-
-static void ocelot_vcap_police_del(struct ocelot *ocelot,
-                                  struct ocelot_vcap_block *block,
-                                  u32 ix)
-{
-       struct ocelot_vcap_filter *filter;
-       int index = -1;
-
-       if (ix < block->pol_lpr)
-               return;
-
-       list_for_each_entry(filter, &block->rules, list) {
-               index++;
-               if (filter->action == OCELOT_VCAP_ACTION_POLICE &&
-                   filter->pol_ix < ix) {
-                       filter->pol_ix += 1;
-                       ocelot_vcap_policer_add(ocelot, filter->pol_ix,
-                                               &filter->pol);
-                       is2_entry_set(ocelot, index, filter);
-               }
-       }
-
-       ocelot_vcap_policer_del(ocelot, block->pol_lpr);
-       block->pol_lpr++;
-}
-
 static void ocelot_vcap_block_remove_filter(struct ocelot *ocelot,
                                            struct ocelot_vcap_block *block,
                                            struct ocelot_vcap_filter *filter)
@@ -908,8 +902,8 @@ static void ocelot_vcap_block_remove_filter(struct ocelot *ocelot,
                tmp = list_entry(pos, struct ocelot_vcap_filter, list);
                if (tmp->id == filter->id) {
                        if (tmp->action == OCELOT_VCAP_ACTION_POLICE)
-                               ocelot_vcap_police_del(ocelot, block,
-                                                      tmp->pol_ix);
+                               ocelot_vcap_policer_del(ocelot, block,
+                                                       tmp->pol_ix);
 
                        list_del(pos);
                        kfree(tmp);