Add SIO/FIOPS/ZEN/VR IO Schedulers

Signed-off-by: klozz <xxx.reptar.rawrr.xxx@gmail.com>
Add SIO/FIOPS/ZEN/VR IO Schedulers Signed-off-by: klozz <xxx.reptar.rawrr.xxx@gmail.com>
lib/memcopy: use glibc version

the kernel's memcpy and memmove is very inefficient. But the glibc version is
quite fast, in some cases it is 10 times faster than the kernel version. So I
introduce some memory copy macros and functions of the glibc to improve the
kernel version's performance.

The strategy of the memory functions is:
1. Copy bytes until the destination pointer is aligned.
2. Copy words in unrolled loops.  If the source and destination are not
   aligned in the same way, use word memory operations, but shift and merge
   two read words before writing.
3. Copy the few remaining bytes.

Signed-off-by: Miao Xie <miaox*******>
Signed-off-by: faux123 <reioux@gmail.com>
lib/string: use glibc version

the performance of memcpy and memmove of the general version is very
inefficient, this patch improved them.

Signed-off-by: Miao Xie <miaox*******>
Signed-off-by: faux123 <reioux@gmail.com>
Signed-off-by: klozz <xxx.reptar.rawrr.xxx@gmail.com>
LCD_KCAL: Introduce configurable kcal_min

Lower values such as 0-10 ultimately create a dark, washed out display, if a user accidently sets their kcal values to "0 0 0" they will loose visual control of the device, potentially requiring a hard reboot.
Introduce minimum kcal values to prevent this behavior.

Willing users can disable this protection by setting the kcal_min value to '0', however the default value of 35 is recommended.

sysfs:
echo "1/255" > /sys/devices/platform/kcal_ctrl.0/kcal_min

kcal_min will detect and block values attempting to set lower than itself, resetting the specific values to that of kcal_min. There is also behavior to adjust the kcal if kcal_min is set to a level higher than that of any kcal value(s).

Conflicts:
	arch/arm/mach-msm/board-htc-8974.c
LCD_KCAL: Prevent out-of-range input values