linux/drivers/pwm
Clemens Gruber 8d254a340e pwm: pca9685: Fix period change with same duty cycle
When first implementing support for changing the output frequency, an
optimization was added to continue the PWM after changing the prescaler
without having to reprogram the ON and OFF registers for the duty cycle,
in case the duty cycle stayed the same. This was flawed, because we
compared the absolute value of the duty cycle in nanoseconds instead of
the ratio to the period.

Fix the problem by removing the shortcut.

Fixes: 01ec847200 ("pwm-pca9685: Support changing the output frequency")
Cc: <stable@vger.kernel.org> # v4.3+
Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2017-01-20 07:43:22 +01:00
..
core.c pwm: Unexport children before chip removal 2016-09-05 16:45:39 +02:00
Kconfig pwm: bcm-iproc: Update dependencies for compile-test 2017-01-19 00:38:17 +01:00
Makefile pwm: Add PWM driver for HiSilicon BVT SOCs 2016-11-29 16:50:12 +01:00
pwm-ab8500.c pwm: drop owner assignment from platform_drivers 2014-10-20 16:21:28 +02:00
pwm-atmel-hlcdc.c pwm: atmel-hlcdc: Fix default PWM polarity 2016-06-14 10:51:45 +02:00
pwm-atmel-tcb.c misc: atmel_tclib: get and use slow clock 2015-10-06 12:33:14 +02:00
pwm-atmel.c pwm: atmel: Use of_device_get_match_data() 2016-07-11 12:49:36 +02:00
pwm-bcm2835.c pwm: bcm2835: Fix email address specification 2015-12-16 16:45:32 +01:00
pwm-bcm-iproc.c pwm: Add support for Broadcom iProc PWM controller 2016-07-11 12:49:25 +02:00
pwm-bcm-kona.c pwm: kona: Modify settings application sequence 2015-08-17 16:19:41 +02:00
pwm-berlin.c pwm: berlin: Add suspend/resume support 2016-09-06 10:48:52 +02:00
pwm-bfin.c pwm: constify pwm_ops structures 2017-01-19 00:38:17 +01:00
pwm-brcmstb.c pwm: brcmstb: Fix check of devm_ioremap_resource() return code 2016-03-23 17:11:45 +01:00
pwm-clps711x.c pwm: clps711x: Changing the compatibility string to match with the smallest supported chip 2016-07-06 17:38:17 +02:00
pwm-crc.c pwm: Use pwm_get/set_xxx() helpers where appropriate 2016-05-17 14:44:59 +02:00
pwm-cros-ec.c pwm: cros-ec: Add __packed to prevent padding 2016-09-06 10:48:54 +02:00
pwm-ep93xx.c pwm: Add the pwm_is_enabled() helper 2015-07-20 09:46:06 +02:00
pwm-fsl-ftm.c pwm: fsl-ftm: Use flat regmap cache 2016-04-14 16:54:00 +02:00
pwm-hibvt.c pwm: Add PWM driver for HiSilicon BVT SOCs 2016-11-29 16:50:12 +01:00
pwm-img.c pwm: img: Test clock rate to avoid division by 0 2016-03-23 17:11:02 +01:00
pwm-imx.c pwm: constify pwm_ops structures 2017-01-19 00:38:17 +01:00
pwm-jz4740.c pwm: drop owner assignment from platform_drivers 2014-10-20 16:21:28 +02:00
pwm-lp3943.c pwm: drop owner assignment from platform_drivers 2014-10-20 16:21:28 +02:00
pwm-lpc18xx-sct.c pwm: lpc-18xx: use pwm_set_chip_data 2016-09-08 10:55:05 +02:00
pwm-lpc32xx.c pwm: lpc32xx: Set PWM_PIN_LEVEL bit to default value 2016-07-11 12:49:29 +02:00
pwm-lpss-pci.c pwm: lpss: pci: Enable PWM module on Intel Edison 2016-07-11 12:07:25 +02:00
pwm-lpss-platform.c pwm: lpss: Add support for runtime PM 2015-11-06 14:34:13 +01:00
pwm-lpss.c pwm: lpss: Move clk_rate check to ->probe() 2016-07-11 12:49:24 +02:00
pwm-lpss.h pwm: lpss: Update PWM setting for Broxton 2015-12-16 16:45:38 +01:00
pwm-meson.c pwm: Changes for v4.10-rc1 2016-12-15 11:45:13 -08:00
pwm-mtk-disp.c pwm: Add MediaTek MT2701 display PWM driver support 2016-09-06 10:48:53 +02:00
pwm-mxs.c pwm: Add the pwm_is_enabled() helper 2015-07-20 09:46:06 +02:00
pwm-omap-dmtimer.c pwm: omap-dmtimer: Allow for setting dmtimer clock source 2016-06-29 21:54:00 -07:00
pwm-pca9685.c pwm: pca9685: Fix period change with same duty cycle 2017-01-20 07:43:22 +01:00
pwm-puv3.c pwm: drop owner assignment from platform_drivers 2014-10-20 16:21:28 +02:00
pwm-pxa.c pwm: constify pwm_ops structures 2017-01-19 00:38:17 +01:00
pwm-rcar.c pwm: rcar: Make use of pwm_is_enabled() 2016-05-17 14:44:57 +02:00
pwm-renesas-tpu.c pwm: Add the pwm_is_enabled() helper 2015-07-20 09:46:06 +02:00
pwm-rockchip.c pwm: rockchip: Add support for atomic update 2016-07-11 12:49:28 +02:00
pwm-samsung.c pwm: samsung: Fix to use lowest div for large enough modulation bits 2016-09-06 10:48:55 +02:00
pwm-spear.c pwm: drop owner assignment from platform_drivers 2014-10-20 16:21:28 +02:00
pwm-sti.c pwm: sti: Take the opportunity to conduct a little house keeping 2016-09-08 10:55:12 +02:00
pwm-stmpe.c pwm: Add a driver for the STMPE PWM 2016-07-11 12:49:29 +02:00
pwm-sun4i.c pwm: sunxi: Add H3 support 2016-09-08 10:55:05 +02:00
pwm-tegra.c pwm: tegra: Add support for Tegra186 2016-07-11 12:49:34 +02:00
pwm-tiecap.c pwm: pwm-ti*: Remove support for local clock gating 2016-07-11 12:07:18 +02:00
pwm-tiehrpwm.c pwm: pwm-ti*: Remove support for local clock gating 2016-07-11 12:07:18 +02:00
pwm-tipwmss.c pwm: pwm-tipwmss: Remove all runtime PM gets/puts 2016-09-06 10:48:54 +02:00
pwm-twl-led.c pwm: twl-led: Include linux/of.h header 2013-10-08 15:45:44 +02:00
pwm-twl.c pwm: twl: Reliably disable TWL6030 PWMs 2016-09-05 07:13:47 +02:00
pwm-vt8500.c pwm: constify pwm_ops structures 2017-01-19 00:38:17 +01:00
sysfs.c pwm: Fix device reference leak 2016-11-29 16:43:24 +01:00