I also think it should mostly be handled in the driver. About the only knobs we may want to enable userspace to mess with are say 3 power modes: low power (battery mode), default, and maybe a high power mode later on. The high power mode may require thermal monitoring support depending on the chip. GPM (and whatever kde uses) or the user can then change the mode on the fly in reaction to events like AC -> DC, etc.; much like what is done for backlights now.
The driver itself would then handle the power state transitions based on the selection from userspace. For example, if the low power state was selected, the driver would limit the max clocks and voltages based on that. As Matthew mentioned, the driver would adjust the engine clock on the fly when commands come in, and then downclock again after a certain period. There would also be an idle mode where everything would be down to the minimum (i.e., crtcs off, engines idle, etc.). In that case we could drop the clocks and pcie lanes to the lowest level. I don't think there is really any need for 2D vs. 3D mode as most of the useful "2D" accel uses the 3D engine anyway. So whenever we see commands come in, we should treat it the same; upclock to the limit imposed by the currently selected mode. The power tables in the bios could be used for setting limits and usable combinations (the hw can be picky about what combinations of sclks and mclks modes it likes) and for getting the idle (and possibly suspend) power modes. Mem clocks and pcie lanes are trickier since you need to make sure you have enough bandwidth available to supply all currently active clients (displays, 2D, 3D, overlays, etc.). It probably makes sense to only adjust them during a mode set or a forced power state or the idle state. These require some more thought. Driver hints may be useful here. Alex ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july -- _______________________________________________ Dri-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dri-devel
