]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
mtd: rawnand: gpmi: Restore nfc timing setup after suspend/resume
authorEsben Haabendal <esben@geanix.com>
Fri, 17 Jan 2020 20:05:37 +0000 (21:05 +0100)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 14 Feb 2020 06:00:53 +0000 (01:00 -0500)
BugLink: https://bugs.launchpad.net/bugs/1862429
commit d70486668cdf51b14a50425ab45fc18677a167b2 upstream.

As we reset the GPMI block at resume, the timing parameters setup by a
previous exec_op is lost.  Rewriting GPMI timing registers on first exec_op
after resume fixes the problem.

Fixes: ef347c0cfd61 ("mtd: rawnand: gpmi: Implement exec_op")
Cc: stable@vger.kernel.org
Signed-off-by: Esben Haabendal <esben@geanix.com>
Acked-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c

index 879df840244681d333cd641b0f8c18e7da47f5f0..b9d5d55a5edb9a6e5384a87a1470f168225db58a 100644 (file)
@@ -2727,6 +2727,10 @@ static int gpmi_pm_resume(struct device *dev)
                return ret;
        }
 
+       /* Set flag to get timing setup restored for next exec_op */
+       if (this->hw.clk_rate)
+               this->hw.must_apply_timings = true;
+
        /* re-init the BCH registers */
        ret = bch_set_geometry(this);
        if (ret) {