lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170125192711.GB27255@dtor-ws>
Date:   Wed, 25 Jan 2017 11:27:11 -0800
From:   Dmitry Torokhov <dmitry.torokhov@...il.com>
To:     Mark Brown <broonie@...nel.org>
Cc:     Mark Rutland <mark.rutland@....com>,
        Furquan Shaikh <furquan@...omium.org>,
        "Rafael J. Wysocki" <rafael@...nel.org>,
        "Rafael J . Wysocki" <rjw@...ysocki.net>,
        Liam Girdwood <lgirdwood@...il.com>,
        Tony Lindgren <tony@...mide.com>, Len Brown <lenb@...nel.org>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
        Hanjun Guo <hanjun.guo@...aro.org>,
        Will Deacon <will.deacon@....com>,
        Rob Herring <robh@...nel.org>,
        Sathyanarayana Nujella <sathyanarayana.nujella@...el.com>,
        Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
        Adam Thomson <Adam.Thomson.Opensource@...semi.com>,
        Linus Walleij <linus.walleij@...aro.org>,
        Alexandre Courbot <gnurou@...il.com>,
        linux-gpio@...r.kernel.org,
        ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Linux OMAP Mailing List <linux-omap@...r.kernel.org>,
        Aaron Durbin <adurbin@...omium.org>, dlaurie@...omium.org
Subject: Re: [PATCH 0/7] Implement generic regulator constraints parsing for
 ACPI and OF

On Wed, Jan 25, 2017 at 10:44:32AM -0800, Dmitry Torokhov wrote:
> On Wed, Jan 25, 2017 at 06:29:55PM +0000, Mark Brown wrote:
> > On Wed, Jan 25, 2017 at 06:23:20PM +0000, Mark Rutland wrote:
> > > On Wed, Jan 25, 2017 at 08:56:42AM -0800, Furquan Shaikh wrote:
> > 
> > > > That is the reason why the recent change to add ACPI support to fixed
> > > > regulators was done
> > > > (https://github.com/torvalds/linux/blob/master/drivers/regulator/fixed.c#L100).
> > 
> > > To be honest, I'm surprised this got merged.
> > 
> > My understanding was that it was instantiated from another device as an
> > implementation detail of that device, letting it say "this GPIO should
> > be handled as a regulator".
> > 
> > > Mark, this was added in this cycle; can we please rip that out for now?
> > 
> > If it's instantiated directly we probably should.
> > 
> > > We can certainly come up with something that allows drivers to support
> > > both, but trying to do this without updating drivers opens a huge set of
> > > problems.
> > 
> > I think there's a reasonable chance that any ACPI specs could be written
> > in such a way as to allow transparent support in Linux, the main thing
> > I'd worry about is naming issues.
> 
> So if I am reading this correctly, currently ACPI does not expose power
> supplies directly, but rather ties them to the device power state (D0,
> D3cold, etc). Linux drivers do not usually follow that state model and
> expect to have all their power supplies be given to them and then
> figures out what to do with them itself. Given that, what do we do? Do
> we map only entries from _PR3 so they are available to drivers via
> regulator_get()? Or we ask the standard to add method enumerating all
> supplies?

For the record, the main issue for the drivers, which is being solved by
exposing power supplies to the driver, is the following:

1. We suspend the device. Since there is no regulators the driver
assumes that it will retain it's state upon resume
2. System goes into some sleep state
3. System wakes up
4. Device goes through resume, normally disabling wakeup interrupt and
enabling normal processing
5. We end up with non functioning device because the firmware actually
cut the power off without the driver knowing anything about it.

I would really hate to go through _every_ driver and add the following
code to the resume path:

#if IS_ENABLED(CONFIG_ACPI)
	if (acpi_device_was_powered_off_between_suspend_and_now(dev)) {
		completely_reinitialize_device(dev);
	}
#endif

Thanks.

-- 
Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ