Skip to content

RFC pwm: add support for atomic update

Boris Brezillon linux-arm-kernel linux-fbdev linux-leds linux-pwm linux-tegra 1 version New

Get series with b4
b4 am 20150702093013.66229df5@bbrezillon

Versions newest first

  1. v1 RFC Latest0 of 15 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 15 patches the cover letter announces are in this archive.

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
Quoted 27 lines · On Wed, 01 Jul 2015 23:57:57 +0200 Heiko St?bner <[email protected]> wrote:

Hi Boris,

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

Quoted 24 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.

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).

Quoted 8 lines
Quoted 3 lines

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 :-) .

Sorry about that, as I said I only compile tested the series :-/. Anyway, thanks for providing fixes for these bugs, they'll be applied in the next version.

Quoted 3 lines

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

Great! And thanks for testing the patches.

Best Regards,

Boris

Signature · 3 lines
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com