 c1c3063446
			
		
	
	
	c1c3063446
	
	
	
		
			
			AMD Opteron processors before CG revision don't like C-states > 1. This solves the long standing bugzilla #5303 and probably some more on affected machines: http://bugzilla.kernel.org/show_bug.cgi?id=5303 [ tglx@linutronix.de: reworked the patch so it does not wreck ia64 ] Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			632 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			632 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_X86_ACPI_H
 | |
| #define _ASM_X86_ACPI_H
 | |
| 
 | |
| #ifdef CONFIG_X86_32
 | |
| # include "acpi_32.h"
 | |
| #else
 | |
| # include "acpi_64.h"
 | |
| #endif
 | |
| 
 | |
| #include <asm/processor.h>
 | |
| 
 | |
| /*
 | |
|  * Check if the CPU can handle C2 and deeper
 | |
|  */
 | |
| static inline unsigned int acpi_processor_cstate_check(unsigned int max_cstate)
 | |
| {
 | |
| 	/*
 | |
| 	 * Early models (<=5) of AMD Opterons are not supposed to go into
 | |
| 	 * C2 state.
 | |
| 	 *
 | |
| 	 * Steppings 0x0A and later are good
 | |
| 	 */
 | |
| 	if (boot_cpu_data.x86 == 0x0F &&
 | |
| 	    boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
 | |
| 	    boot_cpu_data.x86_model <= 0x05 &&
 | |
| 	    boot_cpu_data.x86_mask < 0x0A)
 | |
| 		return 1;
 | |
| 	else
 | |
| 		return max_cstate;
 | |
| }
 | |
| 
 | |
| #endif
 |