From 335ae6c845da46223569366898da27d9529a5ec2 Mon Sep 17 00:00:00 2001
From: Franck LENORMAND <franck.lenormand@nxp.com>
Date: Fri, 29 Jun 2018 16:59:33 +0200
Subject: [PATCH] MLK-18082: crypto: caam: Minimal fix for QX panic

Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
---
 arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi        |  1 +
 arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi |  1 +
 drivers/crypto/caam/ctrl.c                           | 11 +++++++----
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
index d3d78b19b7254d..9aca1762c85310 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi
@@ -3311,6 +3311,7 @@
 		#size-cells = <1>;
 		ranges = <0 0 0x31400000 0x400000>;
 		fsl,first-jr-index = <2>;
+		fsl,sec-era = <9>;
 
 		sec_jr1: jr1@0x20000 {
 			compatible = "fsl,sec-v4.0-job-ring";
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi
index 37b142c4e281a6..a4fe4414591dad 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi
@@ -4150,6 +4150,7 @@
 		#size-cells = <1>;
 		ranges = <0 0 0x31400000 0x400000>;
 		fsl,first-jr-index = <2>;
+		fsl,sec-era = <9>;
 
 		sec_jr1: jr1@0x20000 {
 			compatible = "fsl,sec-v4.0-job-ring";
diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
index a437b27472dd94..164ff9f69a8782 100644
--- a/drivers/crypto/caam/ctrl.c
+++ b/drivers/crypto/caam/ctrl.c
@@ -352,7 +352,10 @@ static int caam_probe(struct platform_device *pdev)
 
 	ctrlpriv->has_seco = false;
 
-	caam_little_end = !(bool)(rd_reg32(&ctrl->perfmon.status) &
+	if (caam_imx)
+		caam_little_end = true;
+	else
+		caam_little_end = !(bool)(rd_reg32(&ctrl->perfmon.status) &
 				  (CSTA_PLEND | CSTA_ALT_PLEND));
 
 	/* Finding the page size for using the CTPR_MS register */
@@ -620,7 +623,7 @@ static int probe_w_seco(struct caam_drv_private *ctrlpriv)
 {
 	int ret = 0;
 	struct device_node *np;
-	u32 idx, status;
+	u32 idx;
 
 	ctrlpriv->has_seco = true;
 	/*
@@ -643,8 +646,8 @@ static int probe_w_seco(struct caam_drv_private *ctrlpriv)
 		return -ENODEV;
 	}
 	idx = ctrlpriv->first_jr_index;
-	status = rd_reg32(&ctrlpriv->jr[idx]->perfmon.status);
-	caam_little_end = !(bool)(status & (CSTA_PLEND | CSTA_ALT_PLEND));
+
+	caam_little_end = true;
 	ctrlpriv->assure = ((struct caam_assurance __force *)
 			    ((uint8_t *)ctrlpriv->ctrl +
 			     PG_SIZE_64K * ASSURE_BLOCK_NUMBER));
-- 
GitLab