[lkml]   [2012]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC v2 1/5] PM, Runtime, Add power_must_be_on flag
    On Friday, May 04, 2012, Huang Ying wrote:
    > The extreme way to save device power in runtime is to turn off power
    > of device. For example, D3cold for PCIe bus and ZPODD (Zero Power
    > Optical Disk Drive) for SATA bus will do that.
    > But sometimes power off is not expected, some possible reason is as
    > follow
    > - power off device usually incurs longer resume latency, if it exceeds
    > power QoS requirement, power off should be disabled.
    > - For some buses, device in power off state can not support remote
    > wakeup. If remote wakeup is desired, power off should be disabled.
    > In general, whether to put a device into power off state should be
    > decided by the driver of the device, but for some buses, whether to
    > put a device into power off state may be done by the parent of the
    > device. For example, a PCIe end point device may be put into power
    > off state by the PCIe port connected to it.
    > So a flag is introduced for the children devices to tell the parent
    > device, whether it should be put into power off state.
    > This flag is also used for device driver to tell bus layer whether it
    > is OK to be powered off.
    > Signed-off-by: Huang Ying <>

    I would be almost fine with this patch, if [2/5] were not present.

    However, if you introduce a flag like this, you need to put checks
    against it into all places where power may be removed from devices,
    like the generic PM domains framework (but not only there).


    > ---
    > include/linux/pm.h | 1 +
    > 1 file changed, 1 insertion(+)
    > --- a/include/linux/pm.h
    > +++ b/include/linux/pm.h
    > @@ -536,6 +536,7 @@ struct dev_pm_info {
    > unsigned int irq_safe:1;
    > unsigned int use_autosuspend:1;
    > unsigned int timer_autosuspends:1;
    > + unsigned int power_must_be_on:1;
    > enum rpm_request request;
    > enum rpm_status runtime_status;
    > int runtime_error;

     \ /
      Last update: 2012-05-04 21:41    [W:0.027 / U:0.816 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site