Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 238b706d authored by H. Peter Anvin's avatar H. Peter Anvin
Browse files

[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: default avatarH. Peter Anvin <hpa@zytor.com>
parent f77b1ab3
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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)
+3 −2
Original line number Diff line number Diff line
@@ -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 */
+6 −4
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
#include <asm-i386/ist.h>