unsigned int len)
 {
        struct safexcel_cipher_ctx *ctx = crypto_skcipher_ctx(ctfm);
+       struct safexcel_crypto_priv *priv = ctx->priv;
        int ret;
 
        ret = verify_skcipher_des_key(ctfm, key);
                return ret;
 
        /* if context exits and key changed, need to invalidate it */
-       if (ctx->base.ctxr_dma)
+       if (priv->flags & EIP197_TRC_CACHE && ctx->base.ctxr_dma)
                if (memcmp(ctx->key, key, len))
                        ctx->base.needs_inv = true;
 
                                   const u8 *key, unsigned int len)
 {
        struct safexcel_cipher_ctx *ctx = crypto_skcipher_ctx(ctfm);
+       struct safexcel_crypto_priv *priv = ctx->priv;
        int err;
 
        err = verify_skcipher_des3_key(ctfm, key);
                return err;
 
        /* if context exits and key changed, need to invalidate it */
-       if (ctx->base.ctxr_dma)
+       if (priv->flags & EIP197_TRC_CACHE && ctx->base.ctxr_dma)
                if (memcmp(ctx->key, key, len))
                        ctx->base.needs_inv = true;
 
 
                        sreq->processed = sreq->block_sz;
                        sreq->hmac = 0;
 
-                       ctx->base.needs_inv = true;
+                       if (priv->flags & EIP197_TRC_CACHE)
+                               ctx->base.needs_inv = true;
                        areq->nbytes = 0;
                        safexcel_ahash_enqueue(areq);