Adding a Jump instruction with CALM flag to ensure
previous processing has been completed.

Fixes: 3ba2e519eafa ("common/dpaax/caamflib: support PDCP-SDAP")
Cc: franck.lenorm...@nxp.com
Cc: sta...@dpdk.org

Signed-off-by: Gagandeep Singh <g.si...@nxp.com>
---
 drivers/common/dpaax/caamflib/desc/sdap.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/common/dpaax/caamflib/desc/sdap.h 
b/drivers/common/dpaax/caamflib/desc/sdap.h
index b38c15a24f..d41bacf8f9 100644
--- a/drivers/common/dpaax/caamflib/desc/sdap.h
+++ b/drivers/common/dpaax/caamflib/desc/sdap.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2020-2022 NXP
+ * Copyright 2020-2023 NXP
  */
 
 #ifndef __DESC_SDAP_H__
@@ -628,6 +628,10 @@ static inline int pdcp_sdap_insert_no_snoop_op(
                /* Save the ICV generated */
                MOVEB(p, CONTEXT1, 0, MATH3, 0, 4, WAITCOMP | IMMED);
 
+               /* conditional jump with calm added to ensure that the
+                * previous processing has been completed
+                */
+               JUMP(p, 1, LOCAL_JUMP, ALL_TRUE, CALM);
                /* The CHA will be reused so we need to clear it */
                LOAD(p, CLRW_RESET_CLS1_CHA |
                     CLRW_CLR_C1KEY |
@@ -718,6 +722,10 @@ static inline int pdcp_sdap_insert_no_snoop_op(
                /* Save the ICV which is stalling in output FIFO to MATH3 */
                MOVEB(p, OFIFO, 0, MATH3, 0, 4, IMMED);
 
+               /* conditional jump with calm added to ensure that the
+                * previous processing has been completed
+                */
+               JUMP(p, 1, LOCAL_JUMP, ALL_TRUE, CALM);
                /* Reset class 1 CHA */
                LOAD(p, CLRW_RESET_CLS1_CHA |
                     CLRW_CLR_C1KEY |
-- 
2.25.1

Reply via email to