USB force fast charging

-Use base from Chad Froebel <chadfroebel@gmail.com> so we continue to
use the same generic sysfs mechanism

-Referenced franco's git for drivers/usb/otg/msm_otg.c changes
https://github.com/franciscofranco/mako/commit/5a8a4c8e23c7e1df39c740b9ce1d5dda20b0ede3

Off by default

Turn on:
echo 1 > /sys/kernel/fast_charge/force_fast_charge

Turn off:
echo 0 > /sys/kernel/fast_charge/force_fast_charge

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
smp: patches from mainline 3.5 to hopefully help with hotplug
efficiency

Thomas Gleixner's generic-idle patches:

smp: Add task_struct argument to __cpu_up()
Preparatory patch to make the idle thread allocation for secondary
cpus generic.
http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=8239c25f47d2b318156993b15f33900a86ea5e17

smp: Add generic smpboot facility
Start a new file, which will hold SMP and CPU hotplug related generic
infrastructure.
http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=38498a67aa2cf8c80754b8d304bfacc10bc582b5

smp: Provide generic idle thread allocation
All SMP architectures have magic to fork the idle task and to store it
for reusage when cpu hotplug is enabled. Provide a generic
infrastructure for it.
Create/reinit the idle thread for the cpu which is brought up in the
generic code and hand the thread pointer to the architecture code via
__cpu_up().
Note, that fork_idle() is called via a workqueue, because this
guarantees that the idle thread does not get a reference to a user
space VM. This can happen when the boot process did not bring up all
possible cpus and a later cpu_up() is initiated via the sysfs
interface. In that case fork_idle() would be called in the context of
the user space task and take a reference on the user space VM.
http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=29d5e0476e1c4a513859e7858845ad172f560389

arm: Use generic idle thread allocation
http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=84ec6d5796e095e2f8698bd2b5d33849ed26d9e2
Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
msm: kgsl: we don't need this routine anymore. We save CPU cycles not going through this small, now deleted, piece of code.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
cpufreq: interactive: time for some performance boosts. Touch boost freq is bumped to 1512MHz. This makes an hell of a difference for smoothness and I've yet seen a battery life hit. Also adding two more performance boosts, one adds a new if condition that checks if the CPU load is >= 50% and if it is the frequency goes bumped to hispeed_freq. And if the load is < 50% instead of calculating the new_freq by dividing with 100, we now divide with up_threshold (85% by default) to get a bit more homogeneous frequency scaling amongst all the available frequencies. This is give a little bit of a performance boost if the load of the CPU barely justifies bigger freqs.

Signed-off-by: Francisco Franco <franciscofranco.1990@gmail.com>
Merge branch 'nightlies-4.3' of github.com:franciscofranco/mako into Purified.Kernel-test-4.3

Conflicts:
	arch/arm/mach-msm/Kconfig

 Changes to be committed:

	modified:   arch/Kconfig
	modified:   arch/arm/Kconfig
	modified:   arch/arm/include/asm/cpu.h
	modified:   arch/arm/kernel/return_address.c
	modified:   arch/arm/kernel/smp.c
	modified:   arch/arm/mach-msm/Kconfig
	modified:   arch/arm/mach-msm/Makefile
	modified:   drivers/cpufreq/cpufreq_interactive.c
	modified:   drivers/gpu/msm/kgsl_pwrscale_trustzone.c
	modified:   include/linux/smp.h
	modified:   kernel/Makefile
	modified:   kernel/cpu.c
	modified:   kernel/sched/core.c
	new file:   kernel/smpboot.c
	new file:   kernel/smpboot.h