> > (2) put given subset of devices into low power states whenever they > > are not used, without putting the entire system into a sleep state. > For (2), for me the answer is very obvious: > The Device Driver needs to make the decision to put the device to sleep. > There are no ifs and buts about this. For PC-like systems this is probably all that needs to be said. However for highly integrated SoC systems (as Android is obviously targeting) there is another level of complexity due to the interdependency among various devices... eg things like if I know the SD controller and the wifi chip are both asleep then I can put my SDIO controller to sleep; and if the SDIO controller and the NAND controller are both asleep then I can stop clock X and save more power; etc etc. This is what the PowerOp/DPM work was all about. Unfortunately that doesn't seem to have made much progress upstream. But there's no doubt in my mind that we need some framework beyond individual drivers that manages the system's power as a whole. And the current device tree is probably not sufficient -- eg the bus hierarchy of a device may not match up with the clock tree at all. - R. _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm