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