MIPS: Enable GENERIC_CPU_AUTOPROBE
Add missing macros and methods that are required by CONFIG_GENERIC_CPU_AUTOPROBE: MAX_CPU_FEATURES, cpu_have_feature(), cpu_feature(). Also set a default elf platform as currently it is not set for most MIPS platforms resulting in incorrectly specified modalias values in cpu autoprobe ("cpu:type:(null):feature:..."). Export 'elf_hwcap' symbol so that it can be accessed from modules that use module_cpu_feature_match() Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/15395/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
39da7c509a
commit
05510f2b48
|
@ -46,6 +46,7 @@ config MIPS
|
|||
select ARCH_DISCARD_MEMBLOCK
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select BUILDTIME_EXTABLE_SORT
|
||||
select GENERIC_CPU_AUTOPROBE
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
|
||||
select GENERIC_CMOS_UPDATE
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* CPU feature definitions for module loading, used by
|
||||
* module_cpu_feature_match(), see uapi/asm/hwcap.h for MIPS CPU features.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_CPUFEATURE_H
|
||||
#define __ASM_CPUFEATURE_H
|
||||
|
||||
#include <uapi/asm/hwcap.h>
|
||||
#include <asm/elf.h>
|
||||
|
||||
#define MAX_CPU_FEATURES (8 * sizeof(elf_hwcap))
|
||||
|
||||
#define cpu_feature(x) ilog2(HWCAP_ ## x)
|
||||
|
||||
static inline bool cpu_have_feature(unsigned int num)
|
||||
{
|
||||
return elf_hwcap & (1UL << num);
|
||||
}
|
||||
|
||||
#endif /* __ASM_CPUFEATURE_H */
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
/* Hardware capabilities */
|
||||
unsigned int elf_hwcap __read_mostly;
|
||||
EXPORT_SYMBOL_GPL(elf_hwcap);
|
||||
|
||||
/*
|
||||
* Get the FPU Implementation/Revision.
|
||||
|
@ -1946,6 +1947,12 @@ void cpu_probe(void)
|
|||
struct cpuinfo_mips *c = ¤t_cpu_data;
|
||||
unsigned int cpu = smp_processor_id();
|
||||
|
||||
/*
|
||||
* Set a default elf platform, cpu probe may later
|
||||
* overwrite it with a more precise value
|
||||
*/
|
||||
set_elf_platform(cpu, "mips");
|
||||
|
||||
c->processor_id = PRID_IMP_UNKNOWN;
|
||||
c->fpu_id = FPIR_IMP_NONE;
|
||||
c->cputype = CPU_UNKNOWN;
|
||||
|
|
Loading…
Reference in New Issue