Re: [RFC v2 2/5] PM, Add sysfs file power_off to control device power off policy

From: Rafael J. Wysocki
Date: Tue May 08 2012 - 17:30:09 EST


On Tuesday, May 08, 2012, Huang Ying wrote:
> On Mon, 2012-05-07 at 22:53 +0200, Rafael J. Wysocki wrote:
> > On Saturday, May 05, 2012, huang ying wrote:
> > > On Sat, May 5, 2012 at 3:33 AM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> > > > On Friday, May 04, 2012, Huang Ying wrote:
> > > >> From: Lan Tianyu <tianyu.lan@xxxxxxxxx>
[...]
> > I think we may add helpers for exporting/unexporting power_off_allowed
> > like for the PM QoS latency attribute. Then, whoever wants to support
> > power_off_allowed and use it will export it through that helper.
>
> That sounds good!
>
> > Still, I'm afraid we're trying to special case something that really ins't
> > a special case. Namely, we may want to restrict devices from using some
> > other low-power states as well, not only power off (eg. we may want to
> > prevent devices' clocks from being stopped).
>
> One step towards generalization is to provide a way for user to specify
> lowest power state allowed. For example, for PCI devices, they can
> specify D1, D2, D3hot or D3cold. But it is hard to generalize a set of
> low power states for all kind of devices. Maybe we should keep this
> user space interface bus specific?

I came to the same conclusion. :-)

Besides, we already have the no_d1d2 and d1_support, d2_support flags
in struct pci_dev. We can simply add no_d3_cold in analogy and add a similar
thing for ATA to cover the ZPODD case.

I would keep those things bus-type-specific and platform-specific.

> For example, we can have a sysfs file like "lowest_pm_state_allowed" for each
> PCI devices.

I'm not sure if that's going to be sufficient, because some devices appear to
have problems with _intermediate_ low-power states.

> BTW: I wonder that are there standard low power states defined for
> devices on platform bus.

Not that I know of.

Thanks,
Rafael
--
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/