]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Vlv2DeviceRefCodePkg/AcpiTablesPCAT/INTELGFX.ASL
Upload BSD-licensed Vlv2TbltDevicePkg and Vlv2DeviceRefCodePkg to
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / AcpiTablesPCAT / INTELGFX.ASL
diff --git a/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/INTELGFX.ASL b/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/INTELGFX.ASL
new file mode 100644 (file)
index 0000000..c8f663a
--- /dev/null
@@ -0,0 +1,885 @@
+/*++\r
+\r
+Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved\r
+\r
+  This program and the accompanying materials are licensed and made available under\r
+  the terms and conditions of the BSD License that accompanies this distribution.\r
+  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php.\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+\r
+\r
+Module Name:\r
+\r
+  INTELGFX.ASL\r
+\r
+Abstract:\r
+\r
+  IGD OpRegion/Software ACPI Reference Code for the Baytrail Family.\r
+\r
+--*/\r
+\r
+// Enable/Disable Output Switching.  In WIN2K/WINXP, _DOS = 0 will\r
+// get called during initialization to prepare for an ACPI Display\r
+// Switch Event.  During an ACPI Display Switch, the OS will call\r
+// _DOS = 2 immediately after a Notify=0x80 to temporarily disable\r
+// all Display Switching.  After ACPI Display Switching is complete,\r
+// the OS will call _DOS = 0 to re-enable ACPI Display Switching.\r
+\r
+Method(_DOS,1)\r
+{\r
+  // Store Display Switching and LCD brightness BIOS control bit\r
+  Store(And(Arg0,7),DSEN)\r
+}\r
+\r
+// Enumerate the Display Environment.  This method will return\r
+// valid addresses for all display device encoders present in the\r
+// system.  The Miniport Driver will reject the addresses for every\r
+// encoder that does not have an attached display device.  After\r
+// enumeration is complete, the OS will call the _DGS methods\r
+// during a display switch only for the addresses accepted by the\r
+// Miniport Driver.  For hot-insertion and removal of display\r
+// devices, a re-enumeration notification will be required so the\r
+// address of the newly present display device will be accepted by\r
+// the Miniport Driver.\r
+\r
+Method(_DOD, 0, Serialized)\r
+{\r
+  Store(0, NDID)\r
+  If(LNotEqual(DIDL, Zero))\r
+  {\r
+    Store(SDDL(DIDL),DID1)\r
+  }\r
+  If(LNotEqual(DDL2, Zero))\r
+  {\r
+    Store(SDDL(DDL2),DID2)\r
+  }\r
+  If(LNotEqual(DDL3, Zero))\r
+  {\r
+    Store(SDDL(DDL3),DID3)\r
+  }\r
+  If(LNotEqual(DDL4, Zero))\r
+  {\r
+    Store(SDDL(DDL4),DID4)\r
+  }\r
+  If(LNotEqual(DDL5, Zero))\r
+  {\r
+    Store(SDDL(DDL5),DID5)\r
+  }\r
+\r
+  // TODO - This level of flexibility is not needed for a true\r
+  //      OEM design.  Simply determine the greatest number of\r
+  //      encoders the platform will suppport then remove all\r
+  //      return packages beyond that value.  Note that for\r
+  //      current silicon, the maximum number of encoders\r
+  //      possible is 5.\r
+\r
+  If(LEqual(NDID,1))\r
+  {\r
+    If (LNOTEqual (ISPD, 0))\r
+    {\r
+      Name(TMP0,Package() {0xFFFFFFFF,0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP0,0))\r
+      //Add ISP device to GFX0\r
+      Store(0x00020F38, Index(TMP0,1))\r
+      Return(TMP0)\r
+    } Else\r
+    {\r
+      Name(TMP1,Package() {0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP1,0))\r
+      Return(TMP1)\r
+    }\r
+  }\r
+\r
+  If(LEqual(NDID,2))\r
+  {\r
+    If (LNOTEqual (ISPD, 0))\r
+    {\r
+      Name(TMP2,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP2,0))\r
+      Store(Or(0x10000,DID2),Index(TMP2,1))\r
+      //Add ISP device to GFX0\r
+      Store(0x00020F38, Index(TMP2,2))\r
+      Return(TMP2)\r
+    } Else\r
+    {\r
+      Name(TMP3,Package() {0xFFFFFFFF, 0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP3,0))\r
+      Store(Or(0x10000,DID2),Index(TMP3,1))\r
+      Return(TMP3)\r
+    }\r
+  }\r
+\r
+  If(LEqual(NDID,3))\r
+  {\r
+    If (LNOTEqual (ISPD, 0))\r
+    {\r
+      Name(TMP4,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP4,0))\r
+      Store(Or(0x10000,DID2),Index(TMP4,1))\r
+      Store(Or(0x10000,DID3),Index(TMP4,2))\r
+      //Add ISP device to GFX0\r
+      Store(0x00020F38, Index(TMP4,3))\r
+      Return(TMP4)\r
+    } Else\r
+    {\r
+      Name(TMP5,Package() {0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP5,0))\r
+      Store(Or(0x10000,DID2),Index(TMP5,1))\r
+      Store(Or(0x10000,DID3),Index(TMP5,2))\r
+      Return(TMP5)\r
+    }\r
+  }\r
+\r
+  If(LEqual(NDID,4))\r
+  {\r
+    If (LNOTEqual (ISPD, 0))\r
+    {\r
+      Name(TMP6,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP6,0))\r
+      Store(Or(0x10000,DID2),Index(TMP6,1))\r
+      Store(Or(0x10000,DID3),Index(TMP6,2))\r
+      Store(Or(0x10000,DID4),Index(TMP6,3))\r
+      //Add ISP device to GFX0\r
+      Store(0x00020F38, Index(TMP6,4))\r
+      Return(TMP6)\r
+    } Else\r
+    {\r
+      Name(TMP7,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP7,0))\r
+      Store(Or(0x10000,DID2),Index(TMP7,1))\r
+      Store(Or(0x10000,DID3),Index(TMP7,2))\r
+      Store(Or(0x10000,DID4),Index(TMP7,3))\r
+      Return(TMP7)\r
+    }\r
+  }\r
+\r
+  If(LGreater(NDID,4))\r
+  {\r
+    If (LNOTEqual (ISPD, 0))\r
+    {\r
+      Name(TMP8,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP8,0))\r
+      Store(Or(0x10000,DID2),Index(TMP8,1))\r
+      Store(Or(0x10000,DID3),Index(TMP8,2))\r
+      Store(Or(0x10000,DID4),Index(TMP8,3))\r
+      Store(Or(0x10000,DID5),Index(TMP8,4))\r
+      //Add ISP device to GFX0\r
+      Store(0x00020F38, Index(TMP8,5))\r
+      Return(TMP8)\r
+    } Else\r
+    {\r
+      Name(TMP9,Package() {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF})\r
+      Store(Or(0x10000,DID1),Index(TMP9,0))\r
+      Store(Or(0x10000,DID2),Index(TMP9,1))\r
+      Store(Or(0x10000,DID3),Index(TMP9,2))\r
+      Store(Or(0x10000,DID4),Index(TMP9,3))\r
+      Store(Or(0x10000,DID5),Index(TMP9,4))\r
+      Return(TMP9)\r
+    }\r
+  }\r
+\r
+  // If nothing else, return Unknown LFP.\r
+  // (Prevents compiler warning.)\r
+\r
+  //Add ISP device to GFX0\r
+  If (LNOTEqual (ISPD, 0))\r
+  {\r
+    Return(Package() {0x00000400, 0x00020F38})\r
+  } Else\r
+  {\r
+    Return(Package() {0x00000400})\r
+  }\r
+}\r
+\r
+Device(DD01)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID1),0x400))\r
+    {\r
+      Store(0x1, EDPV)\r
+      Store(DID1, DIDX)\r
+      Return(1)\r
+    }\r
+    If(LEqual(DID1,0))\r
+    {\r
+      Return(1)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID1))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    Return(CDDS(DID1))\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID1))\r
+  }\r
+\r
+  // Device Set State.\r
+\r
+  // _DSS Table:\r
+  //\r
+  //      BIT31   BIT30   Execution\r
+  //      0       0       Don't implement.\r
+  //      0       1       Cache change.  Nothing to Implement.\r
+  //      1       0       Don't Implement.\r
+  //      1       1       Display Switch Complete.  Implement.\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+Device(DD02)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID2),0x400))\r
+    {\r
+      Store(0x2, EDPV)\r
+      Store(DID2, DIDX)\r
+      Return(2)\r
+    }\r
+    If(LEqual(DID2,0))\r
+    {\r
+      Return(2)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID2))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    Return(CDDS(DID2))\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    // Return the Next State.\r
+    Return(NDDS(DID2))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+Device(DD03)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID3),0x400))\r
+    {\r
+      Store(0x3, EDPV)\r
+      Store(DID3, DIDX)\r
+      Return(3)\r
+    }\r
+    If(LEqual(DID3,0))\r
+    {\r
+      Return(3)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID3))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(DID3,0))\r
+    {\r
+      Return(0x0B)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DID3))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID3))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+Device(DD04)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID4),0x400))\r
+    {\r
+      Store(0x4, EDPV)\r
+      Store(DID4, DIDX)\r
+      Return(4)\r
+    }\r
+    If(LEqual(DID4,0))\r
+    {\r
+      Return(4)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID4))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(DID4,0))\r
+    {\r
+      Return(0x0B)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DID4))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID4))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+\r
+Device(DD05)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID5),0x400))\r
+    {\r
+      Store(0x5, EDPV)\r
+      Store(DID5, DIDX)\r
+      Return(5)\r
+    }\r
+    If(LEqual(DID5,0))\r
+    {\r
+      Return(5)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID5))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(DID5,0))\r
+    {\r
+      Return(0x0B)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DID5))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID5))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+\r
+Device(DD06)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID6),0x400))\r
+    {\r
+      Store(0x6, EDPV)\r
+      Store(DID6, DIDX)\r
+      Return(6)\r
+    }\r
+    If(LEqual(DID6,0))\r
+    {\r
+      Return(6)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID6))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(DID6,0))\r
+    {\r
+      Return(0x0B)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DID6))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID6))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+\r
+Device(DD07)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID7),0x400))\r
+    {\r
+      Store(0x7, EDPV)\r
+      Store(DID7, DIDX)\r
+      Return(7)\r
+    }\r
+    If(LEqual(DID7,0))\r
+    {\r
+      Return(7)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID7))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(DID7,0))\r
+    {\r
+      Return(0x0B)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DID7))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID7))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+\r
+Device(DD08)\r
+{\r
+\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(And(0x0F00,DID8),0x400))\r
+    {\r
+      Store(0x8, EDPV)\r
+      Store(DID8, DIDX)\r
+      Return(8)\r
+    }\r
+    If(LEqual(DID8,0))\r
+    {\r
+      Return(8)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DID8))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(DID8,0))\r
+    {\r
+      Return(0x0B)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DID8))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DID8))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+}\r
+\r
+//device for eDP\r
+Device(DD1F)\r
+{\r
+  // Return Unique ID.\r
+\r
+  Method(_ADR,0,Serialized)\r
+  {\r
+    If(LEqual(EDPV, 0x0))\r
+    {\r
+      Return(0x1F)\r
+    }\r
+    Else\r
+    {\r
+      Return(And(0xFFFF,DIDX))\r
+    }\r
+  }\r
+\r
+  // Return the Current Status.\r
+\r
+  Method(_DCS,0)\r
+  {\r
+    If(LEqual(EDPV, 0x0))\r
+    {\r
+      Return(0x00)\r
+    }\r
+    Else\r
+    {\r
+      Return(CDDS(DIDX))\r
+    }\r
+  }\r
+\r
+  // Query Graphics State (active or inactive).\r
+\r
+  Method(_DGS,0)\r
+  {\r
+    Return(NDDS(DIDX))\r
+  }\r
+\r
+  // Device Set State. (See table above.)\r
+\r
+  Method(_DSS,1)\r
+  {\r
+    If(LEqual(And(Arg0,0xC0000000),0xC0000000))\r
+    {\r
+      // State change was performed by the\r
+      // Video Drivers.  Simply update the\r
+      // New State.\r
+      Store(NSTE,CSTE)\r
+    }\r
+  }\r
+  // Query List of Brightness Control Levels Supported.\r
+\r
+  Method(_BCL,0)\r
+  {\r
+    // List of supported brightness levels in the following sequence.\r
+\r
+    // Level when machine has full power.\r
+    // Level when machine is on batteries.\r
+    // Other supported levels.\r
+    Return(Package() {80, 50, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100})\r
+  }\r
+\r
+  // Set the Brightness Level.\r
+\r
+  Method (_BCM,1)\r
+  {\r
+    // Set the requested level if it is between 0 and 100%.\r
+\r
+    If(LAnd(LGreaterEqual(Arg0,0),LLessEqual(Arg0,100)))\r
+    {\r
+      \_SB.PCI0.GFX0.AINT(1, Arg0)\r
+      Store(Arg0,BRTL)  // Store Brightness Level.\r
+    }\r
+  }\r
+\r
+  // Brightness Query Current level.\r
+\r
+  Method (_BQC,0)\r
+  {\r
+    Return(BRTL)\r
+  }\r
+}\r
+\r
+Method(SDDL,1)\r
+{\r
+  Increment(NDID)\r
+  Store(And(Arg0,0xF0F),Local0)\r
+  Or(0x80000000,Local0, Local1)\r
+  If(LEqual(DIDL,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL2,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL3,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL4,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL5,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL6,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL7,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  If(LEqual(DDL8,Local0))\r
+  {\r
+    Return(Local1)\r
+  }\r
+  Return(0)\r
+}\r
+\r
+Method(CDDS,1)\r
+{\r
+  Store(And(Arg0,0xF0F),Local0)\r
+\r
+  If(LEqual(0, Local0))\r
+  {\r
+    Return(0x1D)\r
+  }\r
+  If(LEqual(CADL, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL2, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL3, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL4, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL5, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL6, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL7, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  If(LEqual(CAL8, Local0))\r
+  {\r
+    Return(0x1F)\r
+  }\r
+  Return(0x1D)\r
+}\r
+\r
+Method(NDDS,1)\r
+{\r
+  Store(And(Arg0,0xF0F),Local0)\r
+\r
+  If(LEqual(0, Local0))\r
+  {\r
+    Return(0)\r
+  }\r
+  If(LEqual(NADL, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL2, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL3, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL4, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL5, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL6, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL7, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  If(LEqual(NDL8, Local0))\r
+  {\r
+    Return(1)\r
+  }\r
+  Return(0)\r
+}\r
+\r
+//\r
+// Include IGD OpRegion/Software SCI interrupt handler which is use by\r
+// the graphics drivers to request data from system BIOS.\r
+//\r
+include("IgdOpRn.ASL")\r