[PATCH v3 0/3] Improve pwm-ir-tx precision

Sean Young
2023-10-17T09:18:06Z

The pwm-ir-tx driver has to turn the pwm signal on and off, and suffers
from delays as this is done in process context. Make this work in atomic
context.

changes:

v3:
- Renamed pwm_apply_state() to pwm_apply_cansleep()
- Moved pwm atomic to struct pwm_chip
- Fixed pwm docs
- Other minor code review comments

v2:
- Simplified the pwm ir tx based on Ivaylo Dimitrov suggestions
- Renamed pwm_can_sleep() to pwm_is_atomic
- Fix sleeping issue in pwm-bcm2835 (clk_get_rate() can sleep)
- use non_block_start() in pwm to check atomic-ness

Sean Young (3):
pwm: make it possible to apply pwm changes in atomic context
pwm: bcm2835: allow pwm driver to be used in atomic context
media: pwm-ir-tx: trigger edges from hrtimer interrupt context

Documentation/driver-api/pwm.rst | 16 +++-
.../gpu/drm/i915/display/intel_backlight.c | 6 +-
drivers/gpu/drm/solomon/ssd130x.c | 2 +-
drivers/hwmon/pwm-fan.c | 8 +-
drivers/input/misc/da7280.c | 4 +-
drivers/input/misc/pwm-beeper.c | 4 +-
drivers/input/misc/pwm-vibra.c | 8 +-
drivers/leds/leds-pwm.c | 2 +-
drivers/leds/rgb/leds-pwm-multicolor.c | 4 +-
drivers/media/rc/pwm-ir-tx.c | 83 +++++++++++++++++--
drivers/platform/x86/lenovo-yogabook.c | 2 +-
drivers/pwm/core.c | 75 +++++++++++++----
drivers/pwm/pwm-bcm2835.c | 30 ++++---
drivers/pwm/pwm-renesas-tpu.c | 1 -
drivers/pwm/pwm-twl-led.c | 2 +-
drivers/pwm/pwm-vt8500.c | 2 +-
drivers/pwm/sysfs.c | 10 +--
drivers/regulator/pwm-regulator.c | 4 +-
drivers/video/backlight/lm3630a_bl.c | 2 +-
drivers/video/backlight/lp855x_bl.c | 2 +-
drivers/video/backlight/pwm_bl.c | 6 +-
drivers/video/fbdev/ssd1307fb.c | 2 +-
include/linux/pwm.h | 57 +++++++++----
23 files changed, 243 insertions(+), 89 deletions(-)

--
2.42.0