[x86 setup] Make struct ist_info cross-architecture, and use in setup code

Make "struct ist_info" valid on both i386 and x86-64, and use the
structure by name in the setup code.  Additionally, "Intel SpeedStep
IST" is redundant, refer to it as IST consistently.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin 2007-07-18 17:19:30 -07:00
parent f77b1ab383
commit 238b706da1
4 changed files with 18 additions and 14 deletions

View file

@ -73,15 +73,15 @@ static void keyboard_set_repeat(void)
}
/*
* Get Intel SpeedStep IST information.
* Get Intel SpeedStep (IST) information.
*/
static void query_speedstep_ist(void)
static void query_ist(void)
{
asm("int $0x15"
: "=a" (boot_params.speedstep_info[0]),
"=b" (boot_params.speedstep_info[1]),
"=c" (boot_params.speedstep_info[2]),
"=d" (boot_params.speedstep_info[3])
: "=a" (boot_params.ist_info.signature),
"=b" (boot_params.ist_info.command),
"=c" (boot_params.ist_info.event),
"=d" (boot_params.ist_info.perf_level)
: "a" (0x0000e980), /* IST Support */
"d" (0x47534943)); /* Request value */
}
@ -144,8 +144,8 @@ void main(void)
query_voyager();
#endif
/* Query SpeedStep IST information */
query_speedstep_ist();
/* Query Intel SpeedStep (IST) information */
query_ist();
/* Query APM information */
#if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE)

View file

@ -4,8 +4,9 @@
#include <linux/types.h>
#include <linux/screen_info.h>
#include <linux/apm_bios.h>
#include <asm/e820.h>
#include <linux/edd.h>
#include <asm/e820.h>
#include <asm/ist.h>
#include <video/edid.h>
struct setup_header {
@ -59,7 +60,7 @@ struct boot_params {
struct screen_info screen_info; /* 0x000 */
struct apm_bios_info apm_bios_info; /* 0x040 */
u8 _pad2[12]; /* 0x054 */
u32 speedstep_info[4]; /* 0x060 */
struct ist_info ist_info; /* 0x060 */
u8 _pad3[16]; /* 0x070 */
u8 hd0_info[16]; /* obsolete! */ /* 0x080 */
u8 hd1_info[16]; /* obsolete! */ /* 0x090 */

View file

@ -19,11 +19,13 @@
#ifdef __KERNEL__
#include <linux/types.h>
struct ist_info {
unsigned long signature;
unsigned long command;
unsigned long event;
unsigned long perf_level;
u32 signature;
u32 command;
u32 event;
u32 perf_level;
};
extern struct ist_info ist_info;

1
include/asm-x86_64/ist.h Normal file
View file

@ -0,0 +1 @@
#include <asm-i386/ist.h>