Re: [PATCH 0/7] Implement generic regulator constraints parsing for ACPI and OF

From: Mark Brown
Date: Wed Jan 25 2017 - 16:31:16 EST

On Wed, Jan 25, 2017 at 01:17:14PM -0800, Dmitry Torokhov wrote:
> On Wed, Jan 25, 2017 at 08:39:07PM +0000, Mark Brown wrote:

> > That's *not* a sensible thing for drivers to assume regardless of the
> > presence or absence of explicitly controlled regulators, that just seems
> > like a plain old driver bug. Even if there are regulators that doesn't
> > mean there isn't a suspend mode configuration that disables those
> > regulators.

> That means your platform description is incomplete, AKA a plain old
> device tree bug.

What makes you say that? Like I say even with an explicitly described
regulator we might power it off during suspend (perhaps even through
explicit device tree configuration).

> > That's not an ACPI thing, unless the device thinks it's actively
> > providing a wakeup source then if the system suspends the driver should
> > not be surprised to have power pulled - that's pretty normal. If the
> > driver is a wakeup source then it's a bit different.

> From the practical standpoint many drivers make this assumption because
> this shortens resume time for device. I.e. it makes difference whether
> we go through full controller reset, possibly reloading firmware, and
> applying desired configuration, versus taking the chip out of deep sleep
> mode.

Really? They've been used on a limited set of systems and if they're
attempting to use the presence of a regulator to figure out if this is
going to happen they are just completely broken in this regard and need
to be fixed before anyone copies that code. Even ignoring the suspend
mode configuration dummy regulators mean such a check would return true
in essentially all systems.

> So if we indeed saying that drivers should expect handling power loss
> even when devices are not on a hot-pluggable buses then we need a
> generic API for querying whether device lost it's state or not.

Yes. Querying the suspend mode configuration would be one way to do it

Attachment: signature.asc
Description: PGP signature