linux_dsm_epyc7002/drivers/pwm
Hans de Goede a05af71f0d pwm: crc: Fix off-by-one error in the clock-divider calculations
The CRC PWM controller has a clock-divider which divides the clock with
a value between 1-128. But as can seen from the PWM_DIV_CLK_xxx
defines, this range maps to a register value of 0-127.

So after calculating the clock-divider we must subtract 1 to get the
register value, unless the requested frequency was so high that the
calculation has already resulted in a (rounded) divider value of 0.

Note that before this fix, setting a period of PWM_MAX_PERIOD_NS which
corresponds to the max. divider value of 128 could have resulted in a
bug where the code would use 128 as divider-register value which would
have resulted in an actual divider value of 0 (and the enable bit being
set). A rounding error stopped this bug from actually happen. This
same rounding error means that after the subtraction of 1 it is impossible
to set the divider to 128. Also bump PWM_MAX_PERIOD_NS by 1 ns to allow
setting a divider of 128 (register-value 127).

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200903112337.4113-10-hdegoede@redhat.com
2020-09-06 15:38:02 +02:00
..
core.c pwm: Add missing "CONFIG_" prefix 2020-06-04 19:09:28 +02:00
Kconfig pwm: jz4740: Drop dependency on MACH_INGENIC 2020-06-02 14:23:42 +02:00
Makefile pwm: Add support for Azoteq IQS620A PWM generator 2020-04-14 16:02:28 +02:00
pwm-ab8500.c
pwm-atmel-hlcdc.c
pwm-atmel-tcb.c
pwm-atmel.c pwm: atmel: Implement .get_state() 2020-01-08 13:47:46 +01:00
pwm-bcm2835.c pwm: bcm2835: Dynamically allocate base 2020-03-30 16:55:25 +02:00
pwm-bcm-iproc.c
pwm-bcm-kona.c
pwm-berlin.c
pwm-brcmstb.c
pwm-clps711x.c
pwm-crc.c pwm: crc: Fix off-by-one error in the clock-divider calculations 2020-09-06 15:38:02 +02:00
pwm-cros-ec.c pwm: cros-ec: Cache duty cycle value 2019-12-09 10:05:42 +01:00
pwm-ep93xx.c
pwm-fsl-ftm.c
pwm-hibvt.c
pwm-img.c pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case 2020-06-02 15:50:51 +02:00
pwm-imx1.c
pwm-imx27.c pwm: imx27: Fix rounding behavior 2020-06-02 15:50:52 +02:00
pwm-imx-tpm.c pwm: imx-tpm: Remove unused includes 2020-03-30 16:55:26 +02:00
pwm-iqs620a.c pwm: Add support for Azoteq IQS620A PWM generator 2020-04-14 16:02:28 +02:00
pwm-jz4740.c pwm: jz4740: Add support for the JZ4725B 2020-06-02 14:24:57 +02:00
pwm-lp3943.c
pwm-lpc18xx-sct.c
pwm-lpc32xx.c
pwm-lpss-pci.c
pwm-lpss-platform.c pwm: lpss: Remove suspend/resume handlers 2020-09-06 15:38:01 +02:00
pwm-lpss.c pwm: lpss: Remove suspend/resume handlers 2020-09-06 15:38:01 +02:00
pwm-lpss.h pwm: lpss: Remove suspend/resume handlers 2020-09-06 15:38:01 +02:00
pwm-mediatek.c
pwm-meson.c pwm: meson: Remove redundant assignment to variable fin_freq 2020-04-03 21:40:56 +02:00
pwm-mtk-disp.c
pwm-mxs.c pwm: mxs: Remove unused include of of_address.h 2020-03-30 16:55:27 +02:00
pwm-omap-dmtimer.c pwm: omap-dmtimer: Implement .apply callback 2020-03-30 18:03:08 +02:00
pwm-pca9685.c pwm: pca9685: Fix PWM/GPIO inter-operation 2020-04-03 21:41:42 +02:00
pwm-puv3.c
pwm-pxa.c
pwm-rcar.c pwm: rcar: Fix late Runtime PM enablement 2020-03-30 18:03:05 +02:00
pwm-renesas-tpu.c pwm: renesas-tpu: Drop confusing registered message 2020-03-30 18:03:06 +02:00
pwm-rockchip.c pwm: rockchip: Simplify rockchip_pwm_get_state() 2020-06-02 15:50:52 +02:00
pwm-samsung.c
pwm-sifive.c
pwm-spear.c
pwm-sprd.c
pwm-sti.c
pwm-stm32-lp.c
pwm-stm32.c pwm: stm32: Remove automatic output enable 2020-01-20 13:47:36 +01:00
pwm-stmpe.c
pwm-sun4i.c pwm: sun4i: Support direct clock output on Allwinner A64 2020-06-02 14:20:11 +02:00
pwm-tegra.c pwm: tegra: Support dynamic clock frequency configuration 2020-06-02 14:25:37 +02:00
pwm-tiecap.c
pwm-tiehrpwm.c
pwm-twl-led.c
pwm-twl.c
pwm-vt8500.c
pwm-zx.c
sysfs.c