diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0340-LF-368-net-mscc-ocelot-make-ocelot_ace_rule-support-.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0340-LF-368-net-mscc-ocelot-make-ocelot_ace_rule-support-.patch | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0340-LF-368-net-mscc-ocelot-make-ocelot_ace_rule-support-.patch b/target/linux/layerscape/patches-5.4/701-net-0340-LF-368-net-mscc-ocelot-make-ocelot_ace_rule-support-.patch deleted file mode 100644 index 6628de5989..0000000000 --- a/target/linux/layerscape/patches-5.4/701-net-0340-LF-368-net-mscc-ocelot-make-ocelot_ace_rule-support-.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 79fbcc73dd52acfe8b7aa20a793ce8d60c8d3f7b Mon Sep 17 00:00:00 2001 -From: Yangbo Lu <yangbo.lu@nxp.com> -Date: Thu, 28 Nov 2019 12:10:44 -0600 -Subject: [PATCH] LF-368 net: mscc: ocelot: make ocelot_ace_rule support - multiple ports - -The ocelot_ace_rule is port specific now. Make it flexible to -be able to support multiple ports too. - -Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> ---- - drivers/net/ethernet/mscc/ocelot_ace.c | 14 +++++++------- - drivers/net/ethernet/mscc/ocelot_ace.h | 4 ++-- - drivers/net/ethernet/mscc/ocelot_flower.c | 8 ++++---- - 3 files changed, 13 insertions(+), 13 deletions(-) - ---- a/drivers/net/ethernet/mscc/ocelot_ace.c -+++ b/drivers/net/ethernet/mscc/ocelot_ace.c -@@ -352,7 +352,7 @@ static void is2_entry_set(struct ocelot - data.type = IS2_ACTION_TYPE_NORMAL; - - VCAP_KEY_ANY_SET(PAG); -- VCAP_KEY_SET(IGR_PORT_MASK, 0, ~BIT(ace->chip_port)); -+ VCAP_KEY_SET(IGR_PORT_MASK, 0, ~ace->ingress_port_mask); - VCAP_KEY_BIT_SET(FIRST, OCELOT_VCAP_BIT_1); - VCAP_KEY_BIT_SET(HOST_MATCH, OCELOT_VCAP_BIT_ANY); - VCAP_KEY_BIT_SET(L2_MC, ace->dmac_mc); -@@ -576,7 +576,7 @@ static void is2_entry_set(struct ocelot - - static void is2_entry_get(struct ocelot_ace_rule *rule, int ix) - { -- struct ocelot *op = rule->port->ocelot; -+ struct ocelot *op = rule->ocelot; - struct vcap_data data; - int row = (ix / 2); - u32 cnt; -@@ -655,11 +655,11 @@ int ocelot_ace_rule_offload_add(struct o - /* Move down the rules to make place for the new rule */ - for (i = acl_block->count - 1; i > index; i--) { - ace = ocelot_ace_rule_get_rule_index(acl_block, i); -- is2_entry_set(rule->port->ocelot, i, ace); -+ is2_entry_set(rule->ocelot, i, ace); - } - - /* Now insert the new rule */ -- is2_entry_set(rule->port->ocelot, index, rule); -+ is2_entry_set(rule->ocelot, index, rule); - return 0; - } - -@@ -697,11 +697,11 @@ int ocelot_ace_rule_offload_del(struct o - /* Move up all the blocks over the deleted rule */ - for (i = index; i < acl_block->count; i++) { - ace = ocelot_ace_rule_get_rule_index(acl_block, i); -- is2_entry_set(rule->port->ocelot, i, ace); -+ is2_entry_set(rule->ocelot, i, ace); - } - - /* Now delete the last rule, because it is duplicated */ -- is2_entry_set(rule->port->ocelot, acl_block->count, &del_ace); -+ is2_entry_set(rule->ocelot, acl_block->count, &del_ace); - - return 0; - } -@@ -717,7 +717,7 @@ int ocelot_ace_rule_stats_update(struct - /* After we get the result we need to clear the counters */ - tmp = ocelot_ace_rule_get_rule_index(acl_block, index); - tmp->stats.pkts = 0; -- is2_entry_set(rule->port->ocelot, index, tmp); -+ is2_entry_set(rule->ocelot, index, tmp); - - return 0; - } ---- a/drivers/net/ethernet/mscc/ocelot_ace.h -+++ b/drivers/net/ethernet/mscc/ocelot_ace.h -@@ -186,14 +186,14 @@ struct ocelot_ace_stats { - - struct ocelot_ace_rule { - struct list_head list; -- struct ocelot_port *port; -+ struct ocelot *ocelot; - - u16 prio; - u32 id; - - enum ocelot_ace_action action; - struct ocelot_ace_stats stats; -- int chip_port; -+ u16 ingress_port_mask; - - enum ocelot_vcap_bit dmac_mc; - enum ocelot_vcap_bit dmac_bc; ---- a/drivers/net/ethernet/mscc/ocelot_flower.c -+++ b/drivers/net/ethernet/mscc/ocelot_flower.c -@@ -177,8 +177,8 @@ struct ocelot_ace_rule *ocelot_ace_rule_ - if (!rule) - return NULL; - -- rule->port = &block->priv->port; -- rule->chip_port = block->priv->chip_port; -+ rule->ocelot = block->priv->port.ocelot; -+ rule->ingress_port_mask = BIT(block->priv->chip_port); - return rule; - } - -@@ -213,7 +213,7 @@ static int ocelot_flower_destroy(struct - int ret; - - rule.prio = f->common.prio; -- rule.port = &port_block->priv->port; -+ rule.ocelot = port_block->priv->port.ocelot; - rule.id = f->cookie; - - ret = ocelot_ace_rule_offload_del(&rule); -@@ -231,7 +231,7 @@ static int ocelot_flower_stats_update(st - int ret; - - rule.prio = f->common.prio; -- rule.port = &port_block->priv->port; -+ rule.ocelot = port_block->priv->port.ocelot; - rule.id = f->cookie; - ret = ocelot_ace_rule_stats_update(&rule); - if (ret) |