Blame view

drivers/cpufreq/speedstep-lib.h 1.68 KB
81f7e3824   Eric Lee   Initial Release, ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  /*
   * (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 */
  enum speedstep_processor {
  	SPEEDSTEP_CPU_PIII_C_EARLY = 0x00000001,  /* Coppermine core */
  	SPEEDSTEP_CPU_PIII_C	   = 0x00000002,  /* Coppermine core */
  	SPEEDSTEP_CPU_PIII_T	   = 0x00000003,  /* Tualatin core */
  	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. */
  	SPEEDSTEP_CPU_PM	   = 0xFFFFFF03,  /* Pentium M  */
  	SPEEDSTEP_CPU_P4D	   = 0xFFFFFF04,  /* desktop P4  */
  	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 enum speedstep_processor speedstep_detect_processor(void);
  
  /* detect the current speed (in khz) of the processor */
  extern unsigned int speedstep_get_frequency(enum speedstep_processor 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(enum speedstep_processor processor,
  	unsigned int *low_speed,
  	unsigned int *high_speed,
  	unsigned int *transition_latency,
  	void (*set_state) (unsigned int state));