All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Anderson <dianders@chromium.org>
To: Mark Brown <broonie@kernel.org>
Cc: David Collins <collinsd@codeaurora.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	linux-arm-msm@vger.kernel.org,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	devicetree@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
	Rajendra Nayak <rnayak@codeaurora.org>,
	Stephen Boyd <sboyd@kernel.org>
Subject: Re: [PATCH v3 1/2] regulator: dt-bindings: add QCOM RPMh regulator bindings
Date: Wed, 30 May 2018 08:34:50 -0700	[thread overview]
Message-ID: <CAD=FV=XJd-udEE6az0xP7i6x0oGsnd=BSCyZ0Og_+RjNCMXnCQ@mail.gmail.com> (raw)
In-Reply-To: <20180530150241.GO6920@sirena.org.uk>

Hi,

On Wed, May 30, 2018 at 8:02 AM, Mark Brown <broonie@kernel.org> wrote:
> On Wed, May 30, 2018 at 07:46:50AM -0700, Doug Anderson wrote:
>> On Wed, May 30, 2018 at 2:37 AM, Mark Brown <broonie@kernel.org> wrote:
>
>> >> Linux vote for the lowest voltage it's comfortable with.  Linux keeps
>> >> track of the true voltage that the driver wants and will always change
>> >> its vote back to that before enabling.  Thus (assuming Linux is OK
>> >> with 1.2 V - 1.4 V for a rail):
>
>> > That's pretty much what it should do anyway with normally designed
>> > hardware.
>
>> I guess the question is: do we insist that the driver include this
>> workaround, or are we OK with letting the hardware behave as the
>> hardware does?
>
> What you're describing sounds like what we should be doing normally, if
> we're not doing that we should probably be fixing the core.

I'm not convinced that this behavior makes sense to move to the core.
On most regulators I'd expect that when the regulator driver says to
turn them off that they will output no voltage.  The reason RPMh is
special is that there's an aggregation outside of Linux.  Specifically
I like to make it concrete use the example where both Linux and "the
modem" make requests for the same regulator and RPMh aggregates these
requests.  This aggregation happens separately for "enabled" and
"voltage".

Thus if you consider:
Modem: vote for 1.3V and enabled=true
Linux: vote for 1.4V and enabled=false

The aggregated voltage is 1.4V and the aggregated enabled is true.
Said another way: Linux's vote for the voltage affected the state of
the rail even though Linux wanted the rail disabled.

In any other system when Linux disabled the regulator it wouldn't
matter that you left it set at 1.4V.  Thus RPMh is special and IMO the
workaround belongs there.


-Doug

WARNING: multiple messages have this Message-ID (diff)
From: dianders@chromium.org (Doug Anderson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/2] regulator: dt-bindings: add QCOM RPMh regulator bindings
Date: Wed, 30 May 2018 08:34:50 -0700	[thread overview]
Message-ID: <CAD=FV=XJd-udEE6az0xP7i6x0oGsnd=BSCyZ0Og_+RjNCMXnCQ@mail.gmail.com> (raw)
In-Reply-To: <20180530150241.GO6920@sirena.org.uk>

Hi,

On Wed, May 30, 2018 at 8:02 AM, Mark Brown <broonie@kernel.org> wrote:
> On Wed, May 30, 2018 at 07:46:50AM -0700, Doug Anderson wrote:
>> On Wed, May 30, 2018 at 2:37 AM, Mark Brown <broonie@kernel.org> wrote:
>
>> >> Linux vote for the lowest voltage it's comfortable with.  Linux keeps
>> >> track of the true voltage that the driver wants and will always change
>> >> its vote back to that before enabling.  Thus (assuming Linux is OK
>> >> with 1.2 V - 1.4 V for a rail):
>
>> > That's pretty much what it should do anyway with normally designed
>> > hardware.
>
>> I guess the question is: do we insist that the driver include this
>> workaround, or are we OK with letting the hardware behave as the
>> hardware does?
>
> What you're describing sounds like what we should be doing normally, if
> we're not doing that we should probably be fixing the core.

I'm not convinced that this behavior makes sense to move to the core.
On most regulators I'd expect that when the regulator driver says to
turn them off that they will output no voltage.  The reason RPMh is
special is that there's an aggregation outside of Linux.  Specifically
I like to make it concrete use the example where both Linux and "the
modem" make requests for the same regulator and RPMh aggregates these
requests.  This aggregation happens separately for "enabled" and
"voltage".

Thus if you consider:
Modem: vote for 1.3V and enabled=true
Linux: vote for 1.4V and enabled=false

The aggregated voltage is 1.4V and the aggregated enabled is true.
Said another way: Linux's vote for the voltage affected the state of
the rail even though Linux wanted the rail disabled.

In any other system when Linux disabled the regulator it wouldn't
matter that you left it set at 1.4V.  Thus RPMh is special and IMO the
workaround belongs there.


-Doug

  reply	other threads:[~2018-05-30 15:34 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-12  2:28 [PATCH v3 0/2] regulator: add QCOM RPMh regulator driver David Collins
2018-05-12  2:28 ` David Collins
2018-05-12  2:28 ` David Collins
2018-05-12  2:28 ` [PATCH v3 1/2] regulator: dt-bindings: add QCOM RPMh regulator bindings David Collins
2018-05-12  2:28   ` David Collins
2018-05-17 21:22   ` Doug Anderson
2018-05-17 21:22     ` Doug Anderson
2018-05-18  0:16     ` David Collins
2018-05-18  0:16       ` David Collins
2018-05-18  1:01       ` Doug Anderson
2018-05-18  1:01         ` Doug Anderson
2018-05-19  0:46         ` David Collins
2018-05-19  0:46           ` David Collins
2018-05-21 18:01           ` Doug Anderson
2018-05-21 18:01             ` Doug Anderson
2018-05-22  0:00             ` David Collins
2018-05-22  0:00               ` David Collins
2018-05-22 16:43               ` Doug Anderson
2018-05-22 16:43                 ` Doug Anderson
2018-05-22 16:43                 ` Doug Anderson
2018-05-22 16:55                 ` Mark Brown
2018-05-22 16:55                   ` Mark Brown
2018-05-22 22:46                 ` David Collins
2018-05-22 22:46                   ` David Collins
2018-05-23  0:08                   ` Doug Anderson
2018-05-23  0:08                     ` Doug Anderson
2018-05-23  1:19                     ` David Collins
2018-05-23  1:19                       ` David Collins
2018-05-23  5:10                       ` Doug Anderson
2018-05-23  5:10                         ` Doug Anderson
2018-05-23  8:29                     ` Mark Brown
2018-05-23  8:29                       ` Mark Brown
2018-05-23 15:23                       ` Doug Anderson
2018-05-23 15:23                         ` Doug Anderson
2018-05-23 15:40                         ` Mark Brown
2018-05-23 15:40                           ` Mark Brown
2018-05-23 15:50                           ` Doug Anderson
2018-05-23 15:50                             ` Doug Anderson
2018-05-23 15:56                             ` Mark Brown
2018-05-23 15:56                               ` Mark Brown
2018-05-30  5:30                               ` Doug Anderson
2018-05-30  5:30                                 ` Doug Anderson
2018-05-30  9:37                                 ` Mark Brown
2018-05-30  9:37                                   ` Mark Brown
2018-05-30 14:46                                   ` Doug Anderson
2018-05-30 14:46                                     ` Doug Anderson
2018-05-30 15:02                                     ` Mark Brown
2018-05-30 15:02                                       ` Mark Brown
2018-05-30 15:34                                       ` Doug Anderson [this message]
2018-05-30 15:34                                         ` Doug Anderson
2018-05-30 15:48                                         ` Mark Brown
2018-05-30 15:48                                           ` Mark Brown
2018-05-30 16:06                                           ` Doug Anderson
2018-05-30 16:06                                             ` Doug Anderson
2018-05-30 16:07                                             ` Mark Brown
2018-05-30 16:07                                               ` Mark Brown
2018-05-30 16:09                                               ` Doug Anderson
2018-05-30 16:09                                                 ` Doug Anderson
2018-05-30 16:13                                                 ` Mark Brown
2018-05-30 16:13                                                   ` Mark Brown
2018-05-30 16:31                                                   ` Doug Anderson
2018-05-30 16:31                                                     ` Doug Anderson
2018-05-30 16:36                                                     ` Mark Brown
2018-05-30 16:36                                                       ` Mark Brown
2018-05-30 16:41                                                       ` Doug Anderson
2018-05-30 16:41                                                         ` Doug Anderson
2018-05-30 16:41                                                         ` Doug Anderson
2018-05-30 16:59                                                         ` Mark Brown
2018-05-30 16:59                                                           ` Mark Brown
2018-05-18 22:24       ` Rob Herring
2018-05-18 22:24         ` Rob Herring
2018-05-12  2:28 ` [PATCH v3 2/2] regulator: add QCOM RPMh regulator driver David Collins
2018-05-12  2:28   ` David Collins
2018-05-17 21:23   ` Doug Anderson
2018-05-17 21:23     ` Doug Anderson
2018-05-18  0:16     ` David Collins
2018-05-18  0:16       ` David Collins

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='CAD=FV=XJd-udEE6az0xP7i6x0oGsnd=BSCyZ0Og_+RjNCMXnCQ@mail.gmail.com' \
    --to=dianders@chromium.org \
    --cc=broonie@kernel.org \
    --cc=collinsd@codeaurora.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=rnayak@codeaurora.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.