Re: [RFC PATCH v2 5/8] libata-acpi: add ata port runtime D3Coldsupport

From: Aaron Lu
Date: Mon Mar 19 2012 - 02:36:04 EST


Hi,

On Mon, Mar 19, 2012 at 01:27:00PM +0800, Lin Ming wrote:
> On Mon, 2012-03-19 at 11:36 +0800, Aaron Lu wrote:
> > Hi,
> >
> > On Thu, Mar 01, 2012 at 05:02:54PM +0800, Lin Ming wrote:
> > > ATA port may support runtime D3Cold state, for example, Zero-power ODD case.
> > > This patch adds wakeup notifier and enable/disable run_wake during
> > > supend/resume.
> >
> > I've been thinking this for some time and realized that it would be
> > impossible for AMD's platform to work with this patch, the reason:
> > There is no _PRW in AMD's acpi implementation. And no _PRW would mean
> > the device is not wake up capable in current Linux ACPI implementation.
> >
> > I've checked the ACPI spec and it said: 'the _PRW is only required for
> > devices that have the ability to wake the system from a system sleeping
> > state.'
> > So I'm not sure if _PRW fits here, since the most common use case for
> > zpodd would be: odd put to D3 cold and system is at S0, and odd is back
> > to D0 when necessary without affecting the system sleep state.
> >
> > I suggest we install the acpi pm notifier on the handle based on the
> > following two criteria:
> > 1 This ata device is DA capable;
> > 2 Its acpi device indicates it is able to wake up itself in S0(_S0W
> > evaluates 4).
>
> OK, reasonable to me.
>
> >
> > Does this make sense and will this work for your platform?
>
> Yes.
>

Great ;-)

> >
> > Another problem is how to place this ODD device into D3 cold state,
> > since our platform uses _PS3 control method to power off it. Do you have
> > any suggestions?
>
> acpi_bus_set_power will execute _PS3 too.
>
> So I think no problem for AMD's platform.
>

Sorry I didn't make it clear.
The problem here is, we are going to set the device power state to D3
cold, and current OSPM has no support for it.

Another patch of yours solved this problem by defining:
1 Device supports D3 cold if it has _PR3;
2 For a device to be put to D3 cold, power off all the power resources
referenced in its _PR3.

Since this can't work for AMD's platform(there is no _PR3 for the sata
acpi device), I would like to change this a little bit:
1 Device supports D3 cold if it has _PR3 or _PS3;
2 For a device to be put to D3 cold, execute _PS3 first if available and
then deal with _PR3 as above.

What do you think of this?
If you are OK to the above idea, I can change the corresponding patch for
you to review.

Thanks,
Aaron


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/