diff mbox

[v2,33/51] pc: acpi: piix4: move IQCR() into SSDT

Message ID 1451322178-261185-33-git-send-email-imammedo@redhat.com
State New
Headers show

Commit Message

Igor Mammedov Dec. 28, 2015, 5:02 p.m. UTC
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/i386/acpi-build.c  | 20 ++++++++++++++++++++
 hw/i386/acpi-dsdt.dsl | 11 -----------
 2 files changed, 20 insertions(+), 11 deletions(-)
diff mbox

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 891a29c..45bc6b1 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1468,6 +1468,7 @@  static void build_piix4_pci0_int(Aml *table)
     Aml *dev;
     Aml *crs;
     Aml *field;
+    Aml *if_ctx;
     Aml *method;
     uint32_t irqs;
     Aml *sb_scope = aml_scope("_SB");
@@ -1479,6 +1480,25 @@  static void build_piix4_pci0_int(Aml *table)
     aml_append(field, aml_named_field("PRQ3", 8));
     aml_append(sb_scope, field);
 
+    /* _CRS method - get current settings */
+    method = aml_method("IQCR", 1, AML_SERIALIZED);
+    {
+        crs = aml_resource_template();
+        irqs = 0;
+        aml_append(crs, aml_interrupt(AML_CONSUMER, AML_LEVEL,
+                                      AML_ACTIVE_HIGH, AML_SHARED, &irqs, 1));
+        aml_append(method, aml_name_decl("PRR0", crs));
+
+        aml_append(method,
+            aml_create_dword_field(aml_name("PRR0"), aml_int(5), "PRRI"));
+
+        if_ctx = aml_if(aml_lless(aml_arg(0), aml_int(0x80)));
+        aml_append(if_ctx, aml_store(aml_arg(0), aml_name("PRRI")));
+        aml_append(method, if_ctx);
+        aml_append(method, aml_return(aml_name("PRR0")));
+    }
+    aml_append(sb_scope, method);
+
     aml_append(sb_scope, build_link_dev("LNKA", 0, aml_name("PRQ0")));
     aml_append(sb_scope, build_link_dev("LNKB", 1, aml_name("PRQ1")));
     aml_append(sb_scope, build_link_dev("LNKC", 2, aml_name("PRQ2")));
diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl
index b74cffd..1f58ec4 100644
--- a/hw/i386/acpi-dsdt.dsl
+++ b/hw/i386/acpi-dsdt.dsl
@@ -140,17 +140,6 @@  DefinitionBlock (
             }
             Return (0x0B)
         }
-        Method(IQCR, 1, Serialized) {
-            // _CRS method - get current settings
-            Name(PRR0, ResourceTemplate() {
-                Interrupt(, Level, ActiveHigh, Shared) { 0 }
-            })
-            CreateDWordField(PRR0, 0x05, PRRI)
-            If (LLess(Arg0, 0x80)) {
-                Store(Arg0, PRRI)
-            }
-            Return (PRR0)
-        }
 
         External(LNKA, DeviceObj)
         External(LNKB, DeviceObj)