[Galaxy S III Android Development] Yank555:
Not quite ;)

In the kernel :

OK, what the governor does is frequency scaling and hotplugging (only on Exynos, on Qualcomm the governor only handles freq. scaling).

So that part is correct, that's the DVFS part.

The voltage part is strictly kernel stuff, that's a specific voltage getting applied for a given frequency, and yes, the voltage table is 2 dimensional, so the actual voltage depends on the freq. applied for the given ASV level your chip is.

In the ROM :

No voltage will be controlled by the ROM, in fact, for voltage control you need a custom kernel to expose the actual voltages through a sysfs interface. So on stock, there is no way for the ROM to have any direct impact on voltage (other then indirectly through changing the freq.). In my kernels, as I'm no fan of UV, I don't include a voltage interface either, so even though you'd be on a custom kernel, that still does not necessarily mean it is possible to influence the voltage, by an app, as a stock ROM wouldn't know of any such interface.

What the ROM (and apps for that matter) can do, is to mess with frequency and hotplugging, using the standard sysfs interface.

So in fact, look at the ROM-side DVFS as a manually shiftable automatic gearbox in a car (like most tiptronics are), the ROM will just tell the kernel do rev. the freq. up or down by forcing the governor to stay within a narrower freq. range, to force the freq. up, the ROM will raise scaling_min, and to limit the freq. it will lower scaling_max.

That is what you do when you use Samsung's powersaving mode, you will force CPU max. freq. to a lower level than normal (but through a different, Samsung specific sysfs Interface... but that's another story).

Also the ROM could take cores offline as well, even though, the governor would put them back online if the load is high enough.

On Qualcomm devices :

OK, what's specific on Qualcomm devices is the fact that the governor does not control the hotplugging (taking cores on-/offline). There is no hotplug driver in the kernel at all ! Qualcomm has put that logic in a binary called mpdecision (multi-processor decision) which runs in the background (daemon), which will use the sysfs interface to on-/offline cores.

Additionally to that, what it will also do is change scaling min/max to force the governor to work at certain freq. An example is touchboost, which will on devices like the Note 3 set CPU min to 1100MHz for a given amount of time and then set it back to 300MHz. If the CPU freq. was below 1100MHz, it would go to 1100MHz since that's the minimum it's told it may be. Once it's set back to 300MHz, and if no load is present, the freq. would be lowered by the governor to 300MHz eventually.

But what you switch in Wanam's module is likely the pure ROM side thing (benchmark cheating stuff and maybe other things ... , but not mpdecsion) built in those newer ROMs (could also be on the i9300, but I'd be rather surprised tbh). And that has no impact on anything except benchmarks, so highly unlikely make any difference for your games.

Hope this make it clearer, not more confusing ;)

JP.

EDIT : Here Wanam confirms what I suspected ;)