LG Mako gamma control - add mirror interface while leaving

faux's interface in place, respecting his rollover char checksum.

Mirror interface should be a little easier for humans to work
with from scripting (int checksum that doesn't roll over).

Added a couple validation checks to both interfaces before allowing
values to be stored. This will add some safety for scripting or rouge
apps that may have a bug.
-Only allow gamma amp 0 and 1 values up to 31.
-Since we are pushing to a char data type, make sure nothing is over
255.

Changed dsi_cmd_desc struct name so it can be shared between
both interfaces.

Added to sysfs:
/sys/devices/platform/mipi_lgit.1537/kgamma_red
/sys/devices/platform/mipi_lgit.1537/kgamma_green
/sys/devices/platform/mipi_lgit.1537/kgamma_blue

Example:
echo "383 114 21 118 0 0 0 80 48 2" >
/sys/devices/platform/mipi_lgit.1537/kgamma_red

echo "383 114 21 118 0 0 0 80 48 2" >
/sys/devices/platform/mipi_lgit.1537/kgamma_green

echo "383 114 21 118 0 0 0 80 48 2" >
/sys/devices/platform/mipi_lgit.1537/kgamma_blue

First digit is a checksum (sum of all the other 9 numbers)
Gamma Amp 0 = value 6
Gamma Amp 1 = value 7

Show the current settings with proper checksum:
cat /sys/devices/platform/mipi_lgit.1537/kgamma_red
cat /sys/devices/platform/mipi_lgit.1537/kgamma_green
cat /sys/devices/platform/mipi_lgit.1537/kgamma_blue
Conflicts:
	drivers/video/msm/mipi_lgit.c

fiops as default scheduler
Mako (absolute) Voltage control.

This started out as just including the existing work of someone else.
But that was so obfuscated and needlessly moved in sysfs, i turned it
into the type control
we have on NP, meaning same sysfs location and output formatting.
Since the various kernels range from no preUV to different levels of UV
it is best to encourage the user
to think in absolute voltages.
"I can UV -150 on kernel X! Really? Odd, i can only UV kernel Y -50mV!"
Kernel X has no preUV, kernel Y has 100mV preUV, so they both run the
same.
This is needlessly confusing to users.

Talking in absolutes, users will get a better understanding of "what the
other guy's" device is capable of.
Sticking to a common sysfs location and to the common absolute voltage
is thus the right thing to do.

This seems to work now as it should.

This is heavily based on coolbho3k's NP patch. from Paul's mess we might
have a few function names, but not the contents.
This is not his, if he claims otherwise, he can go fuck himself.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Undervolt: clean it up, make it elegant and remove the constrain of fixed set of NUM_FREQS - its not dynamic based on the number of freqs used for scaling via an external function.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Undervolt: few minor changes, mostly for clarity.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Undervolt: add checks to disallow too extreme voltages, min and max.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>