]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pwm: imx-tpm: force 'real_period' to be zero in suspend
authorFancy Fang <chen.fang@nxp.com>
Fri, 5 May 2023 06:58:39 +0000 (14:58 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2023 06:37:22 +0000 (08:37 +0200)
[ Upstream commit 661dfb7f46298e53f6c3deaa772fa527aae86193 ]

During suspend, all the tpm registers will lose values.
So the 'real_period' value of struct 'imx_tpm_pwm_chip'
should be forced to be zero to force the period update
code can be executed after system resume back.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fixes: 738a1cfec2ed ("pwm: Add i.MX TPM PWM driver support")
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pwm/pwm-imx-tpm.c

index 9145f61606497cb0aa90aafd9e903c26e83a1374..85aad55b7a8f027efc07e51b90c24300fafbf9c0 100644 (file)
@@ -405,6 +405,13 @@ static int __maybe_unused pwm_imx_tpm_suspend(struct device *dev)
        if (tpm->enable_count > 0)
                return -EBUSY;
 
+       /*
+        * Force 'real_period' to be zero to force period update code
+        * can be executed after system resume back, since suspend causes
+        * the period related registers to become their reset values.
+        */
+       tpm->real_period = 0;
+
        clk_disable_unprepare(tpm->clk);
 
        return 0;