]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pwm: pca9685: Don't disable hardware in .free()
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Tue, 29 Jul 2025 10:36:00 +0000 (12:36 +0200)
committerUwe Kleine-König <ukleinek@kernel.org>
Mon, 15 Sep 2025 09:39:46 +0000 (11:39 +0200)
It's the responsibility of the consumer to disable the hardware before
it's released. And there are use cases where it's beneficial to keep the
PWM on, e.g. to keep a backlight on before kexec()ing into a new kernel.

Even if it would be considered right to disable on pwm_put(), this
should be done in the core and not each individual driver. So drop the
hardware access in .free().

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://lore.kernel.org/r/1ee1a514aeb5f0effafa2d6ec91bc54130895cd9.1753784092.git.u.kleine-koenig@baylibre.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
drivers/pwm/pwm-pca9685.c

index 9ce75704a15f89712d8fd75f9817391f34f2c2a4..de5fe86b4f3351f9c28434fe49ac8e98c150bc5c 100644 (file)
@@ -497,7 +497,6 @@ static void pca9685_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
        struct pca9685 *pca = to_pca(chip);
 
        mutex_lock(&pca->lock);
-       pca9685_pwm_set_duty(chip, pwm->hwpwm, 0);
        clear_bit(pwm->hwpwm, pca->pwms_enabled);
        mutex_unlock(&pca->lock);