Re: [PATCH] ACPI: evaluate _PS3 when entering D3 Cold

Rafael J. Wysocki
2012-04-24T21:10:22Z

On Tuesday, April 24, 2012, Aaron Lu wrote:
> On Tue, Apr 24, 2012 at 09:15:37PM +0800, Lin Ming wrote:
> > >> > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> > >> > index 7417267..734d946 100644
> > >> > --- a/drivers/acpi/scan.c
> > >> > +++ b/drivers/acpi/scan.c
> > >> > @@ -908,6 +908,10 @@ static int acpi_bus_get_power_flags(struct acpi_device *device)
> > >> > device->power.states[ACPI_STATE_D3].flags.valid = 1;
> > >> > device->power.states[ACPI_STATE_D3].power = 0;
> > >> >
> > >> > + /* Also set D3cold's explicit flag when _PS3 exists */
> > >> > + if (device->power.states[ACPI_STATE_D3_HOT].flags.explicit_set)
> > >> > + device->power.states[ACPI_STATE_D3].flags.explicit_set = 1;
> > >>
> > >> We should use ACPI_STATE_D3_COLD instead of ACPI_STATE_D3 to make thing
> > >> clear.
> > >>
> > > Thanks for your suggestion.
> > >
> > > Well, considering all those ACPI_STATE_D3 used in tree, I don't think I
> > > should use ACPI_STATE_D3_COLD here, especially the two lines above are
> > > still using ACPI_STATE_D3.
> > >
> > > But if that is desired, we should probably change all the existing
> > > ACPI_STATE_D3 macros to ACPI_STATE_D3_COLD to make things clear.
> > >
> > > Or we all use ACPI_STATE_D3, since it is defined as 4 and means D3 cold,
> > > and people will learn this, won't they?
> > >
> > > What do you think?
> >
> > OK.
> >
> > But we may do more cleanup later.
> >
>
> Sure :-)
> I think the first thing to do is to agree on which macro should be used,
> ACPI_STATE_D3 or ACPI_STATE_D3_COLD. And then replace the other one
> altogether.

I'd prefer to use ACPI_STATE_D3 wherever it makes sense, because that's
also well defined in older versions of ACPI (think pre-ACPI-4.0 BIOSes).

Thanks,
Rafael