On Wed, Aug 3, 2011 at 3:45 AM, Kevin Hilman <khilman@xxxxxx> wrote: > MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx> writes: > >> With OPPs, a device may have multiple operable frequency and voltage >> sets. However, there can be multiple possible operable sets and a system >> will need to choose one from them. In order to reduce the power >> consumption (by reducing frequency and voltage) without affecting the >> performance too much, a Dynamic Voltage and Frequency Scaling (DVFS) >> scheme may be used. >> >> This patch introduces the DVFS capability to non-CPU devices with OPPs. >> DVFS is a techique whereby the frequency and supplied voltage of a >> device is adjusted on-the-fly. DVFS usually sets the frequency as low >> as possible with given conditions (such as QoS assurance) and adjusts >> voltage according to the chosen frequency in order to reduce power >> consumption and heat dissipation. >> >> The generic DVFS for devices, DEVFREQ, may appear quite similar with >> /drivers/cpufreq. However, CPUFREQ does not allow to have multiple >> devices registered and is not suitable to have multiple heterogenous >> devices with different (but simple) governors. >> >> Normally, DVFS mechanism controls frequency based on the demand for >> the device, and then, chooses voltage based on the chosen frequency. >> DEVFREQ also controls the frequency based on the governor's frequency >> recommendation and let OPP pick up the pair of frequency and voltage >> based on the recommended frequency. Then, the chosen OPP is passed to >> device driver's "target" callback. >> >> Tested with memory bus of Exynos4-NURI board. >> >> The test code with board support for Exynos4-NURI is at >> http://git.infradead.org/users/kmpark/linux-2.6-samsung/shortlog/refs/heads/devfreq >> >> Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx> >> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> >> >> -- >> Thank you for your valuable comments, Rafael, Greg, Pavel, and Colin. >> >> Changed from v3 >> - In kerneldoc comments, DEVFREQ has ben replaced by devfreq > > FYI... there are still lots of kerneldoc comments in this version with > DEVFREQ instead of devfreq, particularily in devfreq.h. > > Kevin > _______________________________________________ Ah.. I'll correct them. Besides, I've found that the private data for governor is better located at struct devfreq than at struct devfreq_governor as such private data is "per-device" and the same governor (with same memory location) may be shared between different devices. Cheers! MyungJoo -- MyungJoo Ham (함명주), Ph.D. Mobile Software Platform Lab, Digital Media and Communications (DMC) Business Samsung Electronics cell: 82-10-6714-2858 _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm