ARM: add auto hotplug driver

Conflicts:
	arch/arm/mach-msm/Kconfig
auto_hotplug: enable the min_online_cpus value

Use a module_param_cb to set the minimum number of online CPUs when the screen is on.

The values are between 1-4.

usage:
echo '1' > /sys/module/auto_hotplug/parameters/min_online_cpus
auto_hotplug: some tweaks
Several tweaks to try to improve battery life.
Add max_online_cpus feature
Fix up some various naming issues after inclusion of max_online_cpus code
auto_hotplug: initial min sampling rate at initialization and change
dynamic sampling rate eq.
Conflicts:
	arch/arm/kernel/auto_hotplug.c

Conflicts:
	arch/arm/kernel/auto_hotplug.c
auto_hotplug: Add tunable parameters enable/min sampling rate, set min
=2, max = 4 by default.
Conflicts:
	arch/arm/kernel/auto_hotplug.c
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

Conflicts:
	arch/arm/kernel/smp.c
	kernel/cpu.c