aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0078-staging-fsl_qbman-Recalcuate-cursor-after-consuming-.patch
blob: cbb8efa3e0fdfa578b3a575cbdd94327f2d11cc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;
 }