linux/drivers/pwm
Vladimir Zapolskiy 5e22217c11 pwm: lpc32xx: Remove handling of PWM channels
[ Upstream commit 4aae44f658 ]

Because LPC32xx PWM controllers have only a single output which is
registered as the only PWM device/channel per controller, it is known in
advance that pwm->hwpwm value is always 0. On basis of this fact
simplify the code by removing operations with pwm->hwpwm, there is no
controls which require channel number as input.

Even though I wasn't aware at the time when I forward ported that patch,
this fixes a null pointer dereference as lpc32xx->chip.pwms is NULL
before devm_pwmchip_add() is called.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fixes: 3d2813fb17 ("pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered")
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-09-19 12:22:58 +02:00
..
core.c pwm: Make pwmchip_remove() return void 2021-09-02 21:38:56 +02:00
Kconfig pwm: keembay: Improve compile coverage by allowing to enable on !ARM64 2021-09-02 21:38:39 +02:00
Makefile pwm: Changes for v5.13-rc1 2021-05-05 12:53:16 -07:00
pwm-ab8500.c pwm: ab8500: Fix error code in probe() 2023-07-23 13:47:27 +02:00
pwm-atmel-hlcdc.c pwm: atmel-hlcdc: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:49 +02:00
pwm-atmel-tcb.c pwm: atmel-tcb: Fix resource freeing in error path and remove 2023-09-19 12:22:57 +02:00
pwm-atmel.c pwm: atmel: Rework tracking updates pending in hardware 2021-09-02 21:35:09 +02:00
pwm-bcm-iproc.c pwm: Simplify all drivers with explicit of_pwm_n_cells = 3 2021-05-25 18:19:15 +02:00
pwm-bcm-kona.c pwm: bcm-kona: Simplify using devm_pwmchip_add() 2021-09-02 21:38:40 +02:00
pwm-bcm2835.c pwm: Simplify all drivers with explicit of_pwm_n_cells = 3 2021-05-25 18:19:15 +02:00
pwm-berlin.c pwm: berlin: Ensure configuring period and duty_cycle isn't wrongly skipped 2021-07-08 16:09:17 +02:00
pwm-brcmstb.c pwm: brcmstb: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:50 +02:00
pwm-clps711x.c pwm: clps711x: Simplify using devm_pwmchip_add() 2021-06-28 13:23:11 +02:00
pwm-crc.c pwm: crc: Simplify using devm_pwmchip_add() 2021-06-28 13:25:04 +02:00
pwm-cros-ec.c pwm: cros-ec: Explicitly set .polarity in .get_state() 2023-04-13 16:48:17 +02:00
pwm-dwc.c pwm: Always allocate PWM chip base ID dynamically 2021-03-22 11:53:00 +01:00
pwm-ep93xx.c pwm: ep93xx: Simplify using devm_pwmchip_add() 2021-09-02 21:38:41 +02:00
pwm-fsl-ftm.c pwm: fsl-ftm: Simplify using devm_pwmchip_add() 2021-09-02 21:38:41 +02:00
pwm-hibvt.c pwm: hibvt: Explicitly set .polarity in .get_state() 2023-04-26 13:51:55 +02:00
pwm-img.c pwm: img: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:51 +02:00
pwm-imx-tpm.c pwm: imx-tpm: force 'real_period' to be zero in suspend 2023-07-23 13:47:26 +02:00
pwm-imx1.c pwm: imx1: Simplify using devm_pwmchip_add() 2021-06-28 13:24:45 +02:00
pwm-imx27.c pwm: imx27: Simplify using devm_pwmchip_add() 2021-09-02 21:38:42 +02:00
pwm-intel-lgm.c pwm: intel-lgm: Simplify using devm_pwmchip_add() 2021-09-02 21:38:42 +02:00
pwm-iqs620a.c pwm: iqs620a: Explicitly set .polarity in .get_state() 2023-04-26 13:51:55 +02:00
pwm-jz4740.c pwm: jz4740: Simplify using devm_pwmchip_add() 2021-09-02 21:38:43 +02:00
pwm-keembay.c pwm: keembay: Simplify using devm_pwmchip_add() 2021-09-02 21:38:44 +02:00
pwm-lp3943.c pwm: lp3943: Fix duty calculation in case period was clamped 2022-06-14 18:36:04 +02:00
pwm-lpc18xx-sct.c pwm: lpc18xx: Fix period handling 2022-08-17 14:23:16 +02:00
pwm-lpc32xx.c pwm: lpc32xx: Remove handling of PWM channels 2023-09-19 12:22:58 +02:00
pwm-lpss-pci.c pwm: lpss: Simplify using devm_pwmchip_add() 2021-06-28 13:18:25 +02:00
pwm-lpss-platform.c pwm: lpss: Simplify using devm_pwmchip_add() 2021-06-28 13:18:25 +02:00
pwm-lpss.c pwm: lpss: Simplify using devm_pwmchip_add() 2021-06-28 13:18:25 +02:00
pwm-lpss.h pwm: lpss: Simplify using devm_pwmchip_add() 2021-06-28 13:18:25 +02:00
pwm-mediatek.c pwm: mediatek: always use bus clock for PWM on MT7622 2022-12-31 13:14:36 +01:00
pwm-meson.c pwm: meson: fix handling of period/duty if greater than UINT_MAX 2023-08-03 10:22:30 +02:00
pwm-mtk-disp.c pwm: mtk_disp: Fix the disable flow of disp_pwm 2023-07-23 13:47:27 +02:00
pwm-mxs.c pwm: mxs: Simplify using devm_pwmchip_add() 2021-09-02 21:38:45 +02:00
pwm-ntxec.c pwm: ntxec: Simplify using devm_pwmchip_add() 2021-09-02 21:38:46 +02:00
pwm-omap-dmtimer.c pwm: omap-dmtimer: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:52 +02:00
pwm-pca9685.c pwm: pca9685: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:53 +02:00
pwm-pxa.c pwm: pxa: Simplify using devm_pwmchip_add() 2021-09-02 21:38:46 +02:00
pwm-raspberrypi-poe.c pwm: raspberrypi-poe: Fix endianness in firmware struct 2022-06-14 18:36:04 +02:00
pwm-rcar.c pwm: rcar: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:53 +02:00
pwm-renesas-tpu.c pwm: renesas-tpu: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:54 +02:00
pwm-rockchip.c pwm: rockchip: Unprepare clocks only after the PWM was unregistered 2021-09-02 21:38:38 +02:00
pwm-samsung.c pwm: samsung: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:54 +02:00
pwm-sifive.c pwm: sifive: Always let the first pwm_apply_state succeed 2023-03-11 13:57:23 +01:00
pwm-sl28cpld.c pwm: sl28cpld: Simplify using devm_pwmchip_add() 2021-09-02 21:38:47 +02:00
pwm-spear.c pwm: spear: Ensure configuring period and duty_cycle isn't wrongly skipped 2021-07-08 16:08:38 +02:00
pwm-sprd.c pwm: sprd: Explicitly set .polarity in .get_state() 2023-04-13 16:48:17 +02:00
pwm-sti.c pwm: sti: Free resources only after pwmchip_remove() 2021-04-09 14:46:58 +02:00
pwm-stm32-lp.c pwm: stm32-lp: fix the check on arr and cmp registers update 2023-03-11 13:57:23 +01:00
pwm-stm32.c pwm: Simplify all drivers with explicit of_pwm_n_cells = 3 2021-05-25 18:19:15 +02:00
pwm-stmpe.c pwm: Always allocate PWM chip base ID dynamically 2021-03-22 11:53:00 +01:00
pwm-sun4i.c pwm: sun4i: Don't check the return code of pwmchip_remove() 2021-09-02 21:38:55 +02:00
pwm-tegra.c pwm: tegra: Fix 32 bit build 2022-12-31 13:14:48 +01:00
pwm-tiecap.c pwm: tiecap: Simplify using devm_pwmchip_add() 2021-09-02 21:38:48 +02:00
pwm-tiehrpwm.c pwm: tiehrpwm: Unprepare clock only after the PWM was unregistered 2021-09-02 21:38:38 +02:00
pwm-twl-led.c pwm: twl-led: Simplify using devm_pwmchip_add() 2021-09-02 21:38:48 +02:00
pwm-twl.c pwm: twl: Simplify using devm_pwmchip_add() 2021-09-02 21:38:49 +02:00
pwm-visconti.c pwm: visconti: Fix and simplify period calculation 2021-05-25 18:29:40 +02:00
pwm-vt8500.c pwm: vt8500: Only unprepare the clock after the pwmchip was removed 2021-06-30 19:12:20 +02:00
sysfs.c pwm: sysfs: Do not apply state to already disabled PWMs 2023-07-23 13:47:26 +02:00