[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ylg2wadbfbyg6ncvoxxz5zthxokphs52lgzscus4qwqgn7q3vy@xzljjzukbtle>
Date: Tue, 29 Jul 2025 18:10:20 +0200
From: Uwe Kleine-König <ukleinek@...nel.org>
To: Laurentiu Mihalcea <laurentiumihalcea111@...il.com>
Cc: Shawn Guo <shawnguo@...nel.org>, Sascha Hauer <s.hauer@...gutronix.de>,
Fabio Estevam <festevam@...il.com>, Pengutronix Kernel Team <kernel@...gutronix.de>,
linux-pwm@...r.kernel.org, imx@...ts.linux.dev, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] pwm: imx-tpm: reset counter if CMOD is 0
Hello Laurentiu,
On Mon, Jul 28, 2025 at 03:41:44PM -0400, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@....com>
>
> As per the i.MX93 TRM, section 67.3.2.1 "MOD register update", the value
> of the TPM counter does NOT get updated when writing MOD.MOD unless
> SC.CMOD != 0. Therefore, with the current code, assuming the following
> sequence:
>
> 1) pwm_disable()
> 2) pwm_apply_might_sleep() /* period is changed here */
> 3) pwm_enable()
>
> and assuming only one channel is active, if CNT.COUNT is higher than the
> MOD.MOD value written during the pwm_apply_might_sleep() call then, when
> re-enabling the PWM during pwm_enable(), the counter will end up resetting
> after UINT32_MAX - CNT.COUNT + MOD.MOD cycles instead of MOD.MOD cycles as
> normally expected.
>
> Fix this problem by forcing a reset of the TPM counter before MOD.MOD is
> written.
>
> Fixes: 738a1cfec2ed ("pwm: Add i.MX TPM PWM driver support")
> Cc: stable@...r.kernel.org
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@....com>
Thanks for the respin, looks good now. For consistency I capitalized
"Reset" in the Subject.
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git pwm/fixes
. I'll give that a day or two in next and then send it to Linus for
6.17-rc1.
Thanks
Uwe
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists