50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * (C) 2002 - 2003 Dominik Brodowski <linux@brodo.de>
 | |
|  *
 | |
|  *  Licensed under the terms of the GNU GPL License version 2.
 | |
|  *
 | |
|  *  Library for common functions for Intel SpeedStep v.1 and v.2 support
 | |
|  *
 | |
|  *  BIG FAT DISCLAIMER: Work in progress code. Possibly *dangerous*
 | |
|  */
 | |
| 
 | |
| 
 | |
| 
 | |
| /* processors */
 | |
| 
 | |
| #define SPEEDSTEP_CPU_PIII_C_EARLY	0x00000001  /* Coppermine core */
 | |
| #define SPEEDSTEP_CPU_PIII_C		0x00000002  /* Coppermine core */
 | |
| #define SPEEDSTEP_CPU_PIII_T		0x00000003  /* Tualatin core */
 | |
| #define SPEEDSTEP_CPU_P4M		0x00000004  /* P4-M  */
 | |
| 
 | |
| /* the following processors are not speedstep-capable and are not auto-detected
 | |
|  * in speedstep_detect_processor(). However, their speed can be detected using
 | |
|  * the speedstep_get_frequency() call. */
 | |
| #define SPEEDSTEP_CPU_PM		0xFFFFFF03  /* Pentium M  */
 | |
| #define SPEEDSTEP_CPU_P4D		0xFFFFFF04  /* desktop P4  */
 | |
| #define SPEEDSTEP_CPU_PCORE		0xFFFFFF05  /* Core */
 | |
| 
 | |
| /* speedstep states -- only two of them */
 | |
| 
 | |
| #define SPEEDSTEP_HIGH	0x00000000
 | |
| #define SPEEDSTEP_LOW	0x00000001
 | |
| 
 | |
| 
 | |
| /* detect a speedstep-capable processor */
 | |
| extern unsigned int speedstep_detect_processor (void);
 | |
| 
 | |
| /* detect the current speed (in khz) of the processor */
 | |
| extern unsigned int speedstep_get_frequency(unsigned int processor);
 | |
| 
 | |
| 
 | |
| /* detect the low and high speeds of the processor. The callback
 | |
|  * set_state"'s first argument is either SPEEDSTEP_HIGH or
 | |
|  * SPEEDSTEP_LOW; the second argument is zero so that no
 | |
|  * cpufreq_notify_transition calls are initiated.
 | |
|  */
 | |
| extern unsigned int speedstep_get_freqs(unsigned int processor,
 | |
| 	unsigned int *low_speed,
 | |
| 	unsigned int *high_speed,
 | |
| 	unsigned int *transition_latency,
 | |
| 	void (*set_state) (unsigned int state));
 |