layerscape: add patches-5.4
[openwrt/staging/wigyori.git] / target / linux / layerscape / patches-5.4 / 701-net-0078-staging-fsl_qbman-Recalcuate-cursor-after-consuming-.patch
diff --git a/target/linux/layerscape/patches-5.4/701-net-0078-staging-fsl_qbman-Recalcuate-cursor-after-consuming-.patch b/target/linux/layerscape/patches-5.4/701-net-0078-staging-fsl_qbman-Recalcuate-cursor-after-consuming-.patch
new file mode 100644 (file)
index 0000000..cbb8efa
--- /dev/null
@@ -0,0 +1,26 @@
+From c9d41c728cb9fc5c100030d39d81be3d8e0b26d7 Mon Sep 17 00:00:00 2001
+From: Roy Pledge <roy.pledge@nxp.com>
+Date: Wed, 8 Aug 2018 17:13:48 -0400
+Subject: [PATCH] staging/fsl_qbman: Recalcuate cursor after consuming ring
+
+If the dqrr_init() function consumes frames during init
+the cursor needs to be updated before anything starts
+to use the ring.
+
+Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
+---
+ drivers/staging/fsl_qbman/qman_low.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/staging/fsl_qbman/qman_low.h
++++ b/drivers/staging/fsl_qbman/qman_low.h
+@@ -682,6 +682,9 @@ static inline int qm_dqrr_init(struct qm
+               (0 ? 0x10 : 0);                         /* Ignore SP */
+       qm_out(CFG, cfg);
+       qm_dqrr_set_maxfill(portal, max_fill);
++
++      /* Recalculate cursor as we may have consumed frames */
++      dqrr->cursor = dqrr->ring + dqrr->ci;
+       return 0;
+ }