linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Thierry Reding
	<thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-pwm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Mike Turquette
	<mturquette-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>,
	Stephen Boyd <sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Kamil Debski <k.debski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	lm-sensors-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org,
	Jean Delvare <jdelvare-IBi9RG/b67k@public.gmane.org>,
	Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>,
	Dmitry Torokhov
	<dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Richard Purdie <rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org>,
	Jacek Anaszewski
	<j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	linux-leds-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
	Joachim Eastwood
	<manabian-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Jingoo Han
	<jingoohan1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>Lee Jones <l>
Subject: Re: [PATCH v4 09/24] regulator: pwm: use pwm_get/set_default_xxx() helpers where appropriate
Date: Mon, 16 Nov 2015 20:28:13 +0100	[thread overview]
Message-ID: <20151116202813.5a2114b9@bbrezillon> (raw)
In-Reply-To: <20151116184238.GJ31303-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>

On Mon, 16 Nov 2015 18:42:38 +0000
Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:

> On Mon, Nov 16, 2015 at 01:23:59PM +0100, Boris Brezillon wrote:
> > Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
> > > On Mon, Nov 16, 2015 at 09:56:32AM +0100, Boris Brezillon wrote:
> 
> > > > -	pwm_reg_period = pwm_get_period(drvdata->pwm);
> > > > +	pwm_reg_period = pwm_get_default_period(drvdata->pwm);
> 
> > > It's not clear to me that we're not looking for the current period here
> > > or in the other use.  Won't configuring based on a period other than the
> > > one that has been set give the wrong answer?
> 
> > Hm, maybe that's naming problem. What I call the 'default' period here
> > is actually the period configured in your board file (using a PWM lookup
> > table) or your DT. This value represent the period requested by the PWM
> > user not a default value specified by the PWM chip driver.
> 
> > The reason we're not using the 'current' period value is because it may
> > have been set by the bootloader, and may be inappropriate for our use
> > case (ie. the period may be to small to represent the different
> > voltages).
> 
> > ITOH, we're using the current period value when calculating the current
> > voltage, because we want to get the correct voltage value, and the PWM
> > device may still use the configuration set by the bootloader (not the
> > default one specified in your board or DT files).
> 
> > I hope this clarifies the differences between the current and default
> > period, and why we should use the default value here.
> 
> To be honest I'm still a bit confused here.  When do we actually apply
> the default setting and why do we keep on having to constantly override
> it rather than doing this once at boot?

That's why I said the 'default' name may be inappropriate. The
default values are actually never directly applied by the PWM framework.
It's the default value for a specific PWM user, so it can be applied by
the PWM user when he wants. It's more here as a reference, nothing
forces the PWM user to use this specific value.

> It feels wrong to be using it
> every time we set anything.  I'd expect it to be something we only need
> to do at probe time or which would automatically be handled by the PWM
> framework (but that'd have issues changing the state and potentially
> breaking things if done in an uncoordiated fashion).

The whole point of this series is to smoothly take over the bootloader
config. This is why we are keeping the PWM untouched until someone
really wants to change the regulator output. We should be able to apply
the 'default' PWM period when probing the device, but this means first
extracting the current voltage from the PWM state and then applying a
new dutycycle and the default period in a single operation. Not sure
it's worth the trouble.

Doing it in the PWM framework is not really possible, because the PWM
lookup table and DT definitions are only defining the 'default' period
value not the 'default' dutycycle, and applying that automatically when
requesting the PWM means generating a glitch on the PWM signal
(dutycycle will be set to 0 until the user changes it using
pwm_config() or pwm_apply_state()) which is exactly what we're trying to
solve here.

Also, note that you have to pass the period anyway when configuring the
PWM, so passing the default one or the current one should be pretty
much the same in term of performances (unless the PWM driver is able
to optimize its setting if the period does not change).

Best Regards,

Boris

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

  parent reply	other threads:[~2015-11-16 19:28 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-16  8:56 [PATCH v4 00/24] pwm: add support for atomic update Boris Brezillon
2015-11-16  8:56 ` [PATCH v4 01/24] pwm: rcar: make use of pwm_is_enabled() Boris Brezillon
2016-03-16 14:30   ` Boris Brezillon
     [not found] ` <1447664207-24370-1-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2015-11-16  8:56   ` [PATCH v4 02/24] pwm: use pwm_get_xxx() helpers where appropriate Boris Brezillon
2015-11-16 17:46     ` Joachim Eastwood
2015-11-16 18:06       ` Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 03/24] clk: " Boris Brezillon
     [not found]     ` <1447664207-24370-4-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2015-12-30 21:03       ` Michael Turquette
2015-11-16  8:56   ` [PATCH v4 04/24] hwmon: pwm-fan: " Boris Brezillon
     [not found]     ` <1447664207-24370-5-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2015-11-16 15:59       ` Guenter Roeck
     [not found]         ` <5649FD5B.3000208-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-11-16 16:53           ` Boris Brezillon
2015-11-16 17:00             ` Guenter Roeck
2015-11-16  8:56   ` [PATCH v4 05/24] misc: max77693-haptic: " Boris Brezillon
     [not found]     ` <1447664207-24370-6-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2015-11-16 13:10       ` Krzysztof Kozlowski
     [not found]         ` <5649D5D0.6080204-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-11-16 13:55           ` Boris Brezillon
2015-11-16 15:55             ` Guenter Roeck
2015-11-16 16:00               ` Boris Brezillon
2015-11-17 17:32     ` Dmitry Torokhov
2015-11-16  8:56   ` [PATCH v4 06/24] pwm: introduce default period and polarity concepts Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 07/24] pwm: use pwm_get/set_default_xxx() helpers where appropriate Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 08/24] leds: " Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 09/24] regulator: " Boris Brezillon
     [not found]     ` <1447664207-24370-10-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2015-11-16 10:55       ` Mark Brown
     [not found]         ` <20151116105558.GB31303-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-11-16 12:23           ` Boris Brezillon
2015-11-16 18:42             ` Mark Brown
     [not found]               ` <20151116184238.GJ31303-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-11-16 19:28                 ` Boris Brezillon [this message]
2015-12-02 10:37                 ` Boris Brezillon
2015-12-30 11:01                   ` Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 10/24] backlight: " Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 11/24] fbdev: " Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 12/24] misc: max77693: " Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 13/24] hwmon: pwm-fan: " Boris Brezillon
2015-11-16 16:00     ` Guenter Roeck
2015-11-16  8:56   ` [PATCH v4 14/24] clk: pwm: " Boris Brezillon
     [not found]     ` <1447664207-24370-15-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2015-12-30 21:05       ` Michael Turquette
2015-11-16  8:56   ` [PATCH v4 15/24] pwm: define a new pwm_state struct Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 16/24] pwm: move the enabled/disabled info to " Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 17/24] backlight: pwm_bl: remove useless call to pwm_set_period Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 18/24] pwm: declare a default PWM state Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 19/24] pwm: add the PWM initial state retrieval infra Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 22/24] pwm: rockchip: add initial state retrieval Boris Brezillon
2015-11-16  8:56   ` [PATCH v4 24/24] regulator: pwm: properly initialize the ->state field Boris Brezillon
2015-11-16 14:45   ` [PATCH v4 00/24] pwm: add support for atomic update Heiko Stübner
2015-11-16  8:56 ` [PATCH v4 20/24] pwm: add the core infrastructure to allow " Boris Brezillon
2015-11-16  8:56 ` [PATCH v4 21/24] pwm: add information about polarity, duty cycle and period to debugfs Boris Brezillon
2015-11-16  8:56 ` [PATCH v4 23/24] pwm: rockchip: add support for atomic update Boris Brezillon
2015-11-16 14:45 ` [PATCH v4 00/24] pwm: " Heiko Stübner
2015-11-16 14:45 ` Heiko Stübner
2015-11-16 14:45 ` Heiko Stübner
2015-11-16 14:45 ` Heiko Stübner
2015-11-16 14:45 ` Heiko Stübner
2015-11-16 14:45 ` Heiko Stübner

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=20151116202813.5a2114b9@bbrezillon \
    --to=boris.brezillon-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
    --cc=j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=jdelvare-IBi9RG/b67k@public.gmane.org \
    --cc=jingoohan1-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=k.debski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org \
    --cc=linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-leds-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-pwm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=lm-sensors-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org \
    --cc=manabian-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=mturquette-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
    --cc=rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org \
    --cc=sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.org \
    /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).