diff options
Diffstat (limited to 'arch/x86/include/asm/processor.h')
| -rw-r--r-- | arch/x86/include/asm/processor.h | 19 | 
1 files changed, 15 insertions, 4 deletions
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index 984a7bf17f6a..6aa741fbe1df 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h @@ -137,6 +137,17 @@ struct cpuinfo_x86 {  	u32			microcode;  }; +struct cpuid_regs { +	u32 eax, ebx, ecx, edx; +}; + +enum cpuid_regs_idx { +	CPUID_EAX = 0, +	CPUID_EBX, +	CPUID_ECX, +	CPUID_EDX, +}; +  #define X86_VENDOR_INTEL	0  #define X86_VENDOR_CYRIX	1  #define X86_VENDOR_AMD		2 @@ -178,6 +189,9 @@ extern void identify_secondary_cpu(struct cpuinfo_x86 *);  extern void print_cpu_info(struct cpuinfo_x86 *);  void print_cpu_msr(struct cpuinfo_x86 *);  extern void init_scattered_cpuid_features(struct cpuinfo_x86 *c); +extern u32 get_scattered_cpuid_leaf(unsigned int level, +				    unsigned int sub_leaf, +				    enum cpuid_regs_idx reg);  extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c);  extern void init_amd_cacheinfo(struct cpuinfo_x86 *c); @@ -588,8 +602,6 @@ static __always_inline void cpu_relax(void)  	rep_nop();  } -#define cpu_relax_lowlatency() cpu_relax() -  /* Stop speculative execution and prefetching of modified code. */  static inline void sync_core(void)  { @@ -621,10 +633,9 @@ static inline void sync_core(void)  }  extern void select_idle_routine(const struct cpuinfo_x86 *c); -extern void init_amd_e400_c1e_mask(void); +extern void amd_e400_c1e_apic_setup(void);  extern unsigned long		boot_option_idle_override; -extern bool			amd_e400_c1e_detected;  enum idle_boot_override {IDLE_NO_OVERRIDE=0, IDLE_HALT, IDLE_NOMWAIT,  			 IDLE_POLL};  |