lkml.org 
[lkml]   [2009]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 10/10] xen/apic: program the apic triggering and polarity properly
Date
From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

We were passing the ACPI triggering and polarity levels directly into
the apic - but they have reversed values. The result was that
all the level-triggered interrupts were edge, and vice-versa.
It's surprising that anything worked at all, but now AHCI works
for me.

Thanks for Gerd Hoffmann for noticing this.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
arch/x86/xen/pci.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
index d661c74..fb408ce 100644
--- a/arch/x86/xen/pci.c
+++ b/arch/x86/xen/pci.c
@@ -53,7 +53,9 @@ int xen_register_gsi(u32 gsi, int triggering, int polarity)
printk(KERN_DEBUG "xen: --> irq=%d\n", irq);

if (irq > 0)
- xen_set_io_apic_routing(irq, triggering, polarity);
+ xen_set_io_apic_routing(irq,
+ triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
+ polarity == ACPI_ACTIVE_HIGH ? 0 : 1);

return irq;
}
--
1.6.0.6


\
 
 \ /
  Last update: 2009-02-28 03:19    [W:0.064 / U:0.220 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site