Commit 7ea74153 authored by Len Brown's avatar Len Brown

[ACPI] create platform_rename_gsi() so ES7000 can munge IRQ numbers

from Natalie Protasevich
parent 482f3334
......@@ -1029,6 +1029,8 @@ extern FADT_DESCRIPTOR acpi_fadt;
#ifdef CONFIG_ACPI_PCI
int (*platform_rename_gsi)(int ioapic, int gsi);
void __init mp_parse_prt (void)
{
struct list_head *node = NULL;
......@@ -1072,10 +1074,8 @@ void __init mp_parse_prt (void)
continue;
ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base;
if (es7000_plat) {
if (!ioapic && (gsi < 16))
gsi += 16;
}
if (platform_rename_gsi)
gsi = platform_rename_gsi(ioapic, gsi);
/*
* Avoid pin reprogramming. PRTs typically include entries
......
......@@ -50,6 +50,29 @@ struct mip_reg *mip_reg;
struct mip_reg *host_reg;
int mip_port;
unsigned long mip_addr, host_addr;
extern int (*platform_rename_gsi)();
static int __init
es7000_rename_gsi(int ioapic, int gsi)
{
if (ioapic)
return gsi;
else {
if (gsi == 0)
return 13;
if (gsi == 1)
return 16;
if (gsi == 4)
return 17;
if (gsi == 6)
return 18;
if (gsi == 7)
return 19;
if (gsi == 8)
return 20;
return gsi;
}
}
/*
* Parse the OEM Table
......@@ -115,6 +138,7 @@ parse_unisys_oem (char *oemptr, int oem_entries)
} else {
printk("\nEnabling ES7000 specific features...\n");
es7000_plat = 1;
platform_rename_gsi = es7000_rename_gsi;
}
return;
}
......
......@@ -18,7 +18,8 @@
* the "ordinary" interrupt call gates. For legacy reasons, the ISA
* interrupts should be initialised here if the machine emulates a PC
* in any way.
**/void __init pre_intr_init_hook(void)
**/
void __init pre_intr_init_hook(void)
{
init_ISA_irqs();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment