crypto: caam: change JR running loop
authorFranck LENORMAND <franck.lenormand@nxp.com>
Thu, 25 Mar 2021 09:30:22 +0000 (17:30 +0800)
committerStefano Babic <sbabic@denx.de>
Thu, 8 Apr 2021 07:18:29 +0000 (09:18 +0200)
Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/crypto/fsl/jr.c
drivers/crypto/fsl/jr.h

index 44273c3..de5e68b 100644 (file)
@@ -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;
index ffd3a19..1a21514 100644 (file)
@@ -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