Skip to content

RFC pwm: add support for atomic update

Heiko Stübner linux-arm-kernel linux-fbdev linux-leds linux-pwm linux-tegra 1 version New

Get series with b4
b4 am 3250976.mr9RMtjrdC@diego

Versions newest first

  1. v1 RFC Latest4 of 15 patches 0 repliesNew

4 of 15 patches are in this archive. The cover letter announces 15.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
12/15pwm: rockchip: add initial state retrieval+0 -01 reply
13/15pwm: rockchip: add support for atomic update+0 -01 reply
14/15regulator: pwm: implement ->enable(), ->disable() and ->is_enabled methods+0 -01 reply
14/15regulator: pwm: implement ->enable(), ->disable() and ->is_enabled methods+0 -01 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 00/15] pwm: add support for atomic update

Hi Boris,

Am Mittwoch, 1. Juli 2015, 10:21:46 schrieb Boris Brezillon:

Quoted 20 lines

Hello Thierry,

This series adds support for atomic PWM update, or ITO, the capability to update all the parameters of a PWM device (enabled/disabled, period, duty and polarity) in one go.

This implementation is still experimental, and I may have missed some key aspect, so any feedback are welcome.

Also note that I haven't protected the state update with any locking. That's because the existing config does not protect against concurrent access to a requested PWM device (see the pwm_config implementation). I guess the PWM framework assume the user will implement the proper locking scheme if it has to concurrently access the device.

The 5 first patches prepare the addition of the pwm_state concept, which will be used to allow atomic updates.
The following patches introduce the pwm_state struct, initial state retrieval and atomic update concepts.

Quoted 7 lines

Patches 12 and 13 are showing how one can implement the initial state retrieval and atomic update features in a PWM driver (in this specific case I implemented it in the rockchip driver).

The last 2 patches are making use of those changes to improve the pwm-regulator driver (initializing the regulator state based on the initial PWM state).

at first I got very strange readings (very wrong values and wrong polarity), which resulted from the issues I pointed out in the replies to individual patches. After fixing these, the pwm read-back now returns exactly the expected values :-) .

And with the original voltage table from the Chromeos-devicetrees, the pwm- regulator also returns the expected 1.2V that coreboot initially set.

Heiko