grml...
[seabios.git] / src / acpi-dsdt.dsl
index a5f0a4d8a12864a18c63d9057240b7d3c5ff95f9..7082b651a119d2887fd9b0f56c600a646f073235 100644 (file)
@@ -16,6 +16,9 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+
+ACPI_EXTRACT_ALL_CODE AmlCode
+
 DefinitionBlock (
     "acpi-dsdt.aml",    // Output Filename
     "DSDT",             // Signature
@@ -129,12 +132,6 @@ DefinitionBlock (
                 B0EJ, 32,
             }
 
-            OperationRegion(RMVC, SystemIO, 0xae0c, 0x04)
-            Field(RMVC, DWordAcc, NoLock, WriteAsZeros)
-            {
-                PCRM, 32,
-            }
-
             Name (_CRS, ResourceTemplate ()
             {
                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
@@ -236,7 +233,6 @@ DefinitionBlock (
                                  Return (0x00)
                          }
                  }
-                 Method(_RMV) { Return (0x00) }
         }
     }
 
@@ -248,7 +244,6 @@ DefinitionBlock (
     Scope(\_SB.PCI0) {
         Device (ISA) {
             Name (_ADR, 0x00010000)
-            Method(_RMV) { Return (0x00) }
 
             /* PIIX PCI to ISA irq remapping */
             OperationRegion (P40C, PCI_Config, 0x60, 0x04)
@@ -463,98 +458,16 @@ DefinitionBlock (
 
     Scope(\_SB.PCI0) {
         /* Methods called by bulk generated PCI devices below */
-        Method (PRMV, 1, NotSerialized) {
-            // _RMV method - check if device can be removed
-            If (And(\_SB.PCI0.PCRM, ShiftLeft(1, Arg0))) {
-                Return (0x1)
-            }
-            Return (0x0)
-        }
 
-#define gen_pci_device(slot)                                    \
-        Device(SL##slot) {                                      \
-            Name (_ADR, 0x##slot##0000)                         \
-            Method (_RMV) { Return (PRMV(0x##slot)) }           \
-            Name (_SUN, 0x##slot)                               \
-        }
-
-        /* VGA (slot 1) and ISA bus (slot 2) defined above */
-        gen_pci_device(03)
-        gen_pci_device(04)
-        gen_pci_device(05)
-        gen_pci_device(06)
-        gen_pci_device(07)
-        gen_pci_device(08)
-        gen_pci_device(09)
-        gen_pci_device(0a)
-        gen_pci_device(0b)
-        gen_pci_device(0c)
-        gen_pci_device(0d)
-        gen_pci_device(0e)
-        gen_pci_device(0f)
-        gen_pci_device(10)
-        gen_pci_device(11)
-        gen_pci_device(12)
-        gen_pci_device(13)
-        gen_pci_device(14)
-        gen_pci_device(15)
-        gen_pci_device(16)
-        gen_pci_device(17)
-        gen_pci_device(18)
-        gen_pci_device(19)
-        gen_pci_device(1a)
-        gen_pci_device(1b)
-        gen_pci_device(1c)
-        gen_pci_device(1d)
-        gen_pci_device(1e)
-        gen_pci_device(1f)
-
-        /* Methods called by bulk generated hotplug devices below */
+        /* Methods called by hotplug devices */
         Method (PCEJ, 1, NotSerialized) {
             // _EJ0 method - eject callback
             Store(ShiftLeft(1, Arg0), B0EJ)
             Return (0x0)
         }
 
-        /* Bulk generated PCI hotplug devices */
-#define hotplug_slot(slot)                              \
-        Device (S##slot) {                              \
-           Name (_ADR, 0x##slot##0000)                  \
-           Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
-           Name (_SUN, 0x##slot)                        \
-        }
-
-        hotplug_slot(01)
-        hotplug_slot(02)
-        hotplug_slot(03)
-        hotplug_slot(04)
-        hotplug_slot(05)
-        hotplug_slot(06)
-        hotplug_slot(07)
-        hotplug_slot(08)
-        hotplug_slot(09)
-        hotplug_slot(0a)
-        hotplug_slot(0b)
-        hotplug_slot(0c)
-        hotplug_slot(0d)
-        hotplug_slot(0e)
-        hotplug_slot(0f)
-        hotplug_slot(10)
-        hotplug_slot(11)
-        hotplug_slot(12)
-        hotplug_slot(13)
-        hotplug_slot(14)
-        hotplug_slot(15)
-        hotplug_slot(16)
-        hotplug_slot(17)
-        hotplug_slot(18)
-        hotplug_slot(19)
-        hotplug_slot(1a)
-        hotplug_slot(1b)
-        hotplug_slot(1c)
-        hotplug_slot(1d)
-        hotplug_slot(1e)
-        hotplug_slot(1f)
+       /* Hotplug notification method supplied by SSDT */
+       External (\_SB.PCI0.PCNT, MethodObj)
 
         /* PCI hotplug notify method */
         Method(PCNF, 0) {
@@ -572,42 +485,6 @@ DefinitionBlock (
             Return(One)
         }
 
-#define gen_pci_hotplug(slot)   \
-            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
-
-        Method(PCNT, 2) {
-            gen_pci_hotplug(01)
-            gen_pci_hotplug(02)
-            gen_pci_hotplug(03)
-            gen_pci_hotplug(04)
-            gen_pci_hotplug(05)
-            gen_pci_hotplug(06)
-            gen_pci_hotplug(07)
-            gen_pci_hotplug(08)
-            gen_pci_hotplug(09)
-            gen_pci_hotplug(0a)
-            gen_pci_hotplug(0b)
-            gen_pci_hotplug(0c)
-            gen_pci_hotplug(0d)
-            gen_pci_hotplug(0e)
-            gen_pci_hotplug(0f)
-            gen_pci_hotplug(10)
-            gen_pci_hotplug(11)
-            gen_pci_hotplug(12)
-            gen_pci_hotplug(13)
-            gen_pci_hotplug(14)
-            gen_pci_hotplug(15)
-            gen_pci_hotplug(16)
-            gen_pci_hotplug(17)
-            gen_pci_hotplug(18)
-            gen_pci_hotplug(19)
-            gen_pci_hotplug(1a)
-            gen_pci_hotplug(1b)
-            gen_pci_hotplug(1c)
-            gen_pci_hotplug(1d)
-            gen_pci_hotplug(1e)
-            gen_pci_hotplug(1f)
-        }
     }
 
 
@@ -631,10 +508,6 @@ DefinitionBlock (
             }
             Return (0x0B)
         }
-        Method (IQDI, 1, NotSerialized) {
-            // _DIS method - disable interrupt
-            Or(DerefOf(Arg0), 0x80, Arg0)
-        }
         Method (IQCR, 1, NotSerialized) {
             // _CRS method - get current settings
             Name (PRR0, ResourceTemplate ()
@@ -648,11 +521,13 @@ DefinitionBlock (
             }
             Return (PRR0)
         }
-        Method (IQSR, 2, NotSerialized) {
-            // _SRS method - set interrupt
-            CreateDWordField (Arg1, 0x05, PRRI)
-            Store (PRRI, Arg0)
-        }
+        // _DIS method - disable interrupt
+#define DISIRQ(PRQVAR)                          \
+            Or(PRQVAR, 0x80, PRQVAR)            \
+        // _SRS method - set interrupt
+#define SETIRQ(PRQVAR, IRQINFO)                         \
+            CreateDWordField (IRQINFO, 0x05, PRRI)      \
+            Store (PRRI, PRQVAR)
 
         Device(LNKA) {
             Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
@@ -662,9 +537,9 @@ DefinitionBlock (
                     { 5, 10, 11 }
             })
             Method (_STA, 0, NotSerialized) { Return (IQST(PRQ0)) }
-            Method (_DIS, 0, NotSerialized) { IQDI(RefOf(PRQ0)) }
+            Method (_DIS, 0, NotSerialized) { DISIRQ(PRQ0) }
             Method (_CRS, 0, NotSerialized) { Return (IQCR(PRQ0)) }
-            Method (_SRS, 1, NotSerialized) { IQSR(RefOf(PRQ0), Arg0) }
+            Method (_SRS, 1, NotSerialized) { SETIRQ(PRQ0, Arg0) }
         }
         Device(LNKB) {
             Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
@@ -674,9 +549,9 @@ DefinitionBlock (
                     { 5, 10, 11 }
             })
             Method (_STA, 0, NotSerialized) { Return (IQST(PRQ1)) }
-            Method (_DIS, 0, NotSerialized) { IQDI(RefOf(PRQ1)) }
+            Method (_DIS, 0, NotSerialized) { DISIRQ(PRQ1) }
             Method (_CRS, 0, NotSerialized) { Return (IQCR(PRQ1)) }
-            Method (_SRS, 1, NotSerialized) { IQSR(RefOf(PRQ1), Arg0) }
+            Method (_SRS, 1, NotSerialized) { SETIRQ(PRQ1, Arg0) }
         }
         Device(LNKC) {
             Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
@@ -686,9 +561,9 @@ DefinitionBlock (
                     { 5, 10, 11 }
             })
             Method (_STA, 0, NotSerialized) { Return (IQST(PRQ2)) }
-            Method (_DIS, 0, NotSerialized) { IQDI(RefOf(PRQ2)) }
+            Method (_DIS, 0, NotSerialized) { DISIRQ(PRQ2) }
             Method (_CRS, 0, NotSerialized) { Return (IQCR(PRQ2)) }
-            Method (_SRS, 1, NotSerialized) { IQSR(RefOf(PRQ2), Arg0) }
+            Method (_SRS, 1, NotSerialized) { SETIRQ(PRQ2, Arg0) }
         }
         Device(LNKD) {
             Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
@@ -698,9 +573,9 @@ DefinitionBlock (
                     { 5, 10, 11 }
             })
             Method (_STA, 0, NotSerialized) { Return (IQST(PRQ3)) }
-            Method (_DIS, 0, NotSerialized) { IQDI(RefOf(PRQ3)) }
+            Method (_DIS, 0, NotSerialized) { DISIRQ(PRQ3) }
             Method (_CRS, 0, NotSerialized) { Return (IQCR(PRQ3)) }
-            Method (_SRS, 1, NotSerialized) { IQSR(RefOf(PRQ3), Arg0) }
+            Method (_SRS, 1, NotSerialized) { SETIRQ(PRQ3, Arg0) }
         }
         Device(LNKS) {
             Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
@@ -710,7 +585,7 @@ DefinitionBlock (
                     { 9 }
             })
             Method (_STA, 0, NotSerialized) { Return (IQST(PRQ0)) }
-            Method (_DIS, 0, NotSerialized) { IQDI(RefOf(PRQ0)) }
+            Method (_DIS, 0, NotSerialized) { DISIRQ(PRQ0) }
             Method (_CRS, 0, NotSerialized) { Return (IQCR(PRQ0)) }
         }
     }