From: Franck LENORMAND <[email protected]>

Signed-off-by: Franck LENORMAND <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
---
 drivers/crypto/fsl/jr.c | 12 +++++++-----
 drivers/crypto/fsl/jr.h |  4 ++--
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c
index 44273c345f..de5e68bf8e 100644
--- a/drivers/crypto/fsl/jr.c
+++ b/drivers/crypto/fsl/jr.c
@@ -21,6 +21,7 @@
 #include <asm/fsl_pamu.h>
 #endif
 #include <dm/lists.h>
+#include <linux/delay.h>
 
 #define CIRC_CNT(head, tail, size)     (((head) - (tail)) & (size - 1))
 #define CIRC_SPACE(head, tail, size)   CIRC_CNT((tail), (head) + 1, (size))
@@ -355,8 +356,8 @@ static void desc_done(uint32_t status, void *arg)
 
 static inline int run_descriptor_jr_idx(uint32_t *desc, uint8_t sec_idx)
 {
-       unsigned long long timeval = get_ticks();
-       unsigned long long timeout = usec2ticks(CONFIG_SEC_DEQ_TIMEOUT);
+       unsigned long long timeval = 0;
+       unsigned long long timeout = CONFIG_USEC_DEQ_TIMEOUT;
        struct result op;
        int ret = 0;
 
@@ -369,9 +370,10 @@ static inline int run_descriptor_jr_idx(uint32_t *desc, 
uint8_t sec_idx)
                goto out;
        }
 
-       timeval = get_ticks();
-       timeout = usec2ticks(CONFIG_SEC_DEQ_TIMEOUT);
        while (op.done != 1) {
+               udelay(1);
+               timeval += 1;
+
                ret = jr_dequeue(sec_idx);
                if (ret) {
                        debug("Error in SEC deq\n");
@@ -379,7 +381,7 @@ static inline int run_descriptor_jr_idx(uint32_t *desc, 
uint8_t sec_idx)
                        goto out;
                }
 
-               if ((get_ticks() - timeval) > timeout) {
+               if (timeval > timeout) {
                        debug("SEC Dequeue timed out\n");
                        ret = JQ_DEQ_TO_ERR;
                        goto out;
diff --git a/drivers/crypto/fsl/jr.h b/drivers/crypto/fsl/jr.h
index ffd3a19273..1a215143d9 100644
--- a/drivers/crypto/fsl/jr.h
+++ b/drivers/crypto/fsl/jr.h
@@ -10,8 +10,8 @@
 #include <linux/compiler.h>
 
 #define JR_SIZE 4
-/* Timeout currently defined as 90 sec */
-#define CONFIG_SEC_DEQ_TIMEOUT 90000000U
+/* Timeout currently defined as 10 sec */
+#define CONFIG_USEC_DEQ_TIMEOUT        10000000U
 
 #define DEFAULT_JR_ID          0
 #define DEFAULT_JR_LIODN       0
-- 
2.25.1

Reply via email to