| 1 |
|
| 2 | |
| 3 | * (C) 2002 - 2003 Dominik Brodowski <[email protected]>
|
| 4 | *
|
| 5 | * Library for common functions for Intel SpeedStep v.1 and v.2 support
|
| 6 | *
|
| 7 | * BIG FAT DISCLAIMER: Work in progress code. Possibly *dangerous*
|
| 8 |
|
| 9 |
|
| 10 |
|
| 11 |
|
| 12 |
|
| 13 | enum speedstep_processor {
|
| 14 | SPEEDSTEP_CPU_PIII_C_EARLY = 0x00000001,
|
| 15 | SPEEDSTEP_CPU_PIII_C = 0x00000002,
|
| 16 | SPEEDSTEP_CPU_PIII_T = 0x00000003,
|
| 17 | SPEEDSTEP_CPU_P4M = 0x00000004,
|
| 18 | |
| 19 | * in speedstep_detect_processor(). However, their speed can be detected using
|
| 20 | * the speedstep_get_frequency() call.
|
| 21 | SPEEDSTEP_CPU_PM = 0xFFFFFF03,
|
| 22 | SPEEDSTEP_CPU_P4D = 0xFFFFFF04,
|
| 23 | SPEEDSTEP_CPU_PCORE = 0xFFFFFF05,
|
| 24 | };
|
| 25 |
|
| 26 |
|
| 27 |
|
| 28 | #define SPEEDSTEP_HIGH 0x00000000
|
| 29 | #define SPEEDSTEP_LOW 0x00000001
|
| 30 |
|
| 31 |
|
| 32 |
|
| 33 | extern enum speedstep_processor speedstep_detect_processor(void);
|
| 34 |
|
| 35 |
|
| 36 | extern unsigned int speedstep_get_frequency(enum speedstep_processor processor);
|
| 37 |
|
| 38 |
|
| 39 | |
| 40 | * set_state"'s first argument is either SPEEDSTEP_HIGH or
|
| 41 | * SPEEDSTEP_LOW; the second argument is zero so that no
|
| 42 | * cpufreq_notify_transition calls are initiated.
|
| 43 |
|
| 44 | extern int speedstep_get_freqs(enum speedstep_processor processor,
|
| 45 | unsigned int *low_speed,
|
| 46 | unsigned int *high_speed,
|
| 47 | unsigned int *transition_latency,
|
| 48 | void (*set_state)(unsigned int state));
|