diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-07-18 17:19:30 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-07-25 12:02:21 -0700 |
commit | 238b706da1c6ebacc55986ac8668f3ede4621f2c (patch) | |
tree | e783783b364516eaa88e08a261ef7bc320db7355 | |
parent | f77b1ab383c8745447a3385e25729b92f2ec58a4 (diff) | |
download | op-kernel-dev-238b706da1c6ebacc55986ac8668f3ede4621f2c.zip op-kernel-dev-238b706da1c6ebacc55986ac8668f3ede4621f2c.tar.gz |
[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>
-rw-r--r-- | arch/i386/boot/main.c | 16 | ||||
-rw-r--r-- | include/asm-i386/bootparam.h | 5 | ||||
-rw-r--r-- | include/asm-i386/ist.h | 10 | ||||
-rw-r--r-- | include/asm-x86_64/ist.h | 1 |
4 files changed, 18 insertions, 14 deletions
diff --git a/arch/i386/boot/main.c b/arch/i386/boot/main.c index 7f01f96..0eeef39 100644 --- a/arch/i386/boot/main.c +++ b/arch/i386/boot/main.c @@ -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) diff --git a/include/asm-i386/bootparam.h b/include/asm-i386/bootparam.h index 211f3f9..b91b017 100644 --- a/include/asm-i386/bootparam.h +++ b/include/asm-i386/bootparam.h @@ -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 */ diff --git a/include/asm-i386/ist.h b/include/asm-i386/ist.h index d13d1e6..ef2003e 100644 --- a/include/asm-i386/ist.h +++ b/include/asm-i386/ist.h @@ -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; diff --git a/include/asm-x86_64/ist.h b/include/asm-x86_64/ist.h new file mode 100644 index 0000000..338857e --- /dev/null +++ b/include/asm-x86_64/ist.h @@ -0,0 +1 @@ +#include <asm-i386/ist.h> |