ARM: 7011/1: Add ARM cpu topology definition

The affinity between ARM processors is defined in the MPIDR register.
We can identify which processors are in the same cluster,
and which ones have performance interdependency. We can define the
cpu topology of ARM platform, that is then used by sched_mc and sched_smt.

The default state of sched_mc and sched_smt config is disable.
When enabled, the behavior of the scheduler can be modified with
sched_mc_power_savings and sched_smt_power_savings sysfs interfaces.

Changes since v4 :
*  Remove unnecessary parentheses and blank lines

Changes since v3 :
* Update the format of printk message
* Remove blank line

Changes since v2 :
* Update the commit message and some comments

Changes since v1 :
* Update the commit message
* Add read_cpuid_mpidr in arch/arm/include/asm/cputype.h
* Modify header of arch/arm/kernel/topology.c
* Modify tests and manipulation of MPIDR's bitfields
* Modify the place and dependancy of the config
* Modify Noop functions

Change-Id: I3b38567e004fd78bc0580e52ae318e8702a5dd75
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ARM: 7182/1: ARM cpu topology: fix warning

kernel/sched.c:7354:2: warning: initialization from incompatible pointer type

Align cpu_coregroup_mask prototype interface with sched_domain_mask_f typedef
use int cpu instead of unsigned int cpu

Change-Id: Id6e47426eae0f330153fe13c0c1d32376c01901f
Cc: <stable@vger.kernel.org>
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ARM: topology: save cpu id of each core

Change-Id: Iea5aeadd9e416f10590a74805eba6ea5a955c469
ARM: topology: Update topology according to current sched_mc mode

Change-Id: I774d3ef904d114f546aa702552947635da6963e4
ARM: topology: Add a cpu_power function

Change-Id: I473823e213983c2dd34185f709667411c963e3cc
ARM: topology: Add a topology update notification

Change-Id: I2c775259a77d278cebd0aa711e4c42ddcfcbd8d8
ARM: cpu topology: Add asym topology flag for using cpu0 1st

Modify the CPU sched_domain flags in powersave mode for using the cpu0 in ched_mc powersave mode

Change-Id: I48c5d14c924291bad8a28b695c73240040e51c8a
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
ARM: cpu topology: add debugfs

Change-Id: I1d80715d378f2c92b0502229907c45460c43139b
sched_features: enable arch_power

Change-Id: I5e9b940abceba92cd46c7f47cb86ddba18115a95
mms_ts: Add sys interface to allow switching of touch boost

off or on (default)

Change-Id: Ibdc2e0bd29473fe8032c4bf828b2cd1d99a53bcb
mms_ts: Add sys interface to allow selecting touch boost frequency

credits to Yank555-lu

Change-Id: If6f6a369822d3849d2dc51a7a506b85348db11b0
mmc-core: Increase timeout limits to improve when using bad sd cards

credits to AndreiLux

Change-Id: I85f77cfee5ffda2621f4fabb9e109e58b4e80346
Enable cpu topology and sched mc
cpufreq: Add pegasusqplus governor

This is an adaption of the pegasusq governor from Perseus Samsung JB kernel.

All credits to AndreiLux.

Change-Id: I44238ae731cfd1a8c2b2d6fe1dc687325e076ac3

Conflicts:
	drivers/cpufreq/Kconfig
	drivers/cpufreq/Makefile
module.c: kernel: make an exception in module loading to load proprietary modules

credits to gokhanmoral

Change-Id: I9de61bf9bdb8ee9287d5889c44e12cc59840bc65
Enable Pegasus+
cpufreq: Revert nr_running() logic back to stock pegasusq implementation in pegasusqplus governor

Change-Id: Ib3da4056fbc3b4ab62454882ec6eb4d77d25cb79