linux/drivers/pwm
Alexander Sverdlin e74b9a7ee5 pwm: tiehrpwm: Clear period on disable to allow reconfiguration
Both channels share one period register, so ehrpwm_pwm_config() rejects a
period differing from the sibling's period_cycles[]. That value was cleared
only in .free(), not in .disable(), so a stopped channel kept blocking the
sibling from switching to a new frequency. Clear it in .disable() too.

Testcase:

  cd /sys/class/pwm/pwmchip0; echo 0 > export; echo 1 > export
  for p in pwm0 pwm1; do
    echo 1000000 > $p/period; echo 500000 > $p/duty_cycle
    echo 1 > $p/enable; echo 0 > $p/enable; echo 2000000 > $p/period
  done
  echo 1 > pwm0/enable	# before: -EINVAL, after: succeeds

Fixes: 01b2d4536f ("pwm: pwm-tiehrpwm: Fix conflicting channel period setting")
Cc: stable@vger.kernel.org
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Link: https://patch.msgid.link/20260929120806.2790355-1-alexander.sverdlin@siemens.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2026-09-30 08:13:35 +02:00
..
core.c pwm: Allow 32-bit tasks to use the character device 2026-09-29 16:06:42 +02:00
Kconfig pwm: pxa: Depend on OF and simplify accordingly 2026-07-05 16:26:03 +02:00
Makefile pwm: Driver for qualcomm ipq6018 pwm block 2026-05-26 07:50:42 +02:00
pwm_th1520.rs Driver core changes for 7.3-rc1 2026-08-19 10:42:18 -07:00
pwm-ab8500.c
pwm-adp5585.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-airoha.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pwm-apple.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-argon-fan-hat.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-atmel-hlcdc.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-atmel-tcb.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-atmel.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-axi-pwmgen.c include: linux: move adi-axi-common.h out of fpga 2025-06-30 17:57:15 -07:00
pwm-bcm-iproc.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-bcm-kona.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-bcm2835.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-berlin.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-brcmstb.c pwm: Fix typos in comments 2026-09-07 10:03:42 +02:00
pwm-clk.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-clps711x.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-crc.c
pwm-cros-ec.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-dwc-core.c module: Convert default symbol namespace to string literal 2024-12-03 08:22:25 -08:00
pwm-dwc.c pwm: Consistently define pci_device_ids using named initializers 2026-05-26 07:50:42 +02:00
pwm-dwc.h module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
pwm-ep93xx.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pwm-fsl-ftm.c pwm: Add the S32G support in the Freescale FTM driver 2025-09-15 11:39:45 +02:00
pwm-gpio.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pwm-hibvt.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-img.c pwm: img: Remove redundant pm_runtime_mark_last_busy() calls 2025-07-09 10:51:20 +02:00
pwm-imx-tpm.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-imx1.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-imx27.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-intel-lgm.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pwm-ipq.c pwm: ipq: Prevent potential 32-bit integer overflow in hi_div calculation 2026-09-07 11:37:08 +02:00
pwm-iqs620a.c pwm: iqs620a: Use devm_blocking_notifier_chain_register() 2026-08-31 23:27:14 +02:00
pwm-jz4740.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-keembay.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pwm-loongson.c pwm: loongson: Reload PWM configuration through counter reset 2026-09-07 11:25:23 +02:00
pwm-lp3943.c pwm: lp3943: fix NULL pointer dereference for an unconfigured channel 2026-09-08 19:12:19 +02:00
pwm-lpc18xx-sct.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-lpc32xx.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-lpss-pci.c pwm: lpss-pci: Unify coding style of pci_device_id array 2026-07-10 10:01:36 +02:00
pwm-lpss-platform.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-lpss.c Pin control changes for the v6.15 kernel cycle: 2025-03-29 16:59:16 -07:00
pwm-lpss.h pwm: lpss: Only include <linux/pwm.h> where needed 2025-02-04 08:23:42 +01:00
pwm-max7360.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
pwm-mc33xs2410.c pwm: mc33xs2410: Initialize spi_device_id arrays using member names 2026-07-03 23:15:15 +02:00
pwm-mediatek.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-meson.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-microchip-core.c pwm: microchip-core: Drop driver local locking 2025-07-07 08:39:36 +02:00
pwm-mtk-disp.c pwm: mtk-disp: Fix period readback 2026-09-08 11:50:38 +02:00
pwm-mxs.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-ntxec.c
pwm-omap-dmtimer.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-pca9685.c pwm: Fix typos in comments 2026-09-07 10:03:42 +02:00
pwm-pxa.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-raspberrypi-poe.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-rcar.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-renesas-tpu.c pwm: renesas-tpu: Fix runtime PM reference leak 2026-08-31 23:27:02 +02:00
pwm-rockchip.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-rz-mtu3.c
pwm-rzg2l-gpt.c pwm: rzg2l-gpt: Drop unused rzg2l_gpt_chip parameter from rzg2l_gpt_calculate_prescale() 2026-07-19 19:09:52 +02:00
pwm-samsung.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-sifive.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-sl28cpld.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-sophgo-sg2042.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-spear.c
pwm-sprd.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-sti.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-stm32-lp.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-stm32.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-stmpe.c pwm: stmpe: Allow to compile as a module 2025-03-03 10:38:54 +01:00
pwm-sun4i.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-sunplus.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-tegra.c pwm: tegra: Add support for Tegra264 2026-07-14 11:29:26 +02:00
pwm-tiecap.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-tiehrpwm.c pwm: tiehrpwm: Clear period on disable to allow reconfiguration 2026-09-30 08:13:35 +02:00
pwm-twl-led.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-twl.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-visconti.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00
pwm-vt8500.c pwm: Changes for v7.3-rc1 2026-08-19 09:03:59 -07:00
pwm-xilinx.c pwm: Unify coding style of of_device_id arrays 2026-07-10 10:01:26 +02:00