crypto: ccree - HOST_POWER_DOWN_EN should be the last CC access during suspend
authorOfir Drang <ofir.drang@arm.com>
Thu, 18 Apr 2019 13:39:08 +0000 (16:39 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 May 2019 05:37:39 +0000 (07:37 +0200)
commit 3499efbeed39d114873267683b9e776bcb34b058 upstream.

During power management suspend the driver need to prepare the device
for the power down operation and as a last indication write to the
HOST_POWER_DOWN_EN register which signals to the hardware that
The ccree is ready for power down.

Signed-off-by: Ofir Drang <ofir.drang@arm.com>
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Cc: stable@vger.kernel.org # v4.19+
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/ccree/cc_pm.c

index d433804..27e363f 100644 (file)
@@ -25,13 +25,13 @@ int cc_pm_suspend(struct device *dev)
        int rc;
 
        dev_dbg(dev, "set HOST_POWER_DOWN_EN\n");
-       cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE);
        rc = cc_suspend_req_queue(drvdata);
        if (rc) {
                dev_err(dev, "cc_suspend_req_queue (%x)\n", rc);
                return rc;
        }
        fini_cc_regs(drvdata);
+       cc_iowrite(drvdata, CC_REG(HOST_POWER_DOWN_EN), POWER_DOWN_ENABLE);
        cc_clk_off(drvdata);
        return 0;
 }