diff options
Diffstat (limited to 'arch/x86/kernel/cpu/transmeta.c')
| -rw-r--r-- | arch/x86/kernel/cpu/transmeta.c | 32 | 
1 files changed, 17 insertions, 15 deletions
diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c index b911a2c61b8..52b3fefbd5a 100644 --- a/arch/x86/kernel/cpu/transmeta.c +++ b/arch/x86/kernel/cpu/transmeta.c @@ -5,6 +5,18 @@  #include <asm/msr.h>  #include "cpu.h" +static void __cpuinit early_init_transmeta(struct cpuinfo_x86 *c) +{ +	u32 xlvl; + +	/* Transmeta-defined flags: level 0x80860001 */ +	xlvl = cpuid_eax(0x80860000); +	if ((xlvl & 0xffff0000) == 0x80860000) { +		if (xlvl >= 0x80860001) +			c->x86_capability[2] = cpuid_edx(0x80860001); +	} +} +  static void __cpuinit init_transmeta(struct cpuinfo_x86 *c)  {  	unsigned int cap_mask, uk, max, dummy; @@ -12,7 +24,8 @@ static void __cpuinit init_transmeta(struct cpuinfo_x86 *c)  	unsigned int cpu_rev, cpu_freq = 0, cpu_flags, new_cpu_rev;  	char cpu_info[65]; -	get_model_name(c);	/* Same as AMD/Cyrix */ +	early_init_transmeta(c); +  	display_cacheinfo(c);  	/* Print CMS and CPU revision */ @@ -85,23 +98,12 @@ static void __cpuinit init_transmeta(struct cpuinfo_x86 *c)  #endif  } -static void __cpuinit transmeta_identify(struct cpuinfo_x86 *c) -{ -	u32 xlvl; - -	/* Transmeta-defined flags: level 0x80860001 */ -	xlvl = cpuid_eax(0x80860000); -	if ((xlvl & 0xffff0000) == 0x80860000) { -		if (xlvl >= 0x80860001) -			c->x86_capability[2] = cpuid_edx(0x80860001); -	} -} -  static struct cpu_dev transmeta_cpu_dev __cpuinitdata = {  	.c_vendor	= "Transmeta",  	.c_ident	= { "GenuineTMx86", "TransmetaCPU" }, +	.c_early_init	= early_init_transmeta,  	.c_init		= init_transmeta, -	.c_identify	= transmeta_identify, +	.c_x86_vendor	= X86_VENDOR_TRANSMETA,  }; -cpu_vendor_dev_register(X86_VENDOR_TRANSMETA, &transmeta_cpu_dev); +cpu_dev_register(transmeta_cpu_dev);  | 
