kernel: delete Linux 5.4 config and patches
[openwrt/staging/chunkeey.git] / target / linux / layerscape / patches-5.4 / 701-net-0068-sdk_dpaa-ceetm-propagate-the-ceetm-channel-through-t.patch
diff --git a/target/linux/layerscape/patches-5.4/701-net-0068-sdk_dpaa-ceetm-propagate-the-ceetm-channel-through-t.patch b/target/linux/layerscape/patches-5.4/701-net-0068-sdk_dpaa-ceetm-propagate-the-ceetm-channel-through-t.patch
deleted file mode 100644 (file)
index f106702..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-From dfd2deb8bc482588999a4f03b5ab5d049e50fdb0 Mon Sep 17 00:00:00 2001
-From: Camelia Groza <camelia.groza@nxp.com>
-Date: Wed, 30 May 2018 14:51:35 +0300
-Subject: [PATCH] sdk_dpaa: ceetm: propagate the ceetm channel through the
- qdisc tree
-
-Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
----
- .../ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.c   | 61 +++++++++-------------
- .../ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.h   |  4 +-
- 2 files changed, 29 insertions(+), 36 deletions(-)
-
---- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.c
-+++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.c
-@@ -242,7 +242,6 @@ static int ceetm_config_lfq(struct qm_ce
- /* Configure a prio ceetm class */
- static int ceetm_config_prio_cls(struct ceetm_class *cls,
-                                struct net_device *dev,
--                               struct qm_ceetm_channel *channel,
-                                unsigned int id)
- {
-       int err;
-@@ -253,22 +252,22 @@ static int ceetm_config_prio_cls(struct
-               return err;
-       /* Claim and configure the CCG */
--      err = ceetm_config_ccg(&cls->prio.ccg, channel, id, cls->prio.fq,
-+      err = ceetm_config_ccg(&cls->prio.ccg, cls->ch, id, cls->prio.fq,
-                              dpa_priv);
-       if (err)
-               return err;
-       /* Claim and configure the CQ */
--      err = qman_ceetm_cq_claim(&cls->prio.cq, channel, id, cls->prio.ccg);
-+      err = qman_ceetm_cq_claim(&cls->prio.cq, cls->ch, id, cls->prio.ccg);
-       if (err)
-               return err;
-       if (cls->shaped) {
--              err = qman_ceetm_channel_set_cq_cr_eligibility(channel, id, 1);
-+              err = qman_ceetm_channel_set_cq_cr_eligibility(cls->ch, id, 1);
-               if (err)
-                       return err;
--              err = qman_ceetm_channel_set_cq_er_eligibility(channel, id, 1);
-+              err = qman_ceetm_channel_set_cq_er_eligibility(cls->ch, id, 1);
-               if (err)
-                       return err;
-       }
-@@ -284,7 +283,6 @@ static int ceetm_config_prio_cls(struct
- /* Configure a wbfs ceetm class */
- static int ceetm_config_wbfs_cls(struct ceetm_class *cls,
-                                struct net_device *dev,
--                               struct qm_ceetm_channel *channel,
-                                unsigned int id, int type)
- {
-       int err;
-@@ -295,17 +293,17 @@ static int ceetm_config_wbfs_cls(struct
-               return err;
-       /* Claim and configure the CCG */
--      err = ceetm_config_ccg(&cls->wbfs.ccg, channel, id, cls->wbfs.fq,
-+      err = ceetm_config_ccg(&cls->wbfs.ccg, cls->ch, id, cls->wbfs.fq,
-                              dpa_priv);
-       if (err)
-               return err;
-       /* Claim and configure the CQ */
-       if (type == WBFS_GRP_B)
--              err = qman_ceetm_cq_claim_B(&cls->wbfs.cq, channel, id,
-+              err = qman_ceetm_cq_claim_B(&cls->wbfs.cq, cls->ch, id,
-                                           cls->wbfs.ccg);
-       else
--              err = qman_ceetm_cq_claim_A(&cls->wbfs.cq, channel, id,
-+              err = qman_ceetm_cq_claim_A(&cls->wbfs.cq, cls->ch, id,
-                                           cls->wbfs.ccg);
-       if (err)
-               return err;
-@@ -366,10 +364,10 @@ static void ceetm_cls_destroy(struct Qdi
-                       cl->root.child = NULL;
-               }
--              if (cl->root.ch && qman_ceetm_channel_release(cl->root.ch))
-+              if (cl->ch && qman_ceetm_channel_release(cl->ch))
-                       pr_err(KBUILD_BASENAME
-                              " : %s : error releasing the channel %d\n",
--                             __func__, cl->root.ch->idx);
-+                             __func__, cl->ch->idx);
-               break;
-@@ -766,6 +764,7 @@ static int ceetm_init_prio(struct Qdisc
-       priv->shaped = parent_cl->shaped;
-       priv->prio.qcount = qopt->qcount;
-+      priv->prio.ch = parent_cl->ch;
-       /* Create and configure qcount child classes */
-       for (i = 0; i < priv->prio.qcount; i++) {
-@@ -790,6 +789,7 @@ static int ceetm_init_prio(struct Qdisc
-               child_cl->type = CEETM_PRIO;
-               child_cl->shaped = priv->shaped;
-               child_cl->prio.child = NULL;
-+              child_cl->ch = priv->prio.ch;
-               /* All shaped CQs have CR and ER enabled by default */
-               child_cl->prio.cr = child_cl->shaped;
-@@ -798,8 +798,7 @@ static int ceetm_init_prio(struct Qdisc
-               child_cl->prio.cq = NULL;
-               /* Configure the corresponding hardware CQ */
--              err = ceetm_config_prio_cls(child_cl, dev,
--                                          parent_cl->root.ch, i);
-+              err = ceetm_config_prio_cls(child_cl, dev, i);
-               if (err) {
-                       pr_err(KBUILD_BASENAME " : %s : failed to configure the ceetm prio class %X\n",
-                              __func__, child_cl->common.classid);
-@@ -831,7 +830,6 @@ static int ceetm_init_wbfs(struct Qdisc
-       struct ceetm_class *parent_cl, *child_cl, *root_cl;
-       struct Qdisc *parent_qdisc;
-       struct ceetm_qdisc *parent_priv;
--      struct qm_ceetm_channel *channel;
-       struct net_device *dev = qdisc_dev(sch);
-       pr_debug(KBUILD_BASENAME " : %s : qdisc %X\n", __func__, sch->handle);
-@@ -904,8 +902,7 @@ static int ceetm_init_wbfs(struct Qdisc
-       priv->wbfs.qcount = qopt->qcount;
-       priv->wbfs.cr = qopt->cr;
-       priv->wbfs.er = qopt->er;
--
--      channel = root_cl->root.ch;
-+      priv->wbfs.ch = parent_cl->ch;
-       /* Configure the hardware wbfs channel groups */
-       if (priv->wbfs.qcount == CEETM_MAX_WBFS_QCOUNT) {
-@@ -920,7 +917,7 @@ static int ceetm_init_wbfs(struct Qdisc
-               /* Configure the group B */
-               priv->wbfs.group_type = WBFS_GRP_B;
--              err = qman_ceetm_channel_get_group(channel, &small_group,
-+              err = qman_ceetm_channel_get_group(priv->wbfs.ch, &small_group,
-                                                  &prio_a, &prio_b);
-               if (err) {
-                       pr_err(KBUILD_BASENAME " : %s : failed to get group details\n",
-@@ -938,7 +935,7 @@ static int ceetm_init_wbfs(struct Qdisc
-               /* Configure the small group A */
-               priv->wbfs.group_type = WBFS_GRP_A;
--              err = qman_ceetm_channel_get_group(channel, &small_group,
-+              err = qman_ceetm_channel_get_group(priv->wbfs.ch, &small_group,
-                                                  &prio_a, &prio_b);
-               if (err) {
-                       pr_err(KBUILD_BASENAME " : %s : failed to get group details\n",
-@@ -953,13 +950,13 @@ static int ceetm_init_wbfs(struct Qdisc
-               prio_b = prio_b ? : prio_a;
-       }
--      err = qman_ceetm_channel_set_group(channel, small_group, prio_a,
-+      err = qman_ceetm_channel_set_group(priv->wbfs.ch, small_group, prio_a,
-                                          prio_b);
-       if (err)
-               goto err_init_wbfs;
-       if (priv->shaped) {
--              err = qman_ceetm_channel_set_group_cr_eligibility(channel,
-+              err = qman_ceetm_channel_set_group_cr_eligibility(priv->wbfs.ch,
-                                                                 group_b,
-                                                               priv->wbfs.cr);
-               if (err) {
-@@ -968,7 +965,7 @@ static int ceetm_init_wbfs(struct Qdisc
-                       goto err_init_wbfs;
-               }
--              err = qman_ceetm_channel_set_group_er_eligibility(channel,
-+              err = qman_ceetm_channel_set_group_er_eligibility(priv->wbfs.ch,
-                                                                 group_b,
-                                                               priv->wbfs.er);
-               if (err) {
-@@ -1003,13 +1000,14 @@ static int ceetm_init_wbfs(struct Qdisc
-               child_cl->wbfs.fq = NULL;
-               child_cl->wbfs.cq = NULL;
-               child_cl->wbfs.weight = qopt->qweight[i];
-+              child_cl->ch = priv->wbfs.ch;
-               if (priv->wbfs.group_type == WBFS_GRP_B)
-                       id = WBFS_GRP_B_OFFSET + i;
-               else
-                       id = WBFS_GRP_A_OFFSET + i;
--              err = ceetm_config_wbfs_cls(child_cl, dev, channel, id,
-+              err = ceetm_config_wbfs_cls(child_cl, dev, id,
-                                           priv->wbfs.group_type);
-               if (err) {
-                       pr_err(KBUILD_BASENAME " : %s : failed to configure the ceetm wbfs class %X\n",
-@@ -1178,9 +1176,6 @@ static int ceetm_change_wbfs(struct Qdis
- {
-       int err;
-       bool group_b;
--      struct qm_ceetm_channel *channel;
--      struct ceetm_class *prio_class, *root_class;
--      struct ceetm_qdisc *prio_qdisc;
-       if (qopt->qcount) {
-               pr_err("CEETM: the qcount can not be modified\n");
-@@ -1206,14 +1201,10 @@ static int ceetm_change_wbfs(struct Qdis
-       if (!priv->shaped)
-               return 0;
--      prio_class = priv->wbfs.parent;
--      prio_qdisc = qdisc_priv(prio_class->parent);
--      root_class = prio_qdisc->prio.parent;
--      channel = root_class->root.ch;
-       group_b = priv->wbfs.group_type == WBFS_GRP_B;
-       if (qopt->cr != priv->wbfs.cr) {
--              err = qman_ceetm_channel_set_group_cr_eligibility(channel,
-+              err = qman_ceetm_channel_set_group_cr_eligibility(priv->wbfs.ch,
-                                                                 group_b,
-                                                                 qopt->cr);
-               if (err)
-@@ -1222,7 +1213,7 @@ static int ceetm_change_wbfs(struct Qdis
-       }
-       if (qopt->er != priv->wbfs.er) {
--              err = qman_ceetm_channel_set_group_er_eligibility(channel,
-+              err = qman_ceetm_channel_set_group_er_eligibility(priv->wbfs.ch,
-                                                                 group_b,
-                                                                 qopt->er);
-               if (err)
-@@ -1337,7 +1328,7 @@ static int ceetm_cls_change_root(struct
-       if (cl->shaped && cl->root.rate != copt->rate) {
-               bps = copt->rate << 3; /* Bps -> bps */
--              err = qman_ceetm_channel_set_commit_rate_bps(cl->root.ch, bps,
-+              err = qman_ceetm_channel_set_commit_rate_bps(cl->ch, bps,
-                                                            dev->mtu);
-               if (err)
-                       goto change_cls_err;
-@@ -1346,7 +1337,7 @@ static int ceetm_cls_change_root(struct
-       if (cl->shaped && cl->root.ceil != copt->ceil) {
-               bps = copt->ceil << 3; /* Bps -> bps */
--              err = qman_ceetm_channel_set_excess_rate_bps(cl->root.ch, bps,
-+              err = qman_ceetm_channel_set_excess_rate_bps(cl->ch, bps,
-                                                            dev->mtu);
-               if (err)
-                       goto change_cls_err;
-@@ -1354,7 +1345,7 @@ static int ceetm_cls_change_root(struct
-       }
-       if (!cl->shaped && cl->root.tbl != copt->tbl) {
--              err = qman_ceetm_channel_set_weight(cl->root.ch, copt->tbl);
-+              err = qman_ceetm_channel_set_weight(cl->ch, copt->tbl);
-               if (err)
-                       goto change_cls_err;
-               cl->root.tbl = copt->tbl;
-@@ -1555,7 +1546,7 @@ static int ceetm_cls_change(struct Qdisc
-               goto claim_err;
-       }
--      cl->root.ch = channel;
-+      cl->ch = channel;
-       if (cl->shaped) {
-               /* Configure the channel shaper */
---- a/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.h
-+++ b/drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_ceetm.h
-@@ -121,12 +121,14 @@ struct root_q {
- struct prio_q {
-       __u16 qcount;
-       struct ceetm_class *parent;
-+      struct qm_ceetm_channel *ch;
- };
- struct wbfs_q {
-       __u16 qcount;
-       int group_type;
-       struct ceetm_class *parent;
-+      struct qm_ceetm_channel *ch;
-       __u16 cr;
-       __u16 er;
- };
-@@ -165,7 +167,6 @@ struct root_c {
-       bool wbfs_grp_b;
-       bool wbfs_grp_large;
-       struct Qdisc *child;
--      struct qm_ceetm_channel *ch;
- };
- struct prio_c {
-@@ -194,6 +195,7 @@ struct ceetm_class {
-       struct tcf_proto *filter_list; /* class attached filters */
-       struct tcf_block *block;
-       struct Qdisc *parent;
-+      struct qm_ceetm_channel *ch;
-       bool shaped;
-       int type; /* ROOT/PRIO/WBFS */
-       union {