diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-07-18 20:19:30 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-07-25 15:02:21 -0400 |
commit | 238b706da1c6ebacc55986ac8668f3ede4621f2c (patch) | |
tree | e783783b364516eaa88e08a261ef7bc320db7355 | |
parent | f77b1ab383c8745447a3385e25729b92f2ec58a4 (diff) |
[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 7f01f96c4fb8..0eeef3989a17 100644 --- a/arch/i386/boot/main.c +++ b/arch/i386/boot/main.c | |||
@@ -73,15 +73,15 @@ static void keyboard_set_repeat(void) | |||
73 | } | 73 | } |
74 | 74 | ||
75 | /* | 75 | /* |
76 | * Get Intel SpeedStep IST information. | 76 | * Get Intel SpeedStep (IST) information. |
77 | */ | 77 | */ |
78 | static void query_speedstep_ist(void) | 78 | static void query_ist(void) |
79 | { | 79 | { |
80 | asm("int $0x15" | 80 | asm("int $0x15" |
81 | : "=a" (boot_params.speedstep_info[0]), | 81 | : "=a" (boot_params.ist_info.signature), |
82 | "=b" (boot_params.speedstep_info[1]), | 82 | "=b" (boot_params.ist_info.command), |
83 | "=c" (boot_params.speedstep_info[2]), | 83 | "=c" (boot_params.ist_info.event), |
84 | "=d" (boot_params.speedstep_info[3]) | 84 | "=d" (boot_params.ist_info.perf_level) |
85 | : "a" (0x0000e980), /* IST Support */ | 85 | : "a" (0x0000e980), /* IST Support */ |
86 | "d" (0x47534943)); /* Request value */ | 86 | "d" (0x47534943)); /* Request value */ |
87 | } | 87 | } |
@@ -144,8 +144,8 @@ void main(void) | |||
144 | query_voyager(); | 144 | query_voyager(); |
145 | #endif | 145 | #endif |
146 | 146 | ||
147 | /* Query SpeedStep IST information */ | 147 | /* Query Intel SpeedStep (IST) information */ |
148 | query_speedstep_ist(); | 148 | query_ist(); |
149 | 149 | ||
150 | /* Query APM information */ | 150 | /* Query APM information */ |
151 | #if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE) | 151 | #if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE) |
diff --git a/include/asm-i386/bootparam.h b/include/asm-i386/bootparam.h index 211f3f972a57..b91b01783e4b 100644 --- a/include/asm-i386/bootparam.h +++ b/include/asm-i386/bootparam.h | |||
@@ -4,8 +4,9 @@ | |||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/screen_info.h> | 5 | #include <linux/screen_info.h> |
6 | #include <linux/apm_bios.h> | 6 | #include <linux/apm_bios.h> |
7 | #include <asm/e820.h> | ||
8 | #include <linux/edd.h> | 7 | #include <linux/edd.h> |
8 | #include <asm/e820.h> | ||
9 | #include <asm/ist.h> | ||
9 | #include <video/edid.h> | 10 | #include <video/edid.h> |
10 | 11 | ||
11 | struct setup_header { | 12 | struct setup_header { |
@@ -59,7 +60,7 @@ struct boot_params { | |||
59 | struct screen_info screen_info; /* 0x000 */ | 60 | struct screen_info screen_info; /* 0x000 */ |
60 | struct apm_bios_info apm_bios_info; /* 0x040 */ | 61 | struct apm_bios_info apm_bios_info; /* 0x040 */ |
61 | u8 _pad2[12]; /* 0x054 */ | 62 | u8 _pad2[12]; /* 0x054 */ |
62 | u32 speedstep_info[4]; /* 0x060 */ | 63 | struct ist_info ist_info; /* 0x060 */ |
63 | u8 _pad3[16]; /* 0x070 */ | 64 | u8 _pad3[16]; /* 0x070 */ |
64 | u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ | 65 | u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ |
65 | u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ | 66 | u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ |
diff --git a/include/asm-i386/ist.h b/include/asm-i386/ist.h index d13d1e68afa9..ef2003ebc6f9 100644 --- a/include/asm-i386/ist.h +++ b/include/asm-i386/ist.h | |||
@@ -19,11 +19,13 @@ | |||
19 | 19 | ||
20 | #ifdef __KERNEL__ | 20 | #ifdef __KERNEL__ |
21 | 21 | ||
22 | #include <linux/types.h> | ||
23 | |||
22 | struct ist_info { | 24 | struct ist_info { |
23 | unsigned long signature; | 25 | u32 signature; |
24 | unsigned long command; | 26 | u32 command; |
25 | unsigned long event; | 27 | u32 event; |
26 | unsigned long perf_level; | 28 | u32 perf_level; |
27 | }; | 29 | }; |
28 | 30 | ||
29 | extern struct ist_info ist_info; | 31 | 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 000000000000..338857ecbc68 --- /dev/null +++ b/include/asm-x86_64/ist.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-i386/ist.h> | |||