diff options
| author | Dave Jones <davej@redhat.com> | 2003-09-09 23:35:48 +0100 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2003-09-09 23:35:48 +0100 |
| commit | e7a4d809d218a0cb17846757506bba3c47dc5dc0 (patch) | |
| tree | ed4371239f946991adcb48568e69cbb9bc05a3c3 /include | |
| parent | fa1d243483f93f00710fe61b75fc0b22773bd9a1 (diff) | |
[CPUFREQ] Merge speedstep-smi driver.
From: Hiroshi Miura <miura@da-cha.org>
Intel SpeedStep driver using a BIOS SMI call.
Quoting his original announcement:
"This driver is based on the information from
1. Microsoft Windows XP Document.
we can get the SMI interface values from ax=E980/int15 BIOS call.
2. Intel SpeedStep Applet Document.(from HP.com)
http://h18007.www1.hp.com/support/files/evonotebook/us/download/10631.html
" Adds code to request transition ownership when processing
the system critical resume message. When a critical hibernate occurs,
the Applet does not receive any system level notification. The change forces
the Applet to re-acquire transition ownership upon resume from a critical hibernate. "
This is informative. This saied that something 'ownership' call is needed on SMI
interface first.
3. Grover, Andrew's int 15h patch posted to cpufreq ml
Message-ID: <F760B14C9561B941B89469F59BA3A847E96E28@orsmsx401.jf.intel.com>
code which call BIOS to get SMI values. I included it.
4. Malik Martin's rev engineering results.
call is made with BX, CX, EDI register values.
and need signature 'ISG' when call.
find function values. bx=1(get) and bx=2(set)
5. Marc Lehmann's 'speedstep' utility,
sample of assembler code to call SMI.
6. My work.
find function to return max/min freq which system supportd. (bx=4)
more values are gotten, but I cannot understand...
find 'ownership' function value(bx=0, which is other than 1 2 4..).
ToDo(in pregress)
support governor "auto" and using smi_event call, imprement auto freqchange
feature.
test on 440BX/ZX platform.
Memo
module parameters are override result of an int 15h/eax=E890h call.
these parameter value are gotten from Windows XP registory."
Also includes some bugfixes, updates and workarounds from me.
NB: A lot of BIOS out there are buggy. You might want to try this driver
also with Intel's default values -- smi_cmd = 0x82 and smi_port = 0xb2
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/ist.h | 32 | ||||
| -rw-r--r-- | include/asm-i386/setup.h | 1 |
2 files changed, 33 insertions, 0 deletions
diff --git a/include/asm-i386/ist.h b/include/asm-i386/ist.h new file mode 100644 index 000000000000..d13d1e68afa9 --- /dev/null +++ b/include/asm-i386/ist.h @@ -0,0 +1,32 @@ +#ifndef _ASM_IST_H +#define _ASM_IST_H + +/* + * Include file for the interface to IST BIOS + * Copyright 2002 Andy Grover <andrew.grover@intel.com> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + */ + + +#ifdef __KERNEL__ + +struct ist_info { + unsigned long signature; + unsigned long command; + unsigned long event; + unsigned long perf_level; +}; + +extern struct ist_info ist_info; + +#endif /* __KERNEL__ */ +#endif /* _ASM_IST_H */ diff --git a/include/asm-i386/setup.h b/include/asm-i386/setup.h index 3160b947d2bd..9198a377748c 100644 --- a/include/asm-i386/setup.h +++ b/include/asm-i386/setup.h @@ -26,6 +26,7 @@ #define E820_MAP_NR (*(char*) (PARAM+E820NR)) #define E820_MAP ((struct e820entry *) (PARAM+E820MAP)) #define APM_BIOS_INFO (*(struct apm_bios_info *) (PARAM+0x40)) +#define IST_INFO (*(struct ist_info *) (PARAM+0x60)) #define DRIVE_INFO (*(struct drive_info_struct *) (PARAM+0x80)) #define SYS_DESC_TABLE (*(struct sys_desc_table_struct*)(PARAM+0xa0)) #define MOUNT_ROOT_RDONLY (*(unsigned short *) (PARAM+0x1F2)) |
