diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2014-02-08 13:34:09 +0100 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-06-16 18:00:10 +0100 |
commit | 126ef42a10e491015dcb40477b042db50c3d2acf (patch) | |
tree | 6b7f441db59cfc742f7d2cd99f46f05304b3321e /drivers/base/Kconfig | |
parent | 3d65586ebc11d3919d6fa0de0cd6153b9e399005 (diff) |
cpu: add generic support for CPU feature based module autoloading
This patch adds support for advertising optional CPU features over udev
using the modalias, and for declaring compatibility with/dependency upon
such a feature in a module.
The mapping between feature numbers and actual features should be provided
by the architecture in a file called <asm/cpufeature.h> which exports the
following functions/macros:
- cpu_feature(FEAT), a preprocessor macro that maps token FEAT to a
numeric index;
- bool cpu_have_feature(n), returning whether this CPU has support for
feature #n;
- MAX_CPU_FEATURES, an upper bound for 'n' in the previous function.
The feature can then be enabled by setting CONFIG_GENERIC_CPU_AUTOPROBE
for the architecture.
For instance, a module that registers its module init function using
module_cpu_feature_match(FEAT_X, module_init_function)
will be probed automatically when the CPU's support for the 'FEAT_X'
feature is advertised over udev, and will only allow the module to be
loaded by hand if the 'FEAT_X' feature is supported.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 67bad2fdb754dbef14596c0b5d28b3a12c8dfe84)
Signed-off-by: Mark Brown <broonie@linaro.org>
Conflicts:
drivers/base/cpu.c
Diffstat (limited to 'drivers/base/Kconfig')
-rw-r--r-- | drivers/base/Kconfig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 07abd9d76f7f..9634800e800f 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -187,6 +187,14 @@ config GENERIC_CPU_DEVICES bool default n +config HAVE_CPU_AUTOPROBE + def_bool ARCH_HAS_CPU_AUTOPROBE + +config GENERIC_CPU_AUTOPROBE + bool + depends on !ARCH_HAS_CPU_AUTOPROBE + select HAVE_CPU_AUTOPROBE + config SOC_BUS bool |