lkml.org 
[lkml]   [2003]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectCompile fix for ACPI in 2.4.22/x86-64

Marcelo unfortunately added an last minute ACPI update that changed
ACPI interfaces and broke x86-64 compilation. I didn't catch it in
time, so 2.4.22 does not compile out of the box for AMD64.

This patch fixes it.
You'll have to apply it when compiling 2.4.22 for x86-64

-Andi

----------

Update x86-64 for the ACPI interrupt link changes.

diff -u linux/arch/x86_64/kernel/io_apic.c-LINK linux/arch/x86_64/kernel/io_apic.c
--- linux/arch/x86_64/kernel/io_apic.c-LINK 2003-08-22 12:29:21.000000000 +0200
+++ linux/arch/x86_64/kernel/io_apic.c 2003-08-22 12:38:16.000000000 +0200
@@ -1762,7 +1762,7 @@
}


-int io_apic_set_pci_routing (int ioapic, int pin, int irq)
+int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level ,int active_high_low)
{
struct IO_APIC_route_entry entry;
unsigned long flags;
@@ -1785,18 +1785,21 @@
entry.dest_mode = INT_DELIVERY_MODE;
entry.dest.logical.logical_dest = TARGET_CPUS;
entry.mask = 1; /* Disabled (masked) */
- entry.trigger = 1; /* Level sensitive */
- entry.polarity = 1; /* Low active */
+ entry.trigger = edge_level;
+ entry.polarity = active_high_low;

add_pin_to_irq(irq, ioapic, pin);

entry.vector = assign_irq_vector(irq);

printk(KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry (%d-%d -> 0x%x -> "
- "IRQ %d)\n", ioapic,
- mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq);
+ "IRQ %d) Mode:%i Active:%i\n", ioapic,
+ mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq, edge_level, active_high_low);

- irq_desc[irq].handler = &ioapic_level_irq_type;
+ if (edge_level)
+ irq_desc[irq].handler = &ioapic_level_irq_type;
+ else
+ irq_desc[irq].handler = &ioapic_edge_irq_type;

set_intr_gate(entry.vector, interrupt[irq]);

diff -u linux/arch/x86_64/kernel/mpparse.c-LINK linux/arch/x86_64/kernel/mpparse.c
--- linux/arch/x86_64/kernel/mpparse.c-LINK 2003-08-22 12:29:21.000000000 +0200
+++ linux/arch/x86_64/kernel/mpparse.c 2003-08-22 12:29:25.000000000 +0200
@@ -923,7 +923,7 @@

ioapic_pin = irq - mp_ioapic_routing[ioapic].irq_start;

- io_apic_set_pci_routing(ioapic, ioapic_pin, irq);
+ io_apic_set_pci_routing(ioapic, ioapic_pin, irq, 1, 1);
}

#endif /*CONFIG_ACPI_HT_ONLY*/
@@ -939,6 +939,8 @@
int ioapic_pin = 0;
int irq = 0;
int idx, bit = 0;
+ int edge_level = 0;
+ int active_high_low = 0;

/*
* Parsing through the PCI Interrupt Routing Table (PRT) and program
@@ -949,11 +951,14 @@

/* Need to get irq for dynamic entry */
if (entry->link.handle) {
- irq = acpi_pci_link_get_irq(entry->link.handle, entry->link.index);
+ irq = acpi_pci_link_get_irq(entry->link.handle, entry->link.index, &edge_level, &active_high_low);
if (!irq)
continue;
- } else
+ } else {
+ edge_level = 1;
+ active_high_low = 1;
irq = entry->link.index;
+ }

irq = entry->link.index;
ioapic = mp_find_ioapic(irq);
@@ -983,7 +988,7 @@

mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);

- vector = io_apic_set_pci_routing(ioapic, ioapic_pin, irq);
+ vector = io_apic_set_pci_routing(ioapic, ioapic_pin, irq, edge_level, active_high_low);
if (vector)
entry->irq = irq;

diff -u linux/include/asm-x86_64/io_apic.h-LINK linux/include/asm-x86_64/io_apic.h
--- linux/include/asm-x86_64/io_apic.h-LINK 2003-08-22 12:29:21.000000000 +0200
+++ linux/include/asm-x86_64/io_apic.h 2003-08-22 12:29:25.000000000 +0200
@@ -148,6 +148,6 @@
extern int io_apic_get_unique_id (int ioapic, int apic_id);
extern int io_apic_get_version (int ioapic);
extern int io_apic_get_redir_entries (int ioapic);
-extern int io_apic_set_pci_routing (int ioapic, int pin, int irq);
+extern int io_apic_set_pci_routing (int ioapic, int pin, int irq, int, int);

#endif
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.034 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site