Hi Thierry, I'd like to send a new version of this series fixing the problems reported by Heiko, but I remember you were not happy with the naming convention I have chosen for the atomic update function. Could you have a quick look at this series (I'm not asking for a detailed review) and let me know which things you'd like me to rename. Best Regards, Boris On Wed, 1 Jul 2015 10:21:46 +0200 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote: > 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). > > 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). > > Best Regards, > > Boris > > Boris Brezillon (15): > pwm: add the pwm_is_enabled() helper > pwm: fix pwm_get_period and pwm_get_duty_cycle prototypes > pwm: add pwm_get_polarity helper function > pwm: make use of pwm_get_xxx helpers where appropriate > pwm: introduce default period and polarity concepts > pwm: define a new pwm_state struct > pwm: move the enabled/disabled info to pwm_state struct > backlight: pwm_bl: remove useless call to pwm_set_period > pwm: declare a default PWM state > pwm: add the PWM initial state retrieval infra > pwm: add the core infrastructure to allow atomic update > pwm: rockchip: add initial state retrieval > pwm: rockchip: add support for atomic update > regulator: pwm: implement ->enable(), ->disable() and ->is_enabled > methods > regulator: pwm: properly initialize the ->state field > > drivers/leds/leds-pwm.c | 2 +- > drivers/pwm/core.c | 136 ++++++++++++++++++++++++++++++----- > drivers/pwm/pwm-atmel-tcb.c | 2 +- > drivers/pwm/pwm-atmel.c | 6 +- > drivers/pwm/pwm-bcm-kona.c | 7 +- > drivers/pwm/pwm-ep93xx.c | 4 +- > drivers/pwm/pwm-imx.c | 5 +- > drivers/pwm/pwm-mxs.c | 4 +- > drivers/pwm/pwm-pxa.c | 2 +- > drivers/pwm/pwm-renesas-tpu.c | 2 +- > drivers/pwm/pwm-rockchip.c | 122 ++++++++++++++++++++++++------- > drivers/pwm/pwm-sun4i.c | 3 +- > drivers/pwm/pwm-tegra.c | 6 +- > drivers/pwm/pwm-tiecap.c | 10 +-- > drivers/pwm/pwm-tiehrpwm.c | 6 +- > drivers/pwm/sysfs.c | 13 ++-- > drivers/regulator/pwm-regulator.c | 60 ++++++++++++++-- > drivers/video/backlight/lm3630a_bl.c | 4 +- > drivers/video/backlight/pwm_bl.c | 6 +- > drivers/video/fbdev/ssd1307fb.c | 2 +- > include/linux/pwm.h | 82 ++++++++++++++++++--- > 21 files changed, 380 insertions(+), 104 deletions(-) > -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html