diff mbox

[10/21] Advertise pci irqs as active high in DSDT

Message ID 1255017566-26220-11-git-send-email-gleb@redhat.com
State Not Applicable
Headers show

Commit Message

Gleb Natapov Oct. 8, 2009, 3:59 p.m. UTC
Now that kvm emulates the ioapic polarity correctly, we must describe
the polarity correctly in the acpi tables. Otherwise pci interrupts won't
be delivered correctly.

Qemu pcbios commit 0c8d4b40a1eec2369c016b9be1c9175607e64a4b

Signed-off-by: Gleb Natapov <gleb@redhat.com>
---
 src/acpi-dsdt.dsl |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

Comments

Jamie Lokier Oct. 9, 2009, 10:56 a.m. UTC | #1
Gleb Natapov wrote:
> Now that kvm emulates the ioapic polarity correctly, we must describe
> the polarity correctly in the acpi tables. Otherwise pci interrupts won't
> be delivered correctly.

In another thread recently, wasn't it mentioned that the in-kernel
ioapic handles polarity correctly but the out-of-kernel ioapic does
not yet?

-- Jamie
Gleb Natapov Oct. 9, 2009, 11:37 a.m. UTC | #2
On Fri, Oct 09, 2009 at 11:56:14AM +0100, Jamie Lokier wrote:
> Gleb Natapov wrote:
> > Now that kvm emulates the ioapic polarity correctly, we must describe
> > the polarity correctly in the acpi tables. Otherwise pci interrupts won't
> > be delivered correctly.
> 
> In another thread recently, wasn't it mentioned that the in-kernel
> ioapic handles polarity correctly but the out-of-kernel ioapic does
> not yet?
> 
Correct and that is why out-of-kernel doesn't care about polarity. It
just ignores the bit. So for in-kernel ioapic to work you need this
change and it is nop for out-of-kernel one

--
			Gleb.
diff mbox

Patch

diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 490c017..9d6aba9 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -340,7 +340,7 @@  DefinitionBlock (
                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
                 Name(_UID, 1)
                 Name(_PRS, ResourceTemplate(){
-                    IRQ (Level, ActiveLow, Shared)
+                    IRQ (Level, ActiveHigh, Shared)
                         {3,4,5,6,7,9,10,11,12}
                 })
                 Method (_STA, 0, NotSerialized)
@@ -360,7 +360,7 @@  DefinitionBlock (
                 {
                     Name (PRR0, ResourceTemplate ()
                     {
-                        IRQ (Level, ActiveLow, Shared)
+                        IRQ (Level, ActiveHigh, Shared)
                             {1}
                     })
                     CreateWordField (PRR0, 0x01, TMP)
@@ -387,7 +387,7 @@  DefinitionBlock (
                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
                 Name(_UID, 2)
                 Name(_PRS, ResourceTemplate(){
-                    IRQ (Level, ActiveLow, Shared)
+                    IRQ (Level, ActiveHigh, Shared)
                         {3,4,5,6,7,9,10,11,12}
                 })
                 Method (_STA, 0, NotSerialized)
@@ -407,7 +407,7 @@  DefinitionBlock (
                 {
                     Name (PRR0, ResourceTemplate ()
                     {
-                        IRQ (Level, ActiveLow, Shared)
+                        IRQ (Level, ActiveHigh, Shared)
                             {1}
                     })
                     CreateWordField (PRR0, 0x01, TMP)
@@ -434,7 +434,7 @@  DefinitionBlock (
                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
                 Name(_UID, 3)
                 Name(_PRS, ResourceTemplate(){
-                    IRQ (Level, ActiveLow, Shared)
+                    IRQ (Level, ActiveHigh, Shared)
                         {3,4,5,6,7,9,10,11,12}
                 })
                 Method (_STA, 0, NotSerialized)
@@ -454,7 +454,7 @@  DefinitionBlock (
                 {
                     Name (PRR0, ResourceTemplate ()
                     {
-                        IRQ (Level, ActiveLow, Shared)
+                        IRQ (Level, ActiveHigh, Shared)
                             {1}
                     })
                     CreateWordField (PRR0, 0x01, TMP)
@@ -481,7 +481,7 @@  DefinitionBlock (
                 Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
                 Name(_UID, 4)
                 Name(_PRS, ResourceTemplate(){
-                    IRQ (Level, ActiveLow, Shared)
+                    IRQ (Level, ActiveHigh, Shared)
                         {3,4,5,6,7,9,10,11,12}
                 })
                 Method (_STA, 0, NotSerialized)
@@ -501,7 +501,7 @@  DefinitionBlock (
                 {
                     Name (PRR0, ResourceTemplate ()
                     {
-                        IRQ (Level, ActiveLow, Shared)
+                        IRQ (Level, ActiveHigh, Shared)
                             {1}
                     })
                     CreateWordField (PRR0, 0x01, TMP)