Fix int15 return value for mainboard oprom handlers
These boards were returning 0 to indicate success when the realmode handler expects it to return 1 to indicate that it handled the interrupt. Change-Id: I2baeaf8c2774fa7668a8b2f2d9ad698302eefb21 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/50881 Reviewed-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/4168 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
committed by
Stefan Reinauer
parent
0e939155a3
commit
1c0540000d
@@ -194,7 +194,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res = -1;
|
int res = 0;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
||||||
__func__, X86_AX);
|
__func__, X86_AX);
|
||||||
@@ -210,7 +210,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CL = 0x00; /* Use video bios default */
|
X86_CL = 0x00; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -226,7 +226,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000; /* Use video bios default */
|
X86_CX = 0x0000; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -238,7 +238,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0001; /* Int-LVDS */
|
X86_CX = 0x0001; /* Int-LVDS */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch (X86_CH) {
|
switch (X86_CH) {
|
||||||
@@ -246,25 +246,25 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
X86_CH);
|
X86_CH);
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -64,7 +64,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res=-1;
|
int res = 0;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
||||||
__func__, X86_AX);
|
__func__, X86_AX);
|
||||||
@@ -80,7 +80,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CL = 0x00; /* Use video bios default */
|
X86_CL = 0x00; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -96,7 +96,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000; /* Use video bios default */
|
X86_CX = 0x0000; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -108,7 +108,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0003; /* eDP */
|
X86_CX = 0x0003; /* eDP */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch (X86_CH) {
|
switch (X86_CH) {
|
||||||
@@ -116,29 +116,29 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
X86_CH);
|
X86_CH);
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x5fac:
|
case 0x5fac:
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n", X86_AX);
|
printk(BIOS_DEBUG, "Unknown INT15 function %04x!\n", X86_AX);
|
||||||
|
@@ -52,7 +52,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res=-1;
|
int res = 0;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
||||||
__func__, X86_AX);
|
__func__, X86_AX);
|
||||||
@@ -68,7 +68,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CL = 0x00; /* Use video bios default */
|
X86_CL = 0x00; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -84,7 +84,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000; /* Use video bios default */
|
X86_CX = 0x0000; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -96,7 +96,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0003; /* eDP */
|
X86_CX = 0x0003; /* eDP */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch (X86_CH) {
|
switch (X86_CH) {
|
||||||
@@ -104,25 +104,25 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
X86_CH);
|
X86_CH);
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -46,7 +46,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res=-1;
|
int res = 0;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||||
@@ -62,7 +62,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0001;
|
X86_CX = 0x0001;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -78,7 +78,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -90,7 +90,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0003;
|
X86_CX = 0x0003;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch ((X86_CX >> 8) & 0xff) {
|
switch ((X86_CX >> 8) & 0xff) {
|
||||||
@@ -98,26 +98,26 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG,
|
printk(BIOS_DEBUG,
|
||||||
"Unknown INT15 5f70 function: 0x%02x\n",
|
"Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
((X86_CX >> 8) & 0xff));
|
((X86_CX >> 8) & 0xff));
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -52,7 +52,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res=-1;
|
int res = 0;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
printk(BIOS_DEBUG, "%s: INT15 function %04x!\n",
|
||||||
__func__, X86_AX);
|
__func__, X86_AX);
|
||||||
@@ -68,7 +68,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CL = 0x00; /* Use video bios default */
|
X86_CL = 0x00; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -84,7 +84,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000; /* Use video bios default */
|
X86_CX = 0x0000; /* Use video bios default */
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -96,7 +96,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0001;
|
X86_CX = 0x0001;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch (X86_CH) {
|
switch (X86_CH) {
|
||||||
@@ -104,25 +104,25 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
printk(BIOS_DEBUG, "Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
X86_CH);
|
X86_CH);
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res=-1;
|
int res = 0;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||||
@@ -61,7 +61,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0001;
|
X86_CX = 0x0001;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -77,7 +77,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -89,7 +89,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0003;
|
X86_CX = 0x0003;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch ((X86_CX >> 8) & 0xff) {
|
switch ((X86_CX >> 8) & 0xff) {
|
||||||
@@ -97,26 +97,26 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG,
|
printk(BIOS_DEBUG,
|
||||||
"Unknown INT15 5f70 function: 0x%02x\n",
|
"Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
((X86_CX >> 8) & 0xff));
|
((X86_CX >> 8) & 0xff));
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ void mainboard_suspend_resume(void)
|
|||||||
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
#if CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN
|
||||||
static int int15_handler(void)
|
static int int15_handler(void)
|
||||||
{
|
{
|
||||||
int res=-1;
|
int res = 1;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
printk(BIOS_DEBUG, "%s: AX=%04x BX=%04x CX=%04x DX=%04x\n",
|
||||||
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
__func__, X86_AX, X86_BX, X86_CX, X86_DX);
|
||||||
@@ -61,7 +61,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0001;
|
X86_CX = 0x0001;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f35:
|
case 0x5f35:
|
||||||
/*
|
/*
|
||||||
@@ -77,7 +77,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f51:
|
case 0x5f51:
|
||||||
/*
|
/*
|
||||||
@@ -89,7 +89,7 @@ static int int15_handler(void)
|
|||||||
*/
|
*/
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0003;
|
X86_CX = 0x0003;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 0x5f70:
|
case 0x5f70:
|
||||||
switch ((X86_CX >> 8) & 0xff) {
|
switch ((X86_CX >> 8) & 0xff) {
|
||||||
@@ -97,26 +97,26 @@ static int int15_handler(void)
|
|||||||
/* Get Mux */
|
/* Get Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
/* Set Mux */
|
/* Set Mux */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* Get SG/Non-SG mode */
|
/* Get SG/Non-SG mode */
|
||||||
X86_AX = 0x005f;
|
X86_AX = 0x005f;
|
||||||
X86_CX = 0x0000;
|
X86_CX = 0x0000;
|
||||||
res = 0;
|
res = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Interrupt was not handled */
|
/* Interrupt was not handled */
|
||||||
printk(BIOS_DEBUG,
|
printk(BIOS_DEBUG,
|
||||||
"Unknown INT15 5f70 function: 0x%02x\n",
|
"Unknown INT15 5f70 function: 0x%02x\n",
|
||||||
((X86_CX >> 8) & 0xff));
|
((X86_CX >> 8) & 0xff));
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user