linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Thierry Reding <thierry.reding@gmail.com>, linux-pwm@vger.kernel.org
Cc: Mike Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	linux-clk@vger.kernel.org, Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Kamil Debski <k.debski@samsung.com>,
	lm-sensors@lm-sensors.org, Jean Delvare <jdelvare@suse.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-input@vger.kernel.org, Bryan Wu <cooloney@gmail.com>,
	Richard Purdie <rpurdie@rpsys.net>,
	Jacek Anaszewski <j.anaszewski@samsung.com>,
	linux-leds@vger.kernel.org,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	Chen-Yu Tsai <wens@csie.org>,
	linux-sunxi@googlegroups.com,
	Joachim Eastwood <manabian@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Heiko Stuebner <heiko@sntech.de>,
	linux-rockchip@lists.infradead.org,
	Jingoo Han <jingoohan1@gmail.com>,
	Lee Jones <lee.jones@linaro.org>,
	linux-fbdev@vger.kernel.org,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	Kukjin Kim <kgene@kernel.org>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	linux-samsung-soc@vger.kernel.org,
	intel-gfx@lists.freedesktop.org,
	Daniel Vetter <daniel.vetter@intel.com>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Hartley Sweeten <hsweeten@visionengravers.com>,
	Ryan Mallon <rmallon@gmail.com>,
	Alexander Shiyan <shc_work@mail.ru>, Milo Kim <milo.kim@ti.com>,
	Doug Anderson <dianders@google.com>,
	Caesar Wang <wxt@rock-chips.com>,
	Stephen Barber <smbarber@chromium.org>,
	Boris Brezillon <boris.brezillon@free-electrons.com>
Subject: [PATCH v5 00/24] pwm: add support for atomic update
Date: Thu, 14 Apr 2016 21:17:20 +0200	[thread overview]
Message-ID: <1460661464-11216-1-git-send-email-boris.brezillon@free-electrons.com> (raw)

Hello,

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

It also adds support for initial PWM state retrieval (or hardware
readout), which should allow smooth handover between the bootloader and
Linux. For example, critical PWM users (like critical regulators
controlled by a PWM) can query the current PWM state, and adapt the PWM
config without having to disable/enable the PWM, or abruptly change the
period/dutycyle/polarity config.

In this version, I dropped all patches converting PWM users and PWM
drivers to the atomic API in order to limit the number of patches and
ease review. I plan to send the remaining patches once these ones have
been accepted.

If you want to test the series, or see the big picture, you can have a
look at this branch [1].

Best Regards,

Boris

[1]https://github.com/bbrezillon/linux-rk/tree/atomic-pwm

Changes since v5:
- fix bugs in pwm_apply_state() implementation
- drop already applied patches
- s/pstate/state/
- add pwm_apply_args() helper
- limit the series to core changes and required changes in PWM users code

Changes since v4:
- introduce pwm_args to expose per-board/platform config
- deprecate non-atomic APIs
- implement non-atomic functions as wrappers around atomic ones
- patch all PWM users to use the atomic API
- rename the ->reset_state() hook into ->get_state()
- drop most acks
- rework PWM config in the pwm-regulator driver
- patch sun4i and sti PWM drivers to support HW readout

Changes since v3:
- rebased on pwm/for-next after pulling 4.4-rc1
- replace direct access to pwm fields by pwm_get/set_xxx() helpers, thus
  fixing some build errors
- split changes to allow each maintainer to review/ack or take the
  modification through its subsystem

Changes since v2:
- rebased on top of 4.3-rc2
- reintroduced pwm-regulator patches

Changes since v1:
- dropped applied patches
- squashed Heiko's fixes into the rockchip driver changes
- made a few cosmetic changes
- added kerneldoc comments
- added Heiko's patch to display more information in debugfs
- dropped pwm-regulator patches (should be submitted separately)

Boris Brezillon (23):
  pwm: introduce the pwm_args concept
  pwm: use pwm_get/set_xxx() helpers where appropriate
  clk: pwm: use pwm_get_args() where appropriate
  hwmon: pwm-fan: use pwm_get_args() where appropriate
  input: misc: max77693: use pwm_get_args() where appropriate
  leds: pwm: use pwm_get_args() where appropriate
  regulator: pwm: use pwm_get_args() where appropriate
  fbdev: ssd1307fb: use pwm_get_args() where appropriate
  backlight: pwm_bl: use pwm_get_args() where appropriate
  backlight: lp8788: explicitly apply PWM config extracted from pwm_args
  backlight: lp855x: explicitly apply PWM config extracted from pwm_args
  backlight: lm3630a: explicitly apply PWM config extracted from
    pwm_args
  input: misc: max8997: explicitly apply PWM config extracted from
    pwm_args
  input: misc: pwm-beeper: explicitly apply PWM config extracted from
    pwm_args
  drm: i915: explicitly apply PWM config extracted from pwm_args
  ARM: explicitly apply PWM config extracted from pwm_args
  pwm: keep PWM state in sync with hardware state
  pwm: introduce the pwm_state concept
  pwm: move the enabled/disabled info into pwm_state
  pwm: add the PWM initial state retrieval infra
  pwm: add the core infrastructure to allow atomic update
  pwm: update documentation
  pwm: switch to the atomic API

Heiko Stübner (1):
  pwm: add information about polarity, duty cycle and period to debugfs

 Documentation/pwm.txt                |  30 +++-
 arch/arm/mach-s3c24xx/mach-rx1950.c  |   6 +
 drivers/clk/clk-pwm.c                |  17 +-
 drivers/gpu/drm/i915/intel_panel.c   |   6 +
 drivers/hwmon/pwm-fan.c              |  26 ++-
 drivers/input/misc/max77693-haptic.c |  17 +-
 drivers/input/misc/max8997_haptic.c  |   6 +
 drivers/input/misc/pwm-beeper.c      |   6 +
 drivers/leds/leds-pwm.c              |  11 +-
 drivers/pwm/core.c                   | 214 ++++++++++++++--------
 drivers/pwm/pwm-clps711x.c           |   2 +-
 drivers/pwm/pwm-crc.c                |   2 +-
 drivers/pwm/pwm-lpc18xx-sct.c        |   2 +-
 drivers/pwm/pwm-omap-dmtimer.c       |   2 +-
 drivers/pwm/pwm-pxa.c                |   2 +-
 drivers/pwm/pwm-sun4i.c              |   3 +-
 drivers/pwm/sysfs.c                  |  61 ++++---
 drivers/regulator/pwm-regulator.c    |  20 ++-
 drivers/video/backlight/lm3630a_bl.c |   6 +
 drivers/video/backlight/lp855x_bl.c  |   6 +
 drivers/video/backlight/lp8788_bl.c  |   6 +
 drivers/video/backlight/pwm_bl.c     |  10 +-
 drivers/video/fbdev/ssd1307fb.c      |  11 +-
 include/linux/pwm.h                  | 335 +++++++++++++++++++++++++++--------
 24 files changed, 606 insertions(+), 201 deletions(-)

-- 
2.5.0

             reply	other threads:[~2016-04-14 19:18 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-14 19:17 Boris Brezillon [this message]
2016-04-14 19:17 ` [PATCH v5 01/24] pwm: introduce the pwm_args concept Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 02/24] pwm: use pwm_get/set_xxx() helpers where appropriate Boris Brezillon
2016-04-14 19:24   ` Joachim Eastwood
2016-04-14 19:17 ` [PATCH v5 03/24] clk: pwm: use pwm_get_args() " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 04/24] hwmon: pwm-fan: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 05/24] input: misc: max77693: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 06/24] leds: pwm: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 07/24] regulator: " Boris Brezillon
2016-04-15  6:54   ` Mark Brown
2016-04-14 19:17 ` [PATCH v5 08/24] fbdev: ssd1307fb: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 09/24] backlight: pwm_bl: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 10/24] backlight: lp8788: explicitly apply PWM config extracted from pwm_args Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 11/24] backlight: lp855x: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 12/24] backlight: lm3630a: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 13/24] input: misc: max8997: " Boris Brezillon
2016-04-17 12:45   ` Dmitry Torokhov
2016-04-17 15:39     ` Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 14/24] input: misc: pwm-beeper: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 15/24] drm: i915: " Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 16/24] ARM: " Boris Brezillon
2016-04-15  8:17   ` Krzysztof Kozlowski
2016-04-14 19:17 ` [PATCH v5 17/24] pwm: keep PWM state in sync with hardware state Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 18/24] pwm: introduce the pwm_state concept Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 19/24] pwm: move the enabled/disabled info into pwm_state Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 20/24] pwm: add the PWM initial state retrieval infra Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 21/24] pwm: add the core infrastructure to allow atomic update Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 22/24] pwm: update documentation Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 23/24] pwm: switch to the atomic API Boris Brezillon
2016-04-14 19:17 ` [PATCH v5 24/24] pwm: add information about polarity, duty cycle and period to debugfs Boris Brezillon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1460661464-11216-1-git-send-email-boris.brezillon@free-electrons.com \
    --to=boris.brezillon@free-electrons.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=broonie@kernel.org \
    --cc=cooloney@gmail.com \
    --cc=corbet@lwn.net \
    --cc=daniel.vetter@intel.com \
    --cc=dianders@google.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=heiko@sntech.de \
    --cc=hsweeten@visionengravers.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=j.anaszewski@samsung.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=jdelvare@suse.com \
    --cc=jingoohan1@gmail.com \
    --cc=k.debski@samsung.com \
    --cc=k.kozlowski@samsung.com \
    --cc=kgene@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=linux@roeck-us.net \
    --cc=lm-sensors@lm-sensors.org \
    --cc=manabian@gmail.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=milo.kim@ti.com \
    --cc=mturquette@baylibre.com \
    --cc=plagnioj@jcrosoft.com \
    --cc=rmallon@gmail.com \
    --cc=robert.jarzmik@free.fr \
    --cc=rpurdie@rpsys.net \
    --cc=sboyd@codeaurora.org \
    --cc=shc_work@mail.ru \
    --cc=smbarber@chromium.org \
    --cc=thierry.reding@gmail.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tomi.valkeinen@ti.com \
    --cc=wens@csie.org \
    --cc=wxt@rock-chips.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).