]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pwm: stm32: Always program polarity
authorSean Nyekjaer <sean@geanix.com>
Thu, 8 Jan 2026 12:45:23 +0000 (13:45 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:10:12 +0000 (13:10 +0100)
Commit 7346e7a058a2 ("pwm: stm32: Always do lazy disabling") triggered a
regression where PWM polarity changes could be ignored.

stm32_pwm_set_polarity() was skipped due to a mismatch between the
cached pwm->state.polarity and the actual hardware state, leaving the
hardware polarity unchanged.

Fixes: 7edf7369205b ("pwm: Add driver for STM32 plaftorm")
Cc: stable@vger.kernel.org # <= 6.12
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Co-developed-by: Uwe Kleine-König <ukleinek@kernel.org>
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
drivers/pwm/pwm-stm32.c

index 2070d107c63287cc0822decca1b6973c283c21d5..b7478c2134551ddc91cb5007b42af7e1b5713e81 100644 (file)
@@ -458,8 +458,7 @@ static int stm32_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
                return 0;
        }
 
-       if (state->polarity != pwm->state.polarity)
-               stm32_pwm_set_polarity(priv, pwm->hwpwm, state->polarity);
+       stm32_pwm_set_polarity(priv, pwm->hwpwm, state->polarity);
 
        ret = stm32_pwm_config(priv, pwm->hwpwm,
                               state->duty_cycle, state->period);