Attachment 'acpidump.txt'

Download

   1 /*
   2   RSD PTR: OEM=LENOVO, ACPI_Rev=2.0x (2)
   3 	XSDT=0xbf6bd1b7, length=36, cksum=42
   4  */
   5 /*
   6   XSDT: Length=156, Revision=1, Checksum=222,
   7 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
   8 	Creator ID= LTP, Creator Revision=0x0
   9 	Entries={ 0xbf6bd300, 0xbf6bd4b4, 0xbf6cba38, 0xbf6cba8a, 0xbf6cbabc, 0xbf6cbb24, 0xbf6cbb60, 0xbf6cbb98, 0xbf6cbdf0, 0xbf6cbf66, 0xbf6cbf8e, 0xbf6e2697, 0xbf6e28f6, 0xbf6e299c, 0xbf6e2e93 }
  10  */
  11 /*
  12   FACP: Length=244, Revision=3, Checksum=5,
  13 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
  14 	Creator ID=LNVO, Creator Revision=0x1
  15  	FACS=0xbf6e4000, DSDT=0xbf6bd6db
  16 	INT_MODEL=PIC
  17 	Preferred_PM_Profile=Mobile (2)
  18 	SCI_INT=9
  19 	SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
  20 	PSTATE_CNT=0xf3
  21 	PM1a_EVT_BLK=0x1000-0x1003
  22 	PM1a_CNT_BLK=0x1004-0x1005
  23 	PM2_CNT_BLK=0x1020-0x1020
  24 	PM_TMR_BLK=0x1008-0x100b
  25 	GPE0_BLK=0x1028-0x102f
  26 	CST_CNT=0x85
  27 	P_LVL2_LAT=1 us, P_LVL3_LAT=35 us
  28 	FLUSH_SIZE=0, FLUSH_STRIDE=0
  29 	DUTY_OFFSET=1, DUTY_WIDTH=3
  30 	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
  31 	IAPC_BOOT_ARCH={8042,NO_ASPM}
  32 	Flags={WBINVD,C1_SUPPORTED,C2_MP_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,DOCKING_SUPPORTED,PCI_EXPRESS_WAKE,PLATFORM_CLOCK}
  33 	X_FACS=0xbf6e4000, X_DSDT=0xbf6bd6db
  34 	X_PM1a_EVT_BLK=0x1000:0[32] (IO)
  35 	X_PM1a_CNT_BLK=0x1004:0[16] (IO)
  36 	X_PM2_CNT_BLK=0x1020:0[8] (IO)
  37 	X_PM_TMR_BLK=0x1008:0[32] (IO)
  38 	X_GPE0_BLK=0x1028:0[32] (IO)
  39 	X_GPE1_BLK=0x102c:0[32] (IO)
  40  */
  41 /*
  42   FACS:	Length=64, HwSig=0x0000150a, Firm_Wake_Vec=0x00000000
  43 	Global_Lock=
  44 	Flags=
  45 	Version=1
  46  */
  47 /*
  48   DSDT: Length=58205, Revision=1, Checksum=187,
  49 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
  50 	Creator ID=MSFT, Creator Revision=0x3000000
  51  */
  52 /*
  53   SSDT: Length=551, Revision=1, Checksum=215,
  54 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
  55 	Creator ID=MSFT, Creator Revision=0x3000000
  56  */
  57 /*
  58   ECDT: Length=82, Revision=1, Checksum=65,
  59 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
  60 	Creator ID=LNVO, Creator Revision=0x1
  61 	EC_CONTROL=0x66:0[8] (IO)
  62 	EC_DATA=0x62:0[8] (IO)
  63 	UID=0, GPE_BIT=0x12
  64 	EC_ID=\_SB.PCI0.LPC.EC
  65  */
  66 /*
  67   TCPA: Length=50, Revision=2, Checksum=224,
  68 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
  69 	Creator ID=LNVO, Creator Revision=0x1
  70 	Class 0 Base Address 0xbf6d1a6a Length 65536
  71 
  72  */
  73 /*
  74   APIC: Length=104, Revision=1, Checksum=78,
  75 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
  76 	Creator ID=LNVO, Creator Revision=0x1
  77 	Local APIC ADDR=0xfee00000
  78 	Flags={PC-AT}
  79 
  80 	Type=Local APIC
  81 	ACPI CPU=0
  82 	Flags={ENABLED}
  83 	APIC ID=0
  84 
  85 	Type=Local APIC
  86 	ACPI CPU=1
  87 	Flags={ENABLED}
  88 	APIC ID=1
  89 
  90 	Type=IO APIC
  91 	APIC ID=1
  92 	INT BASE=0
  93 	ADDR=0x00000000fec00000
  94 
  95 	Type=INT Override
  96 	BUS=0
  97 	IRQ=0
  98 	INTR=2
  99 	Flags={Polarity=conforming, Trigger=conforming}
 100 
 101 	Type=INT Override
 102 	BUS=0
 103 	IRQ=9
 104 	INTR=9
 105 	Flags={Polarity=active-hi, Trigger=level}
 106 
 107 	Type=Local APIC NMI
 108 	ACPI CPU=0
 109 	LINT Pin=1
 110 	Flags={Polarity=active-hi, Trigger=edge}
 111 
 112 	Type=Local APIC NMI
 113 	ACPI CPU=1
 114 	LINT Pin=1
 115 	Flags={Polarity=active-hi, Trigger=edge}
 116  */
 117 /*
 118   MCFG: Length=60, Revision=1, Checksum=100,
 119 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 120 	Creator ID=LNVO, Creator Revision=0x1
 121 
 122 	Base Address=0x00000000f0000000
 123 	Segment Group=0x0000
 124 	Start Bus=0
 125 	End Bus=63
 126  */
 127 /*
 128   HPET: Length=56, Revision=1, Checksum=140,
 129 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 130 	Creator ID=LNVO, Creator Revision=0x1
 131 	HPET Number=0
 132 	ADDR=0xfed00000:0[0] (Memory)	HW Rev=0x1
 133 	Comparators=2
 134 	Counter Size=1
 135 	Legacy IRQ routing capable={TRUE}
 136 	PCI Vendor ID=0x8086
 137 	Minimal Tick=128
 138 	Flags=0x00
 139  */
 140 /*
 141   SLIC: Length=374, Revision=1, Checksum=21,
 142 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 143 	Creator ID=SLIC, Creator Revision=0x0
 144  */
 145 /*
 146   SLAC: Length=374, Revision=1, Checksum=177,
 147 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 148 	Creator ID= LTP, Creator Revision=0x0
 149  */
 150 /*
 151   BOOT: Length=40, Revision=1, Checksum=138,
 152 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 153 	Creator ID= LTP, Creator Revision=0x1
 154  */
 155 /*
 156   ASF!: Length=114, Revision=16, Checksum=132,
 157 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 158 	Creator ID=PTL, Creator Revision=0x1
 159  */
 160 /*
 161   SSDT: Length=607, Revision=1, Checksum=164,
 162 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 163 	Creator ID=INTL, Creator Revision=0x20050513
 164  */
 165 /*
 166   SSDT: Length=166, Revision=1, Checksum=74,
 167 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 168 	Creator ID=INTL, Creator Revision=0x20050513
 169  */
 170 /*
 171   SSDT: Length=1271, Revision=1, Checksum=90,
 172 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 173 	Creator ID=INTL, Creator Revision=0x20050513
 174  */
 175 /*
 176   SSDT: Length=472, Revision=1, Checksum=235,
 177 	OEMID=LENOVO, OEM Table ID=TP-7V, OEM Revision=0x2220,
 178 	Creator ID=INTL, Creator Revision=0x20050513
 179  */
 180 /*
 181  * Intel ACPI Component Architecture
 182  * AML Disassembler version 20130823-64
 183  * Copyright (c) 2000 - 2013 Intel Corporation
 184  * 
 185  * Disassembly of /tmp/acpidump.ZJtjg3, Sat Oct  4 16:08:02 2014
 186  *
 187  * Original Table Header:
 188  *     Signature        "DSDT"
 189  *     Length           0x0000EEA4 (61092)
 190  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
 191  *     Checksum         0xDE
 192  *     OEM ID           "LENOVO"
 193  *     OEM Table ID     "TP-7V   "
 194  *     OEM Revision     0x00002220 (8736)
 195  *     Compiler ID      "MSFT"
 196  *     Compiler Version 0x03000000 (50331648)
 197  */
 198 DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "LENOVO", "TP-7V   ", 0x00002220)
 199 {
 200     /*
 201      * iASL Warning: There were 1 external control methods found during
 202      * disassembly, but additional ACPI tables to resolve these externals
 203      * were not specified. This resulting disassembler output file may not
 204      * compile because the disassembler did not know how many arguments
 205      * to assign to these methods. To specify the tables needed to resolve
 206      * external control method references, use the one of the following
 207      * example iASL invocations:
 208      *     iasl -e <ssdt1.aml,ssdt2.aml...> -d <dsdt.aml>
 209      *     iasl -e <dsdt.aml,ssdt2.aml...> -d <ssdt1.aml>
 210      */
 211     External (_SB_.PCI0.SATA.SCND._STM, MethodObj)    // Warning: Unresolved Method, guessing 3 arguments (may be incorrect, see warning above)
 212 
 213     External (_PSS, IntObj)
 214     External (_SB_.PCI0.SATA.SCND._ADR, IntObj)
 215     External (_SB_.PCI0.SATA.SCND.MSTR)
 216     External (_SB_.PCI0.SATA.SCND.MSTR._ADR, IntObj)
 217     External (_SB_.PCI0.SATA.SCND.MSTR._GTF, IntObj)
 218 
 219     OperationRegion (PORT, SystemIO, 0x80, 0x01)
 220     Field (PORT, ByteAcc, NoLock, Preserve)
 221     {
 222         P80H,   8
 223     }
 224 
 225     Scope (\_PR)
 226     {
 227         Processor (CPU0, 0x00, 0x00001010, 0x06) {}
 228         Processor (CPU1, 0x01, 0x00001010, 0x06) {}
 229     }
 230 
 231     OperationRegion (MNVS, SystemMemory, 0xBF6E4000, 0x1000)
 232     Field (MNVS, DWordAcc, NoLock, Preserve)
 233     {
 234         Offset (0xF00), 
 235         GAPA,   32, 
 236         GAPL,   32, 
 237         DCKI,   32, 
 238         DCKS,   32, 
 239         VCDL,   1, 
 240         VCDC,   1, 
 241         VCDT,   1, 
 242         VCDD,   1, 
 243         VIGD,   1, 
 244         VCSS,   1, 
 245         VCDB,   1, 
 246         VCIN,   1, 
 247         VPDF,   1, 
 248         Offset (0xF12), 
 249         VLID,   4, 
 250         VVPO,   4, 
 251         BRLV,   4, 
 252         BRFQ,   2, 
 253         BRHB,   1, 
 254         BREV,   1, 
 255         CDFL,   8, 
 256         CDAH,   8, 
 257         PMOD,   2, 
 258         PDIR,   1, 
 259         PDMA,   1, 
 260         Offset (0xF17), 
 261         LFDC,   1, 
 262         Offset (0xF18), 
 263         C2NA,   1, 
 264         C3NA,   1, 
 265         C4NA,   1, 
 266         C6NA,   1, 
 267         Offset (0xF19), 
 268         SPEN,   1, 
 269             ,   1, 
 270             ,   1, 
 271             ,   1, 
 272         MPEN,   1, 
 273         Offset (0xF1A), 
 274         OSPX,   1, 
 275         OSC4,   1, 
 276         OSSS,   1, 
 277         NHPS,   1, 
 278         NPME,   1, 
 279         Offset (0xF1B), 
 280         UOPT,   8, 
 281         BTID,   32, 
 282         LWST,   8, 
 283         LPST,   8, 
 284         TCRT,   16, 
 285         TPSV,   16, 
 286         TTC1,   16, 
 287         TTC2,   16, 
 288         TTSP,   16, 
 289         SRAH,   8, 
 290         SRHE,   8, 
 291         SRE0,   8, 
 292         SRE1,   8, 
 293         SRE2,   8, 
 294         SRE3,   8, 
 295         SRE4,   8, 
 296         SRE5,   8, 
 297         SRU0,   8, 
 298         SRU1,   8, 
 299         SRU2,   8, 
 300         SRU7,   8, 
 301         SRU3,   8, 
 302         SRU4,   8, 
 303         SRU8,   8, 
 304         SRPB,   8, 
 305         SRLP,   8, 
 306         SRSA,   8, 
 307         SRSM,   8, 
 308         CWAC,   1, 
 309         CWAS,   1, 
 310         CWUE,   1, 
 311         CWUS,   1, 
 312         Offset (0xF40), 
 313         CWAP,   16, 
 314         CWAT,   16, 
 315         DBGC,   1, 
 316         Offset (0xF45), 
 317         FS1L,   16, 
 318         FS1M,   16, 
 319         FS1H,   16, 
 320         FS2L,   16, 
 321         FS2M,   16, 
 322         FS2H,   16, 
 323         FS3L,   16, 
 324         FS3M,   16, 
 325         FS3H,   16, 
 326         TATC,   1, 
 327             ,   6, 
 328         TATL,   1, 
 329         TATW,   8, 
 330         TNFT,   4, 
 331         TNTT,   4, 
 332         TDFA,   4, 
 333         TDTA,   4, 
 334         TDFD,   4, 
 335         TDTD,   4, 
 336         TCFA,   4, 
 337         TCTA,   4, 
 338         TCFD,   4, 
 339         TCTD,   4, 
 340         TSFT,   4, 
 341         TSTT,   4, 
 342         TIT0,   8, 
 343         TCR0,   16, 
 344         TPS0,   16, 
 345         TIT1,   8, 
 346         TCR1,   16, 
 347         TPS1,   16, 
 348         TIT2,   8, 
 349         TCR2,   16, 
 350         TPS2,   16, 
 351         TIF0,   8, 
 352         TIF1,   8, 
 353         TIF2,   8, 
 354         Offset (0xF75), 
 355         TCZ1,   8, 
 356         TCZ2,   8, 
 357         TCZ3,   8, 
 358         BTHI,   1, 
 359         Offset (0xF79), 
 360         HDIR,   1, 
 361         HDEH,   1, 
 362         HDSP,   1, 
 363         HDPP,   1, 
 364         HDUB,   1, 
 365         Offset (0xF7A), 
 366         TPMP,   1, 
 367         TPMS,   1, 
 368         Offset (0xF7B), 
 369         BIDE,   8, 
 370             ,   1, 
 371         DTSE,   1, 
 372         Offset (0xF7D), 
 373         DTS0,   8, 
 374         DTS1,   8, 
 375         DT00,   1, 
 376         DT01,   1, 
 377         DT02,   1, 
 378         DT03,   1, 
 379         Offset (0xF80), 
 380         LIDB,   1, 
 381         C4WR,   1, 
 382         C4AC,   1, 
 383         Offset (0xF81), 
 384         PH01,   8, 
 385         PH02,   8, 
 386         PH03,   8, 
 387         PH04,   8, 
 388         PH05,   8, 
 389         PH06,   8, 
 390         PH07,   8, 
 391         PH08,   8, 
 392         PH09,   8, 
 393         PH0A,   8, 
 394         PH0B,   8, 
 395         IPAT,   4, 
 396         IPSC,   1, 
 397         IDMM,   1, 
 398         IDMS,   2, 
 399         HVCO,   3, 
 400         IF1E,   1, 
 401         ISSC,   1, 
 402         LIDS,   1, 
 403         IBIA,   2, 
 404         IBTT,   8, 
 405         ITVF,   4, 
 406         ITVM,   4, 
 407         TCG0,   1, 
 408         TCG1,   1, 
 409         Offset (0xF91), 
 410         SWGP,   8, 
 411         IPMS,   8, 
 412         IPMB,   120, 
 413         IPMR,   24, 
 414         IPMO,   24, 
 415         IPMA,   8, 
 416         ASLB,   32, 
 417         ASFT,   8, 
 418         Offset (0xFB0), 
 419         CHKC,   32, 
 420         CHKE,   32, 
 421         THRI,   8
 422     }
 423 
 424     Field (MNVS, ByteAcc, NoLock, Preserve)
 425     {
 426         Offset (0xE00), 
 427         DDC1,   1024, 
 428         Offset (0xF00)
 429     }
 430 
 431     Field (MNVS, ByteAcc, NoLock, Preserve)
 432     {
 433         Offset (0xE00), 
 434         DDC2,   2048
 435     }
 436 
 437     Scope (\_SB)
 438     {
 439         Method (_INI, 0, NotSerialized)  // _INI: Initialize
 440         {
 441             If (LEqual (\SCMP (\_OS, "Microsoft Windows"), Zero))
 442             {
 443                 Store (0x01, \W98F)
 444             }
 445             Else
 446             {
 447                 If (CondRefOf (\_OSI, Local0))
 448                 {
 449                     If (\_OSI ("Windows 2001"))
 450                     {
 451                         Store (0x01, \WNTF)
 452                         Store (0x01, \WXPF)
 453                         Store (0x00, \WSPV)
 454                     }
 455 
 456                     If (\_OSI ("Windows 2001 SP1"))
 457                     {
 458                         Store (0x01, \WSPV)
 459                     }
 460 
 461                     If (\_OSI ("Windows 2001 SP2"))
 462                     {
 463                         Store (0x02, \WSPV)
 464                     }
 465 
 466                     If (\_OSI ("Windows 2006"))
 467                     {
 468                         Store (0x01, \WVIS)
 469                     }
 470 
 471                     If (\_OSI ("Linux"))
 472                     {
 473                         Store (0x01, \LNUX)
 474                     }
 475 
 476                     If (\_OSI ("FreeBSD"))
 477                     {
 478                         Store (0x01, \LNUX)
 479                     }
 480                 }
 481                 Else
 482                 {
 483                     If (LEqual (\SCMP (\_OS, "Microsoft Windows NT"), Zero))
 484                     {
 485                         Store (0x01, \WNTF)
 486                     }
 487                     Else
 488                     {
 489                         If (LEqual (\SCMP (\_OS, "Microsoft WindowsME: Millennium Edition"), Zero))
 490                         {
 491                             Store (0x01, \WMEF)
 492                             Store (0x01, \W98F)
 493                         }
 494                     }
 495                 }
 496             }
 497 
 498             If (LGreaterEqual (\_REV, 0x02))
 499             {
 500                 Store (0x01, \H8DR)
 501             }
 502 
 503             Store (0x01, \OSIF)
 504             If (LAnd (\WXPF, LGreaterEqual (\WSPV, 0x01)))
 505             {
 506                 PPMS (0x02)
 507             }
 508 
 509             If (And (\RBEC (0x46), 0x10))
 510             {
 511                 Store (0x00, \C4AC)
 512             }
 513             Else
 514             {
 515                 Store (0x01, \C4AC)
 516             }
 517 
 518             If (\LNUX)
 519             {
 520                 \_SB.PCI0.LPC.EC.SAUM (0x02)
 521                 \UCMS (0x1C)
 522             }
 523 
 524             Store (\SRAH, \_SB.PCI0.RID)
 525             If (VIGD)
 526             {
 527                 Store (\SRHE, \_SB.PCI0.VID.RID)
 528             }
 529             Else
 530             {
 531                 Store (\SRHE, \_SB.PCI0.AGP.RID)
 532             }
 533 
 534             Store (\SRE0, \_SB.PCI0.EXP0.RID)
 535             Store (\SRE1, \_SB.PCI0.EXP1.RID)
 536             Store (\SRE2, \_SB.PCI0.EXP2.RID)
 537             Store (\SRE3, \_SB.PCI0.EXP3.RID)
 538             Store (\SRU0, \_SB.PCI0.USB0.RID)
 539             Store (\SRU1, \_SB.PCI0.USB1.RID)
 540             Store (\SRU3, \_SB.PCI0.USB3.RID)
 541             Store (\SRU7, \_SB.PCI0.EHC0.RID)
 542             Store (\SRU3, \_SB.PCI0.USB3.RID)
 543             Store (\SRU4, \_SB.PCI0.USB4.RID)
 544             Store (\SRU8, \_SB.PCI0.EHC1.RID)
 545             Store (\SRPB, \_SB.PCI0.PCI1.RID)
 546             Store (\SRLP, \_SB.PCI0.LPC.RID)
 547             Store (\SRSA, \_SB.PCI0.IDE0.RID)
 548             Store (\SRSA, \_SB.PCI0.SATA.RID)
 549             Store (\SRSM, \_SB.PCI0.SMBU.RID)
 550         }
 551 
 552         Device (LNKA)
 553         {
 554             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 555             Name (_UID, 0x01)  // _UID: Unique ID
 556             Method (_STA, 0, NotSerialized)  // _STA: Status
 557             {
 558                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRA)))
 559                 {
 560                     Return (0x09)
 561                 }
 562                 Else
 563                 {
 564                     Return (0x0B)
 565                 }
 566             }
 567 
 568             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 569             {
 570                 IRQ (Level, ActiveLow, Shared, )
 571                     {3,4,5,6,7,9,10,11}
 572             })
 573             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 574             {
 575                 Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA)
 576             }
 577 
 578             Name (BUFA, ResourceTemplate ()
 579             {
 580                 IRQ (Level, ActiveLow, Shared, _Y00)
 581                     {}
 582             })
 583             CreateWordField (BUFA, \_SB.LNKA._Y00._INT, IRA1)  // _INT: Interrupts
 584             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 585             {
 586                 And (\_SB.PCI0.LPC.PIRA, 0x8F, Local0)
 587                 If (VPIR (Local0))
 588                 {
 589                     ShiftLeft (0x01, Local0, IRA1)
 590                 }
 591                 Else
 592                 {
 593                     Store (0x00, IRA1)
 594                 }
 595 
 596                 Return (BUFA)
 597             }
 598 
 599             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 600             {
 601                 CreateWordField (Arg0, 0x01, IRA2)
 602                 FindSetRightBit (IRA2, Local0)
 603                 And (\_SB.PCI0.LPC.PIRA, 0x70, Local1)
 604                 Or (Local1, Decrement (Local0), Local1)
 605                 Store (Local1, \_SB.PCI0.LPC.PIRA)
 606             }
 607         }
 608 
 609         Device (LNKB)
 610         {
 611             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 612             Name (_UID, 0x02)  // _UID: Unique ID
 613             Method (_STA, 0, NotSerialized)  // _STA: Status
 614             {
 615                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRB)))
 616                 {
 617                     Return (0x09)
 618                 }
 619                 Else
 620                 {
 621                     Return (0x0B)
 622                 }
 623             }
 624 
 625             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 626             {
 627                 IRQ (Level, ActiveLow, Shared, )
 628                     {3,4,5,6,7,9,10,11}
 629             })
 630             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 631             {
 632                 Or (\_SB.PCI0.LPC.PIRB, 0x80, \_SB.PCI0.LPC.PIRB)
 633             }
 634 
 635             Name (BUFB, ResourceTemplate ()
 636             {
 637                 IRQ (Level, ActiveLow, Shared, _Y01)
 638                     {}
 639             })
 640             CreateWordField (BUFB, \_SB.LNKB._Y01._INT, IRB1)  // _INT: Interrupts
 641             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 642             {
 643                 And (\_SB.PCI0.LPC.PIRB, 0x8F, Local0)
 644                 If (VPIR (Local0))
 645                 {
 646                     ShiftLeft (0x01, Local0, IRB1)
 647                 }
 648                 Else
 649                 {
 650                     Store (0x00, IRB1)
 651                 }
 652 
 653                 Return (BUFB)
 654             }
 655 
 656             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 657             {
 658                 CreateWordField (Arg0, 0x01, IRB2)
 659                 FindSetRightBit (IRB2, Local0)
 660                 And (\_SB.PCI0.LPC.PIRB, 0x70, Local1)
 661                 Or (Local1, Decrement (Local0), Local1)
 662                 Store (Local1, \_SB.PCI0.LPC.PIRB)
 663             }
 664         }
 665 
 666         Device (LNKC)
 667         {
 668             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 669             Name (_UID, 0x03)  // _UID: Unique ID
 670             Method (_STA, 0, NotSerialized)  // _STA: Status
 671             {
 672                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRC)))
 673                 {
 674                     Return (0x09)
 675                 }
 676                 Else
 677                 {
 678                     Return (0x0B)
 679                 }
 680             }
 681 
 682             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 683             {
 684                 IRQ (Level, ActiveLow, Shared, )
 685                     {3,4,5,6,7,9,10,11}
 686             })
 687             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 688             {
 689                 Or (\_SB.PCI0.LPC.PIRC, 0x80, \_SB.PCI0.LPC.PIRC)
 690             }
 691 
 692             Name (BUFC, ResourceTemplate ()
 693             {
 694                 IRQ (Level, ActiveLow, Shared, _Y02)
 695                     {}
 696             })
 697             CreateWordField (BUFC, \_SB.LNKC._Y02._INT, IRC1)  // _INT: Interrupts
 698             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 699             {
 700                 And (\_SB.PCI0.LPC.PIRC, 0x8F, Local0)
 701                 If (VPIR (Local0))
 702                 {
 703                     ShiftLeft (0x01, Local0, IRC1)
 704                 }
 705                 Else
 706                 {
 707                     Store (0x00, IRC1)
 708                 }
 709 
 710                 Return (BUFC)
 711             }
 712 
 713             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 714             {
 715                 CreateWordField (Arg0, 0x01, IRC2)
 716                 FindSetRightBit (IRC2, Local0)
 717                 And (\_SB.PCI0.LPC.PIRC, 0x70, Local1)
 718                 Or (Local1, Decrement (Local0), Local1)
 719                 Store (Local1, \_SB.PCI0.LPC.PIRC)
 720             }
 721         }
 722 
 723         Device (LNKD)
 724         {
 725             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 726             Name (_UID, 0x04)  // _UID: Unique ID
 727             Method (_STA, 0, NotSerialized)  // _STA: Status
 728             {
 729                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRD)))
 730                 {
 731                     Return (0x09)
 732                 }
 733                 Else
 734                 {
 735                     Return (0x0B)
 736                 }
 737             }
 738 
 739             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 740             {
 741                 IRQ (Level, ActiveLow, Shared, )
 742                     {3,4,5,6,7,9,10,11}
 743             })
 744             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 745             {
 746                 Or (\_SB.PCI0.LPC.PIRD, 0x80, \_SB.PCI0.LPC.PIRD)
 747             }
 748 
 749             Name (BUFD, ResourceTemplate ()
 750             {
 751                 IRQ (Level, ActiveLow, Shared, _Y03)
 752                     {}
 753             })
 754             CreateWordField (BUFD, \_SB.LNKD._Y03._INT, IRD1)  // _INT: Interrupts
 755             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 756             {
 757                 And (\_SB.PCI0.LPC.PIRD, 0x8F, Local0)
 758                 If (VPIR (Local0))
 759                 {
 760                     ShiftLeft (0x01, Local0, IRD1)
 761                 }
 762                 Else
 763                 {
 764                     Store (0x00, IRD1)
 765                 }
 766 
 767                 Return (BUFD)
 768             }
 769 
 770             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 771             {
 772                 CreateWordField (Arg0, 0x01, IRD2)
 773                 FindSetRightBit (IRD2, Local0)
 774                 And (\_SB.PCI0.LPC.PIRD, 0x70, Local1)
 775                 Or (Local1, Decrement (Local0), Local1)
 776                 Store (Local1, \_SB.PCI0.LPC.PIRD)
 777             }
 778         }
 779 
 780         Device (LNKE)
 781         {
 782             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 783             Name (_UID, 0x05)  // _UID: Unique ID
 784             Method (_STA, 0, NotSerialized)  // _STA: Status
 785             {
 786                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRE)))
 787                 {
 788                     Return (0x09)
 789                 }
 790                 Else
 791                 {
 792                     Return (0x0B)
 793                 }
 794             }
 795 
 796             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 797             {
 798                 IRQ (Level, ActiveLow, Shared, )
 799                     {3,4,5,6,7,9,10,11}
 800             })
 801             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 802             {
 803                 Or (\_SB.PCI0.LPC.PIRE, 0x80, \_SB.PCI0.LPC.PIRE)
 804             }
 805 
 806             Name (BUFE, ResourceTemplate ()
 807             {
 808                 IRQ (Level, ActiveLow, Shared, _Y04)
 809                     {}
 810             })
 811             CreateWordField (BUFE, \_SB.LNKE._Y04._INT, IRE1)  // _INT: Interrupts
 812             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 813             {
 814                 And (\_SB.PCI0.LPC.PIRE, 0x8F, Local0)
 815                 If (VPIR (Local0))
 816                 {
 817                     ShiftLeft (0x01, Local0, IRE1)
 818                 }
 819                 Else
 820                 {
 821                     Store (0x00, IRE1)
 822                 }
 823 
 824                 Return (BUFE)
 825             }
 826 
 827             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 828             {
 829                 CreateWordField (Arg0, 0x01, IRE2)
 830                 FindSetRightBit (IRE2, Local0)
 831                 And (\_SB.PCI0.LPC.PIRE, 0x70, Local1)
 832                 Or (Local1, Decrement (Local0), Local1)
 833                 Store (Local1, \_SB.PCI0.LPC.PIRE)
 834             }
 835         }
 836 
 837         Device (LNKF)
 838         {
 839             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 840             Name (_UID, 0x06)  // _UID: Unique ID
 841             Method (_STA, 0, NotSerialized)  // _STA: Status
 842             {
 843                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRF)))
 844                 {
 845                     Return (0x09)
 846                 }
 847                 Else
 848                 {
 849                     Return (0x0B)
 850                 }
 851             }
 852 
 853             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 854             {
 855                 IRQ (Level, ActiveLow, Shared, )
 856                     {3,4,5,6,7,9,10,11}
 857             })
 858             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 859             {
 860                 Or (\_SB.PCI0.LPC.PIRF, 0x80, \_SB.PCI0.LPC.PIRF)
 861             }
 862 
 863             Name (BUFF, ResourceTemplate ()
 864             {
 865                 IRQ (Level, ActiveLow, Shared, _Y05)
 866                     {}
 867             })
 868             CreateWordField (BUFF, \_SB.LNKF._Y05._INT, IRF1)  // _INT: Interrupts
 869             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 870             {
 871                 And (\_SB.PCI0.LPC.PIRF, 0x8F, Local0)
 872                 If (VPIR (Local0))
 873                 {
 874                     ShiftLeft (0x01, Local0, IRF1)
 875                 }
 876                 Else
 877                 {
 878                     Store (0x00, IRF1)
 879                 }
 880 
 881                 Return (BUFF)
 882             }
 883 
 884             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 885             {
 886                 CreateWordField (Arg0, 0x01, IRF2)
 887                 FindSetRightBit (IRF2, Local0)
 888                 And (\_SB.PCI0.LPC.PIRF, 0x70, Local1)
 889                 Or (Local1, Decrement (Local0), Local1)
 890                 Store (Local1, \_SB.PCI0.LPC.PIRF)
 891             }
 892         }
 893 
 894         Device (LNKG)
 895         {
 896             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 897             Name (_UID, 0x07)  // _UID: Unique ID
 898             Method (_STA, 0, NotSerialized)  // _STA: Status
 899             {
 900                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRG)))
 901                 {
 902                     Return (0x09)
 903                 }
 904                 Else
 905                 {
 906                     Return (0x0B)
 907                 }
 908             }
 909 
 910             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 911             {
 912                 IRQ (Level, ActiveLow, Shared, )
 913                     {3,4,5,6,7,9,10,11}
 914             })
 915             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 916             {
 917                 Or (\_SB.PCI0.LPC.PIRG, 0x80, \_SB.PCI0.LPC.PIRG)
 918             }
 919 
 920             Name (BUFG, ResourceTemplate ()
 921             {
 922                 IRQ (Level, ActiveLow, Shared, _Y06)
 923                     {}
 924             })
 925             CreateWordField (BUFG, \_SB.LNKG._Y06._INT, IRG1)  // _INT: Interrupts
 926             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 927             {
 928                 And (\_SB.PCI0.LPC.PIRG, 0x8F, Local0)
 929                 If (VPIR (Local0))
 930                 {
 931                     ShiftLeft (0x01, Local0, IRG1)
 932                 }
 933                 Else
 934                 {
 935                     Store (0x00, IRG1)
 936                 }
 937 
 938                 Return (BUFG)
 939             }
 940 
 941             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 942             {
 943                 CreateWordField (Arg0, 0x01, IRG2)
 944                 FindSetRightBit (IRG2, Local0)
 945                 And (\_SB.PCI0.LPC.PIRG, 0x70, Local1)
 946                 Or (Local1, Decrement (Local0), Local1)
 947                 Store (Local1, \_SB.PCI0.LPC.PIRG)
 948             }
 949         }
 950 
 951         Device (LNKH)
 952         {
 953             Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
 954             Name (_UID, 0x08)  // _UID: Unique ID
 955             Method (_STA, 0, NotSerialized)  // _STA: Status
 956             {
 957                 If (LNot (VPIR (\_SB.PCI0.LPC.PIRH)))
 958                 {
 959                     Return (0x09)
 960                 }
 961                 Else
 962                 {
 963                     Return (0x0B)
 964                 }
 965             }
 966 
 967             Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
 968             {
 969                 IRQ (Level, ActiveLow, Shared, )
 970                     {3,4,5,6,7,9,10,11}
 971             })
 972             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
 973             {
 974                 Or (\_SB.PCI0.LPC.PIRH, 0x80, \_SB.PCI0.LPC.PIRH)
 975             }
 976 
 977             Name (BUFH, ResourceTemplate ()
 978             {
 979                 IRQ (Level, ActiveLow, Shared, _Y07)
 980                     {}
 981             })
 982             CreateWordField (BUFH, \_SB.LNKH._Y07._INT, IRH1)  // _INT: Interrupts
 983             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
 984             {
 985                 And (\_SB.PCI0.LPC.PIRH, 0x8F, Local0)
 986                 If (VPIR (Local0))
 987                 {
 988                     ShiftLeft (0x01, Local0, IRH1)
 989                 }
 990                 Else
 991                 {
 992                     Store (0x00, IRH1)
 993                 }
 994 
 995                 Return (BUFH)
 996             }
 997 
 998             Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
 999             {
1000                 CreateWordField (Arg0, 0x01, IRH2)
1001                 FindSetRightBit (IRH2, Local0)
1002                 And (\_SB.PCI0.LPC.PIRH, 0x70, Local1)
1003                 Or (Local1, Decrement (Local0), Local1)
1004                 Store (Local1, \_SB.PCI0.LPC.PIRH)
1005             }
1006         }
1007 
1008         Method (VPIR, 1, NotSerialized)
1009         {
1010             Store (0x01, Local0)
1011             If (And (Arg0, 0x80))
1012             {
1013                 Store (0x00, Local0)
1014             }
1015             Else
1016             {
1017                 And (Arg0, 0x0F, Local1)
1018                 If (LLess (Local1, 0x03))
1019                 {
1020                     Store (0x00, Local0)
1021                 }
1022                 Else
1023                 {
1024                     If (LOr (LEqual (Local1, 0x08), LEqual (Local1, 0x0D)))
1025                     {
1026                         Store (0x00, Local0)
1027                     }
1028                 }
1029             }
1030 
1031             Return (Local0)
1032         }
1033 
1034         Device (MEM)
1035         {
1036             Name (_HID, EisaId ("PNP0C01"))  // _HID: Hardware ID
1037             Name (ME98, ResourceTemplate ()
1038             {
1039                 Memory32Fixed (ReadWrite,
1040                     0x00000000,         // Address Base
1041                     0x000A0000,         // Address Length
1042                     )
1043                 Memory32Fixed (ReadOnly,
1044                     0x000E0000,         // Address Base
1045                     0x00020000,         // Address Length
1046                     )
1047                 Memory32Fixed (ReadWrite,
1048                     0x00100000,         // Address Base
1049                     0x01EE0000,         // Address Length
1050                     _Y08)
1051                 Memory32Fixed (ReadOnly,
1052                     0xFEC00000,         // Address Base
1053                     0x00140000,         // Address Length
1054                     )
1055                 Memory32Fixed (ReadOnly,
1056                     0xFED4C000,         // Address Base
1057                     0x012B4000,         // Address Length
1058                     )
1059             })
1060             CreateDWordField (ME98, \_SB.MEM._Y08._BAS, MEB0)  // _BAS: Base Address
1061             CreateDWordField (ME98, \_SB.MEM._Y08._LEN, MEL0)  // _LEN: Length
1062             Name (MGAP, ResourceTemplate ()
1063             {
1064                 Memory32Fixed (ReadOnly,
1065                     0x00000000,         // Address Base
1066                     0x00000000,         // Address Length
1067                     _Y09)
1068             })
1069             CreateDWordField (MGAP, \_SB.MEM._Y09._BAS, MGPB)  // _BAS: Base Address
1070             CreateDWordField (MGAP, \_SB.MEM._Y09._LEN, MGPL)  // _LEN: Length
1071             Name (MEMS, ResourceTemplate ()
1072             {
1073                 Memory32Fixed (ReadWrite,
1074                     0x00000000,         // Address Base
1075                     0x000A0000,         // Address Length
1076                     )
1077                 Memory32Fixed (ReadOnly,
1078                     0x000C0000,         // Address Base
1079                     0x00000000,         // Address Length
1080                     _Y0A)
1081                 Memory32Fixed (ReadOnly,
1082                     0x000C4000,         // Address Base
1083                     0x00000000,         // Address Length
1084                     _Y0B)
1085                 Memory32Fixed (ReadOnly,
1086                     0x000C8000,         // Address Base
1087                     0x00000000,         // Address Length
1088                     _Y0C)
1089                 Memory32Fixed (ReadOnly,
1090                     0x000CC000,         // Address Base
1091                     0x00000000,         // Address Length
1092                     _Y0D)
1093                 Memory32Fixed (ReadOnly,
1094                     0x000D0000,         // Address Base
1095                     0x00000000,         // Address Length
1096                     _Y0E)
1097                 Memory32Fixed (ReadOnly,
1098                     0x000D4000,         // Address Base
1099                     0x00000000,         // Address Length
1100                     _Y0F)
1101                 Memory32Fixed (ReadOnly,
1102                     0x000D8000,         // Address Base
1103                     0x00000000,         // Address Length
1104                     _Y10)
1105                 Memory32Fixed (ReadOnly,
1106                     0x000DC000,         // Address Base
1107                     0x00000000,         // Address Length
1108                     _Y11)
1109                 Memory32Fixed (ReadOnly,
1110                     0x000E0000,         // Address Base
1111                     0x00000000,         // Address Length
1112                     _Y12)
1113                 Memory32Fixed (ReadOnly,
1114                     0x000E4000,         // Address Base
1115                     0x00000000,         // Address Length
1116                     _Y13)
1117                 Memory32Fixed (ReadOnly,
1118                     0x000E8000,         // Address Base
1119                     0x00000000,         // Address Length
1120                     _Y14)
1121                 Memory32Fixed (ReadOnly,
1122                     0x000EC000,         // Address Base
1123                     0x00000000,         // Address Length
1124                     _Y15)
1125                 Memory32Fixed (ReadOnly,
1126                     0x000F0000,         // Address Base
1127                     0x00010000,         // Address Length
1128                     )
1129                 Memory32Fixed (ReadWrite,
1130                     0x00100000,         // Address Base
1131                     0x01EE0000,         // Address Length
1132                     _Y16)
1133                 Memory32Fixed (ReadOnly,
1134                     0xFEC00000,         // Address Base
1135                     0x00140000,         // Address Length
1136                     _Y17)
1137                 Memory32Fixed (ReadOnly,
1138                     0xFED4C000,         // Address Base
1139                     0x012B4000,         // Address Length
1140                     _Y18)
1141             })
1142             CreateDWordField (MEMS, \_SB.MEM._Y0A._LEN, MC0L)  // _LEN: Length
1143             CreateDWordField (MEMS, \_SB.MEM._Y0B._LEN, MC4L)  // _LEN: Length
1144             CreateDWordField (MEMS, \_SB.MEM._Y0C._LEN, MC8L)  // _LEN: Length
1145             CreateDWordField (MEMS, \_SB.MEM._Y0D._LEN, MCCL)  // _LEN: Length
1146             CreateDWordField (MEMS, \_SB.MEM._Y0E._LEN, MD0L)  // _LEN: Length
1147             CreateDWordField (MEMS, \_SB.MEM._Y0F._LEN, MD4L)  // _LEN: Length
1148             CreateDWordField (MEMS, \_SB.MEM._Y10._LEN, MD8L)  // _LEN: Length
1149             CreateDWordField (MEMS, \_SB.MEM._Y11._LEN, MDCL)  // _LEN: Length
1150             CreateDWordField (MEMS, \_SB.MEM._Y12._LEN, ME0L)  // _LEN: Length
1151             CreateDWordField (MEMS, \_SB.MEM._Y13._LEN, ME4L)  // _LEN: Length
1152             CreateDWordField (MEMS, \_SB.MEM._Y14._LEN, ME8L)  // _LEN: Length
1153             CreateDWordField (MEMS, \_SB.MEM._Y15._LEN, MECL)  // _LEN: Length
1154             CreateBitField (MEMS, \_SB.MEM._Y0A._RW, MC0W)  // _RW_: Read-Write Status
1155             CreateBitField (MEMS, \_SB.MEM._Y0B._RW, MC4W)  // _RW_: Read-Write Status
1156             CreateBitField (MEMS, \_SB.MEM._Y0C._RW, MC8W)  // _RW_: Read-Write Status
1157             CreateBitField (MEMS, \_SB.MEM._Y0D._RW, MCCW)  // _RW_: Read-Write Status
1158             CreateBitField (MEMS, \_SB.MEM._Y0E._RW, MD0W)  // _RW_: Read-Write Status
1159             CreateBitField (MEMS, \_SB.MEM._Y0F._RW, MD4W)  // _RW_: Read-Write Status
1160             CreateBitField (MEMS, \_SB.MEM._Y10._RW, MD8W)  // _RW_: Read-Write Status
1161             CreateBitField (MEMS, \_SB.MEM._Y11._RW, MDCW)  // _RW_: Read-Write Status
1162             CreateBitField (MEMS, \_SB.MEM._Y12._RW, ME0W)  // _RW_: Read-Write Status
1163             CreateBitField (MEMS, \_SB.MEM._Y13._RW, ME4W)  // _RW_: Read-Write Status
1164             CreateBitField (MEMS, \_SB.MEM._Y14._RW, ME8W)  // _RW_: Read-Write Status
1165             CreateBitField (MEMS, \_SB.MEM._Y15._RW, MECW)  // _RW_: Read-Write Status
1166             CreateDWordField (MEMS, \_SB.MEM._Y16._BAS, MEB1)  // _BAS: Base Address
1167             CreateDWordField (MEMS, \_SB.MEM._Y16._LEN, MEL1)  // _LEN: Length
1168             CreateDWordField (MEMS, \_SB.MEM._Y17._LEN, MEL2)  // _LEN: Length
1169             CreateDWordField (MEMS, \_SB.MEM._Y18._LEN, MEL3)  // _LEN: Length
1170             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
1171             {
1172                 If (\W98F)
1173                 {
1174                     Subtract (\MEMX, MEB0, MEL0)
1175                     Store (\GAPA, MGPB)
1176                     Store (\GAPL, MGPL)
1177                     If (LAnd (MGPB, MGPL))
1178                     {
1179                         Subtract (SizeOf (ME98), 0x02, Local0)
1180                         Name (MBF0, Buffer (Local0) {})
1181                         Add (Local0, SizeOf (MGAP), Local0)
1182                         Name (MBF1, Buffer (Local0) {})
1183                         Store (ME98, MBF0)
1184                         Concatenate (MBF0, MGAP, MBF1)
1185                         If (LNotEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1186                         {
1187                             Subtract (SizeOf (MBF1), 0x02, Local0)
1188                             Name (MBF2, Buffer (Local0) {})
1189                             Add (Local0, SizeOf (\_SB.PCI0.LPC.TPM._CRS), Local0)
1190                             Name (MBF3, Buffer (Local0) {})
1191                             Store (MBF1, MBF2)
1192                             Concatenate (MBF2, \_SB.PCI0.LPC.TPM._CRS, MBF3)
1193                             Return (MBF3)
1194                         }
1195                         Else
1196                         {
1197                             Return (MBF1)
1198                         }
1199                     }
1200                     Else
1201                     {
1202                         If (LNotEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1203                         {
1204                             Subtract (SizeOf (ME98), 0x02, Local0)
1205                             Name (MBF4, Buffer (Local0) {})
1206                             Add (Local0, SizeOf (\_SB.PCI0.LPC.TPM._CRS), Local0)
1207                             Name (MBF5, Buffer (Local0) {})
1208                             Store (ME98, MBF4)
1209                             Concatenate (MBF4, \_SB.PCI0.LPC.TPM._CRS, MBF5)
1210                             Return (MBF5)
1211                         }
1212                         Else
1213                         {
1214                             Return (ME98)
1215                         }
1216                     }
1217                 }
1218 
1219                 And (\_SB.PCI0.PAM1, 0x03, Local0)
1220                 If (Local0)
1221                 {
1222                     Store (0x4000, MC0L)
1223                     If (And (Local0, 0x02))
1224                     {
1225                         Store (0x01, MC0W)
1226                     }
1227                 }
1228 
1229                 And (\_SB.PCI0.PAM1, 0x30, Local0)
1230                 If (Local0)
1231                 {
1232                     Store (0x4000, MC4L)
1233                     If (And (Local0, 0x20))
1234                     {
1235                         Store (0x01, MC4W)
1236                     }
1237                 }
1238 
1239                 And (\_SB.PCI0.PAM2, 0x03, Local0)
1240                 If (Local0)
1241                 {
1242                     Store (0x4000, MC8L)
1243                     If (And (Local0, 0x02))
1244                     {
1245                         Store (0x01, MC8W)
1246                     }
1247                 }
1248 
1249                 And (\_SB.PCI0.PAM2, 0x30, Local0)
1250                 If (Local0)
1251                 {
1252                     Store (0x4000, MCCL)
1253                     If (And (Local0, 0x20))
1254                     {
1255                         Store (0x01, MCCW)
1256                     }
1257                 }
1258 
1259                 And (\_SB.PCI0.PAM3, 0x03, Local0)
1260                 If (Local0)
1261                 {
1262                     Store (0x4000, MD0L)
1263                     If (And (Local0, 0x02))
1264                     {
1265                         Store (0x01, MD0W)
1266                     }
1267                 }
1268 
1269                 And (\_SB.PCI0.PAM3, 0x30, Local0)
1270                 If (Local0)
1271                 {
1272                     Store (0x4000, MD4L)
1273                     If (And (Local0, 0x20))
1274                     {
1275                         Store (0x01, MD4W)
1276                     }
1277                 }
1278 
1279                 And (\_SB.PCI0.PAM4, 0x03, Local0)
1280                 If (Local0)
1281                 {
1282                     Store (0x4000, MD8L)
1283                     If (And (Local0, 0x02))
1284                     {
1285                         Store (0x01, MD8W)
1286                     }
1287                 }
1288 
1289                 And (\_SB.PCI0.PAM4, 0x30, Local0)
1290                 If (Local0)
1291                 {
1292                     Store (0x4000, MDCL)
1293                     If (And (Local0, 0x20))
1294                     {
1295                         Store (0x01, MDCW)
1296                     }
1297                 }
1298 
1299                 And (\_SB.PCI0.PAM5, 0x03, Local0)
1300                 If (Local0)
1301                 {
1302                     Store (0x4000, ME0L)
1303                     If (And (Local0, 0x02))
1304                     {
1305                         Store (0x01, ME0W)
1306                     }
1307                 }
1308 
1309                 And (\_SB.PCI0.PAM5, 0x30, Local0)
1310                 If (Local0)
1311                 {
1312                     Store (0x4000, ME4L)
1313                     If (And (Local0, 0x20))
1314                     {
1315                         Store (0x01, ME4W)
1316                     }
1317                 }
1318 
1319                 And (\_SB.PCI0.PAM6, 0x03, Local0)
1320                 If (Local0)
1321                 {
1322                     Store (0x4000, ME8L)
1323                     If (And (Local0, 0x02))
1324                     {
1325                         Store (0x01, ME8W)
1326                     }
1327                 }
1328 
1329                 And (\_SB.PCI0.PAM6, 0x30, Local0)
1330                 If (Local0)
1331                 {
1332                     Store (0x4000, MECL)
1333                     If (And (Local0, 0x20))
1334                     {
1335                         Store (0x01, MECW)
1336                     }
1337                 }
1338 
1339                 Subtract (\MEMX, MEB1, MEL1)
1340                 If (LNotEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1341                 {
1342                     Store (0x01400000, MEL2)
1343                     Store (0x00, MEL3)
1344                 }
1345 
1346                 Return (MEMS)
1347             }
1348         }
1349 
1350         Device (LID)
1351         {
1352             Name (_HID, EisaId ("PNP0C0D"))  // _HID: Hardware ID
1353             Method (_LID, 0, NotSerialized)  // _LID: Lid Status
1354             {
1355                 If (\H8DR)
1356                 {
1357                     Return (\_SB.PCI0.LPC.EC.HPLD)
1358                 }
1359                 Else
1360                 {
1361                     If (And (\RBEC (0x46), 0x04))
1362                     {
1363                         Return (0x01)
1364                     }
1365                     Else
1366                     {
1367                         Return (0x00)
1368                     }
1369                 }
1370             }
1371 
1372             Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
1373             {
1374                 If (LAnd (\W98F, LNot (\WMEF)))
1375                 {
1376                     Return (Package (0x02)
1377                     {
1378                         0x18, 
1379                         0x04
1380                     })
1381                 }
1382                 Else
1383                 {
1384                     Return (Package (0x02)
1385                     {
1386                         0x18, 
1387                         0x03
1388                     })
1389                 }
1390             }
1391 
1392             Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
1393             {
1394                 If (\H8DR)
1395                 {
1396                     If (Arg0)
1397                     {
1398                         Store (0x01, \_SB.PCI0.LPC.EC.HWLO)
1399                     }
1400                     Else
1401                     {
1402                         Store (0x00, \_SB.PCI0.LPC.EC.HWLO)
1403                     }
1404                 }
1405                 Else
1406                 {
1407                     If (Arg0)
1408                     {
1409                         \MBEC (0x32, 0xFF, 0x04)
1410                     }
1411                     Else
1412                     {
1413                         \MBEC (0x32, 0xFB, 0x00)
1414                     }
1415                 }
1416             }
1417         }
1418 
1419         Device (SLPB)
1420         {
1421             Name (_HID, EisaId ("PNP0C0E"))  // _HID: Hardware ID
1422             Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
1423             {
1424                 If (LAnd (\W98F, LNot (\WMEF)))
1425                 {
1426                     Return (Package (0x02)
1427                     {
1428                         0x18, 
1429                         0x04
1430                     })
1431                 }
1432                 Else
1433                 {
1434                     Return (Package (0x02)
1435                     {
1436                         0x18, 
1437                         0x03
1438                     })
1439                 }
1440             }
1441 
1442             Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
1443             {
1444                 If (\H8DR)
1445                 {
1446                     If (Arg0)
1447                     {
1448                         Store (0x01, \_SB.PCI0.LPC.EC.HWFN)
1449                     }
1450                     Else
1451                     {
1452                         Store (0x00, \_SB.PCI0.LPC.EC.HWFN)
1453                     }
1454                 }
1455                 Else
1456                 {
1457                     If (Arg0)
1458                     {
1459                         \MBEC (0x32, 0xFF, 0x10)
1460                     }
1461                     Else
1462                     {
1463                         \MBEC (0x32, 0xEF, 0x00)
1464                     }
1465                 }
1466             }
1467         }
1468 
1469         Device (PCI0)
1470         {
1471             Device (LPC)
1472             {
1473                 Name (_ADR, 0x001F0000)  // _ADR: Address
1474                 Name (_S3D, 0x03)  // _S3D: S3 Device State
1475                 Name (RID, 0x00)
1476                 Device (SIO)
1477                 {
1478                     Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
1479                     Name (_UID, 0x00)  // _UID: Unique ID
1480                     Name (SCRS, ResourceTemplate ()
1481                     {
1482                         IO (Decode16,
1483                             0x0010,             // Range Minimum
1484                             0x0010,             // Range Maximum
1485                             0x01,               // Alignment
1486                             0x10,               // Length
1487                             )
1488                         IO (Decode16,
1489                             0x0090,             // Range Minimum
1490                             0x0090,             // Range Maximum
1491                             0x01,               // Alignment
1492                             0x10,               // Length
1493                             )
1494                         IO (Decode16,
1495                             0x0024,             // Range Minimum
1496                             0x0024,             // Range Maximum
1497                             0x01,               // Alignment
1498                             0x02,               // Length
1499                             )
1500                         IO (Decode16,
1501                             0x0028,             // Range Minimum
1502                             0x0028,             // Range Maximum
1503                             0x01,               // Alignment
1504                             0x02,               // Length
1505                             )
1506                         IO (Decode16,
1507                             0x002C,             // Range Minimum
1508                             0x002C,             // Range Maximum
1509                             0x01,               // Alignment
1510                             0x02,               // Length
1511                             )
1512                         IO (Decode16,
1513                             0x0030,             // Range Minimum
1514                             0x0030,             // Range Maximum
1515                             0x01,               // Alignment
1516                             0x02,               // Length
1517                             )
1518                         IO (Decode16,
1519                             0x0034,             // Range Minimum
1520                             0x0034,             // Range Maximum
1521                             0x01,               // Alignment
1522                             0x02,               // Length
1523                             )
1524                         IO (Decode16,
1525                             0x0038,             // Range Minimum
1526                             0x0038,             // Range Maximum
1527                             0x01,               // Alignment
1528                             0x02,               // Length
1529                             )
1530                         IO (Decode16,
1531                             0x003C,             // Range Minimum
1532                             0x003C,             // Range Maximum
1533                             0x01,               // Alignment
1534                             0x02,               // Length
1535                             )
1536                         IO (Decode16,
1537                             0x00A4,             // Range Minimum
1538                             0x00A4,             // Range Maximum
1539                             0x01,               // Alignment
1540                             0x02,               // Length
1541                             )
1542                         IO (Decode16,
1543                             0x00A8,             // Range Minimum
1544                             0x00A8,             // Range Maximum
1545                             0x01,               // Alignment
1546                             0x02,               // Length
1547                             )
1548                         IO (Decode16,
1549                             0x00AC,             // Range Minimum
1550                             0x00AC,             // Range Maximum
1551                             0x01,               // Alignment
1552                             0x02,               // Length
1553                             )
1554                         IO (Decode16,
1555                             0x00B0,             // Range Minimum
1556                             0x00B0,             // Range Maximum
1557                             0x01,               // Alignment
1558                             0x06,               // Length
1559                             )
1560                         IO (Decode16,
1561                             0x00B8,             // Range Minimum
1562                             0x00B8,             // Range Maximum
1563                             0x01,               // Alignment
1564                             0x02,               // Length
1565                             )
1566                         IO (Decode16,
1567                             0x00BC,             // Range Minimum
1568                             0x00BC,             // Range Maximum
1569                             0x01,               // Alignment
1570                             0x02,               // Length
1571                             )
1572                         IO (Decode16,
1573                             0x0050,             // Range Minimum
1574                             0x0050,             // Range Maximum
1575                             0x01,               // Alignment
1576                             0x04,               // Length
1577                             )
1578                         IO (Decode16,
1579                             0x0072,             // Range Minimum
1580                             0x0072,             // Range Maximum
1581                             0x01,               // Alignment
1582                             0x06,               // Length
1583                             )
1584                         IO (Decode16,
1585                             0x164E,             // Range Minimum
1586                             0x164E,             // Range Maximum
1587                             0x01,               // Alignment
1588                             0x02,               // Length
1589                             )
1590                         IO (Decode16,
1591                             0x002E,             // Range Minimum
1592                             0x002E,             // Range Maximum
1593                             0x01,               // Alignment
1594                             0x02,               // Length
1595                             )
1596                         IO (Decode16,
1597                             0x1000,             // Range Minimum
1598                             0x1000,             // Range Maximum
1599                             0x01,               // Alignment
1600                             0x80,               // Length
1601                             )
1602                         IO (Decode16,
1603                             0x1180,             // Range Minimum
1604                             0x1180,             // Range Maximum
1605                             0x01,               // Alignment
1606                             0x40,               // Length
1607                             )
1608                         IO (Decode16,
1609                             0x0800,             // Range Minimum
1610                             0x0800,             // Range Maximum
1611                             0x01,               // Alignment
1612                             0x10,               // Length
1613                             )
1614                         IO (Decode16,
1615                             0x15E0,             // Range Minimum
1616                             0x15E0,             // Range Maximum
1617                             0x01,               // Alignment
1618                             0x10,               // Length
1619                             )
1620                         IO (Decode16,
1621                             0x1600,             // Range Minimum
1622                             0x1600,             // Range Maximum
1623                             0x01,               // Alignment
1624                             0x60,               // Length
1625                             )
1626                         Memory32Fixed (ReadWrite,
1627                             0xF0000000,         // Address Base
1628                             0x04000000,         // Address Length
1629                             )
1630                         Memory32Fixed (ReadWrite,
1631                             0xFED1C000,         // Address Base
1632                             0x00004000,         // Address Length
1633                             )
1634                         Memory32Fixed (ReadWrite,
1635                             0xFED14000,         // Address Base
1636                             0x00004000,         // Address Length
1637                             )
1638                         Memory32Fixed (ReadWrite,
1639                             0xFED18000,         // Address Base
1640                             0x00001000,         // Address Length
1641                             )
1642                         Memory32Fixed (ReadWrite,
1643                             0xFED19000,         // Address Base
1644                             0x00001000,         // Address Length
1645                             )
1646                         Memory32Fixed (ReadWrite,
1647                             0xFED45000,         // Address Base
1648                             0x00007000,         // Address Length
1649                             )
1650                     })
1651                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
1652                     {
1653                         If (LEqual (\_SB.PCI0.LPC.TPM._STA (), 0x0F))
1654                         {
1655                             Return (SCRS)
1656                         }
1657                         Else
1658                         {
1659                             Subtract (SizeOf (SCRS), 0x02, Local0)
1660                             Name (BUF0, Buffer (Local0) {})
1661                             Add (Local0, SizeOf (\_SB.PCI0.LPC.TPM._CRS), Local0)
1662                             Name (BUF1, Buffer (Local0) {})
1663                             Store (SCRS, BUF0)
1664                             Concatenate (BUF0, \_SB.PCI0.LPC.TPM._CRS, BUF1)
1665                             Return (BUF1)
1666                         }
1667                     }
1668                 }
1669 
1670                 OperationRegion (LPCS, PCI_Config, 0x00, 0x0100)
1671                 Field (LPCS, AnyAcc, NoLock, Preserve)
1672                 {
1673                     Offset (0x60), 
1674                     PIRA,   8, 
1675                     PIRB,   8, 
1676                     PIRC,   8, 
1677                     PIRD,   8, 
1678                     SERQ,   8, 
1679                     Offset (0x68), 
1680                     PIRE,   8, 
1681                     PIRF,   8, 
1682                     PIRG,   8, 
1683                     PIRH,   8, 
1684                     Offset (0x80), 
1685                     XU1A,   3, 
1686                         ,   1, 
1687                     XU2A,   3, 
1688                     Offset (0x81), 
1689                     XPA,    2, 
1690                         ,   2, 
1691                     XFA,    1, 
1692                     Offset (0x82), 
1693                     XU1E,   1, 
1694                     XU2E,   1, 
1695                     XPE,    1, 
1696                     XFE,    1, 
1697                     Offset (0x84), 
1698                     XG1E,   1, 
1699                         ,   6, 
1700                     XG1A,   9, 
1701                     Offset (0x88), 
1702                     XG2E,   1, 
1703                         ,   3, 
1704                     XG2A,   12, 
1705                     Offset (0xA0), 
1706                         ,   2, 
1707                     CLKR,   1, 
1708                     GYEN,   1, 
1709                         ,   3, 
1710                     C4C3,   1, 
1711                         ,   2, 
1712                     EXPE,   1, 
1713                     Offset (0xA2)
1714                 }
1715 
1716                 OperationRegion (LPIO, SystemIO, 0x1180, 0x40)
1717                 Field (LPIO, DWordAcc, NoLock, Preserve)
1718                 {
1719                     GU00,   8, 
1720                     GU01,   8, 
1721                     GU02,   8, 
1722                     GU03,   8, 
1723                     GI00,   8, 
1724                     GI01,   8, 
1725                     GI02,   8, 
1726                     GI03,   8, 
1727                     Offset (0x0C), 
1728                     GL00,   8, 
1729                     GL01,   8, 
1730                     GL02,   8, 
1731                     GL03,   8, 
1732                     Offset (0x18), 
1733                     GB00,   8, 
1734                     GB01,   8, 
1735                     GB02,   8, 
1736                     GB03,   8, 
1737                     Offset (0x2C), 
1738                     GV00,   8, 
1739                     GV01,   8, 
1740                     GV02,   8, 
1741                     GV03,   8, 
1742                     GU04,   8, 
1743                     GU05,   8, 
1744                     GU06,   8, 
1745                     GU07,   8, 
1746                     GI04,   8, 
1747                     GI05,   8, 
1748                     GI06,   8, 
1749                     GI07,   8, 
1750                     GL04,   8, 
1751                     GL05,   8, 
1752                     GL06,   8, 
1753                     GL07,   8
1754                 }
1755 
1756                 OperationRegion (PMIO, SystemIO, 0x1000, 0x80)
1757                 Field (PMIO, AnyAcc, NoLock, Preserve)
1758                 {
1759                     Offset (0x42), 
1760                         ,   1, 
1761                     SWGE,   1, 
1762                     Offset (0x64), 
1763                         ,   9, 
1764                     SCIS,   1, 
1765                     Offset (0x66)
1766                 }
1767 
1768                 Device (PIC)
1769                 {
1770                     Name (_HID, EisaId ("PNP0000"))  // _HID: Hardware ID
1771                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1772                     {
1773                         IO (Decode16,
1774                             0x0020,             // Range Minimum
1775                             0x0020,             // Range Maximum
1776                             0x01,               // Alignment
1777                             0x02,               // Length
1778                             )
1779                         IO (Decode16,
1780                             0x00A0,             // Range Minimum
1781                             0x00A0,             // Range Maximum
1782                             0x01,               // Alignment
1783                             0x02,               // Length
1784                             )
1785                         IO (Decode16,
1786                             0x04D0,             // Range Minimum
1787                             0x04D0,             // Range Maximum
1788                             0x01,               // Alignment
1789                             0x02,               // Length
1790                             )
1791                         IRQNoFlags ()
1792                             {2}
1793                     })
1794                 }
1795 
1796                 Device (TIMR)
1797                 {
1798                     Name (_HID, EisaId ("PNP0100"))  // _HID: Hardware ID
1799                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1800                     {
1801                         IO (Decode16,
1802                             0x0040,             // Range Minimum
1803                             0x0040,             // Range Maximum
1804                             0x01,               // Alignment
1805                             0x04,               // Length
1806                             )
1807                         IRQNoFlags ()
1808                             {0}
1809                     })
1810                 }
1811 
1812                 Device (HPET)
1813                 {
1814                     Name (_HID, EisaId ("PNP0103"))  // _HID: Hardware ID
1815                     Method (_STA, 0, NotSerialized)  // _STA: Status
1816                     {
1817                         If (W98F)
1818                         {
1819                             Return (0x00)
1820                         }
1821                         Else
1822                         {
1823                             If (LAnd (\WNTF, LNot (\WXPF)))
1824                             {
1825                                 Return (0x00)
1826                             }
1827                             Else
1828                             {
1829                                 Return (0x0F)
1830                             }
1831                         }
1832 
1833                         Return (0x00)
1834                     }
1835 
1836                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1837                     {
1838                         Memory32Fixed (ReadOnly,
1839                             0xFED00000,         // Address Base
1840                             0x00000400,         // Address Length
1841                             )
1842                     })
1843                 }
1844 
1845                 Device (DMAC)
1846                 {
1847                     Name (_HID, EisaId ("PNP0200"))  // _HID: Hardware ID
1848                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1849                     {
1850                         IO (Decode16,
1851                             0x0000,             // Range Minimum
1852                             0x0000,             // Range Maximum
1853                             0x01,               // Alignment
1854                             0x10,               // Length
1855                             )
1856                         IO (Decode16,
1857                             0x0080,             // Range Minimum
1858                             0x0080,             // Range Maximum
1859                             0x01,               // Alignment
1860                             0x10,               // Length
1861                             )
1862                         IO (Decode16,
1863                             0x00C0,             // Range Minimum
1864                             0x00C0,             // Range Maximum
1865                             0x01,               // Alignment
1866                             0x20,               // Length
1867                             )
1868                         DMA (Compatibility, BusMaster, Transfer8_16, )
1869                             {4}
1870                     })
1871                 }
1872 
1873                 Device (SPKR)
1874                 {
1875                     Name (_HID, EisaId ("PNP0800"))  // _HID: Hardware ID
1876                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1877                     {
1878                         IO (Decode16,
1879                             0x0061,             // Range Minimum
1880                             0x0061,             // Range Maximum
1881                             0x01,               // Alignment
1882                             0x01,               // Length
1883                             )
1884                     })
1885                 }
1886 
1887                 Device (FPU)
1888                 {
1889                     Name (_HID, EisaId ("PNP0C04"))  // _HID: Hardware ID
1890                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1891                     {
1892                         IO (Decode16,
1893                             0x00F0,             // Range Minimum
1894                             0x00F0,             // Range Maximum
1895                             0x01,               // Alignment
1896                             0x01,               // Length
1897                             )
1898                         IRQNoFlags ()
1899                             {13}
1900                     })
1901                 }
1902 
1903                 Device (RTC)
1904                 {
1905                     Name (_HID, EisaId ("PNP0B00"))  // _HID: Hardware ID
1906                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1907                     {
1908                         IO (Decode16,
1909                             0x0070,             // Range Minimum
1910                             0x0070,             // Range Maximum
1911                             0x01,               // Alignment
1912                             0x02,               // Length
1913                             )
1914                         IRQNoFlags ()
1915                             {8}
1916                     })
1917                 }
1918 
1919                 Device (KBD)
1920                 {
1921                     Name (_HID, EisaId ("PNP0303"))  // _HID: Hardware ID
1922                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1923                     {
1924                         IO (Decode16,
1925                             0x0060,             // Range Minimum
1926                             0x0060,             // Range Maximum
1927                             0x01,               // Alignment
1928                             0x01,               // Length
1929                             )
1930                         IO (Decode16,
1931                             0x0064,             // Range Minimum
1932                             0x0064,             // Range Maximum
1933                             0x01,               // Alignment
1934                             0x01,               // Length
1935                             )
1936                         IRQNoFlags ()
1937                             {1}
1938                     })
1939                 }
1940 
1941                 Device (MOU)
1942                 {
1943                     Name (_HID, EisaId ("IBM3780"))  // _HID: Hardware ID
1944                     Name (_CID, EisaId ("PNP0F13"))  // _CID: Compatible ID
1945                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
1946                     {
1947                         IRQNoFlags ()
1948                             {12}
1949                     })
1950                 }
1951 
1952                 OperationRegion (IMGA, SystemIO, 0x15E0, 0x10)
1953                 Field (IMGA, ByteAcc, NoLock, Preserve)
1954                 {
1955                     Offset (0x01), 
1956                     Offset (0x02), 
1957                     Offset (0x03), 
1958                     WAKR,   16, 
1959                     Offset (0x0C), 
1960                     GAIX,   8, 
1961                     Offset (0x0E), 
1962                     GADT,   8, 
1963                     Offset (0x10)
1964                 }
1965 
1966                 IndexField (GAIX, GADT, ByteAcc, NoLock, Preserve)
1967                 {
1968                     Offset (0x41), 
1969                     VAUX,   2, 
1970                         ,   1, 
1971                     WOLE,   1, 
1972                     Offset (0x42), 
1973                     Offset (0x50), 
1974                         ,   1, 
1975                     CBPW,   1, 
1976                     CBSL,   1, 
1977                     VDPW,   1, 
1978                     PDNE,   1, 
1979                     BLPL,   1, 
1980                         ,   1, 
1981                     LEDS,   1, 
1982                     TP4R,   1, 
1983                     PADR,   1, 
1984                     BPAD,   1, 
1985                         ,   1, 
1986                         ,   1, 
1987                     PADD,   1, 
1988                     Offset (0x53), 
1989                     DLAN,   1, 
1990                     Offset (0x60), 
1991                     BUSC,   1, 
1992                     BUSD,   1, 
1993                         ,   1, 
1994                     DSCI,   1, 
1995                     Offset (0x61), 
1996                     EPWG,   1, 
1997                         ,   2, 
1998                     DSCS,   1, 
1999                     Offset (0x62), 
2000                     CSON,   1, 
2001                     URST,   1, 
2002                     Offset (0x70), 
2003                     GDR0,   1, 
2004                     GDR1,   1, 
2005                     GDR2,   1, 
2006                     Offset (0x71), 
2007                     GDT0,   1, 
2008                     GDT1,   1, 
2009                     GDT2,   1, 
2010                     Offset (0xC2), 
2011                     GAID,   8
2012                 }
2013 
2014                 OperationRegion (NCFG, SystemIO, 0x2E, 0x02)
2015                 Field (NCFG, ByteAcc, NoLock, Preserve)
2016                 {
2017                     INDX,   8, 
2018                     DATA,   8
2019                 }
2020 
2021                 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2022                 {
2023                     Offset (0x07), 
2024                     LDN,    8, 
2025                     Offset (0x20), 
2026                     SIOD,   8, 
2027                     Offset (0x22), 
2028                     SCF2,   8, 
2029                     Offset (0x24), 
2030                     SCF4,   8, 
2031                         ,   2, 
2032                     PPSE,   1, 
2033                         ,   4, 
2034                     PNF,    1, 
2035                     FDCD,   1, 
2036                     PPD,    1, 
2037                     SP2D,   1, 
2038                     SP1D,   1, 
2039                         ,   1, 
2040                     GPSR,   2, 
2041                     Offset (0x27), 
2042                     SRID,   8, 
2043                     Offset (0x29), 
2044                     SCF9,   8, 
2045                     Offset (0x2B), 
2046                     Offset (0x30), 
2047                     LDA,    1, 
2048                     Offset (0x31), 
2049                     Offset (0x60), 
2050                     IOHI,   8, 
2051                     IOLW,   8, 
2052                     Offset (0x70), 
2053                     IRQN,   4, 
2054                     IRQW,   1, 
2055                     Offset (0x71), 
2056                     IRQT,   1, 
2057                     IRQL,   1, 
2058                     Offset (0x72), 
2059                     Offset (0x74), 
2060                     DMA0,   3, 
2061                     Offset (0x75), 
2062                     DMA1,   3, 
2063                     Offset (0x76)
2064                 }
2065 
2066                 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2067                 {
2068                     Offset (0xF0), 
2069                     PTRS,   1, 
2070                     PPMC,   1, 
2071                         ,   2, 
2072                     PERA,   1, 
2073                     PMDS,   3
2074                 }
2075 
2076                 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2077                 {
2078                     Offset (0xF0), 
2079                     STRS,   1, 
2080                     SPMC,   1, 
2081                     SBSY,   1, 
2082                         ,   4, 
2083                     SBSE,   1
2084                 }
2085 
2086                 IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
2087                 {
2088                     Offset (0xF0), 
2089                     GPPS,   8, 
2090                     GPPC,   8, 
2091                     GPER,   8
2092                 }
2093 
2094                 OperationRegion (CFGS, SystemIO, 0x164E, 0x02)
2095                 Field (CFGS, ByteAcc, NoLock, Preserve)
2096                 {
2097                     NDXS,   8, 
2098                     ATAS,   8
2099                 }
2100 
2101                 IndexField (NDXS, ATAS, ByteAcc, NoLock, Preserve)
2102                 {
2103                     Offset (0x07), 
2104                     LDNS,   8, 
2105                     Offset (0x20), 
2106                     Offset (0x21), 
2107                     Offset (0x22), 
2108                     Offset (0x23), 
2109                     Offset (0x24), 
2110                     Offset (0x25), 
2111                         ,   2, 
2112                     PSES,   1, 
2113                         ,   4, 
2114                     PNFS,   1, 
2115                     DCDS,   1, 
2116                     PPDS,   1, 
2117                     SP2S,   1, 
2118                     SP1S,   1, 
2119                         ,   1, 
2120                     PSRS,   2, 
2121                     Offset (0x27), 
2122                     RIDS,   8, 
2123                     Offset (0x29), 
2124                     CCSS,   2, 
2125                     CCES,   1, 
2126                     MCSS,   1, 
2127                     MESS,   1, 
2128                     Offset (0x2A), 
2129                     Offset (0x2B), 
2130                     Offset (0x30), 
2131                     LDAS,   1, 
2132                     Offset (0x31), 
2133                     Offset (0x60), 
2134                     OHIS,   8, 
2135                     OLWS,   8, 
2136                     Offset (0x70), 
2137                     RQNS,   4, 
2138                     RQWS,   1, 
2139                     Offset (0x71), 
2140                     RQTS,   1, 
2141                     RQLS,   1, 
2142                     Offset (0x72), 
2143                     Offset (0x74), 
2144                     MA0S,   3, 
2145                     Offset (0x75), 
2146                     MA1S,   3, 
2147                     Offset (0x76)
2148                 }
2149 
2150                 IndexField (NDXS, ATAS, ByteAcc, NoLock, Preserve)
2151                 {
2152                     Offset (0xF0), 
2153                     TRSS,   1, 
2154                     PMCS,   1, 
2155                     BSYS,   1, 
2156                         ,   4, 
2157                     SESS,   1
2158                 }
2159 
2160                 OperationRegion (NSDL, SystemIO, 0x164C, 0x01)
2161                 Field (NSDL, ByteAcc, NoLock, Preserve)
2162                 {
2163                     DLPC,   8
2164                 }
2165 
2166                 OperationRegion (NSIO, SystemIO, 0x1680, 0x0C)
2167                 Field (NSIO, ByteAcc, NoLock, Preserve)
2168                 {
2169                     DRST,   1, 
2170                     DLPD,   1, 
2171                     ULRT,   1, 
2172                     ULPD,   1, 
2173                     Offset (0x01), 
2174                         ,   4, 
2175                     DKI0,   1, 
2176                     Offset (0x02), 
2177                     Offset (0x09), 
2178                     DKI1,   1, 
2179                     DKI2,   1
2180                 }
2181 
2182                 OperationRegion (DSIO, SystemIO, 0x1620, 0x0C)
2183                 Field (DSIO, ByteAcc, NoLock, Preserve)
2184                 {
2185                         ,   1, 
2186                     DUSB,   1, 
2187                     Offset (0x01), 
2188                     BAHD,   1, 
2189                     BAAT,   1, 
2190                     Offset (0x02), 
2191                     GER0,   8, 
2192                     ES00,   1, 
2193                     ES01,   1, 
2194                         ,   5, 
2195                     ES07,   1, 
2196                         ,   6, 
2197                     GO16,   1, 
2198                     Offset (0x05), 
2199                     Offset (0x07), 
2200                     ES10,   1, 
2201                     Offset (0x08), 
2202                     UBPW,   1, 
2203                     UHPW,   1, 
2204                     Offset (0x09), 
2205                     BPRS,   1, 
2206                     UPRS,   1
2207                 }
2208 
2209                 Scope (\_SB.PCI0.LPC)
2210                 {
2211                     Device (DURT)
2212                     {
2213                         Name (_UID, 0x01)  // _UID: Unique ID
2214                         Method (_STA, 0, NotSerialized)  // _STA: Status
2215                         {
2216                             If (HDSP)
2217                             {
2218                                 Return (0x00)
2219                             }
2220 
2221                             If (LEqual (\_SB.GDCK._STA (), 0x00))
2222                             {
2223                                 Return (0x00)
2224                             }
2225                             Else
2226                             {
2227                                 If (XU1E)
2228                                 {
2229                                     Return (0x0F)
2230                                 }
2231                                 Else
2232                                 {
2233                                     Return (0x0D)
2234                                 }
2235                             }
2236                         }
2237 
2238                         Name (_HID, EisaId ("PNP0501"))  // _HID: Hardware ID
2239                         Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
2240                         {
2241                             0x18, 
2242                             0x03
2243                         })
2244                         Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
2245                         {
2246                             If (\H8DR)
2247                             {
2248                                 If (Arg0)
2249                                 {
2250                                     Store (0x01, \_SB.PCI0.LPC.EC.HWRI)
2251                                 }
2252                                 Else
2253                                 {
2254                                     Store (0x00, \_SB.PCI0.LPC.EC.HWRI)
2255                                 }
2256                             }
2257                             Else
2258                             {
2259                                 If (Arg0)
2260                                 {
2261                                     \MBEC (0x32, 0xFF, 0x40)
2262                                 }
2263                                 Else
2264                                 {
2265                                     \MBEC (0x32, 0xBF, 0x00)
2266                                 }
2267                             }
2268                         }
2269 
2270                         Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2271                         {
2272                             Store (0x00, XU1E)
2273                             Store (0x03, LDN)
2274                             Store (0x00, IRQN)
2275                             Store (0x00, LDA)
2276                             Store (0x01, SP1D)
2277                         }
2278 
2279                         Name (U1BF, ResourceTemplate ()
2280                         {
2281                             IO (Decode16,
2282                                 0x0000,             // Range Minimum
2283                                 0x0000,             // Range Maximum
2284                                 0x01,               // Alignment
2285                                 0x08,               // Length
2286                                 _Y19)
2287                             IRQNoFlags (_Y1A)
2288                                 {}
2289                         })
2290                         CreateWordField (U1BF, \_SB.PCI0.LPC.DURT._Y19._MIN, U1MN)  // _MIN: Minimum Base Address
2291                         CreateWordField (U1BF, \_SB.PCI0.LPC.DURT._Y19._MAX, U1MX)  // _MAX: Maximum Base Address
2292                         CreateWordField (U1BF, \_SB.PCI0.LPC.DURT._Y1A._INT, U1IQ)  // _INT: Interrupts
2293                         Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2294                         {
2295                             Store (0x03, LDN)
2296                             Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
2297                             Store (Local0, U1MN)
2298                             Store (Local0, U1MX)
2299                             Store (IRQN, Local0)
2300                             If (Local0)
2301                             {
2302                                 ShiftLeft (0x01, IRQN, U1IQ)
2303                             }
2304                             Else
2305                             {
2306                                 Store (0x00, U1IQ)
2307                             }
2308 
2309                             Return (U1BF)
2310                         }
2311 
2312                         Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2313                         {
2314                             StartDependentFn (0x00, 0x00)
2315                             {
2316                                 IO (Decode16,
2317                                     0x03F8,             // Range Minimum
2318                                     0x03F8,             // Range Maximum
2319                                     0x01,               // Alignment
2320                                     0x08,               // Length
2321                                     )
2322                                 IRQNoFlags ()
2323                                     {4}
2324                             }
2325                             StartDependentFn (0x01, 0x00)
2326                             {
2327                                 IO (Decode16,
2328                                     0x02F8,             // Range Minimum
2329                                     0x02F8,             // Range Maximum
2330                                     0x01,               // Alignment
2331                                     0x08,               // Length
2332                                     )
2333                                 IRQNoFlags ()
2334                                     {3}
2335                             }
2336                             StartDependentFn (0x01, 0x00)
2337                             {
2338                                 IO (Decode16,
2339                                     0x03E8,             // Range Minimum
2340                                     0x03E8,             // Range Maximum
2341                                     0x01,               // Alignment
2342                                     0x08,               // Length
2343                                     )
2344                                 IRQNoFlags ()
2345                                     {4}
2346                             }
2347                             StartDependentFn (0x01, 0x00)
2348                             {
2349                                 IO (Decode16,
2350                                     0x02E8,             // Range Minimum
2351                                     0x02E8,             // Range Maximum
2352                                     0x01,               // Alignment
2353                                     0x08,               // Length
2354                                     )
2355                                 IRQNoFlags ()
2356                                     {3}
2357                             }
2358                             StartDependentFn (0x02, 0x00)
2359                             {
2360                                 IO (Decode16,
2361                                     0x03F8,             // Range Minimum
2362                                     0x03F8,             // Range Maximum
2363                                     0x01,               // Alignment
2364                                     0x08,               // Length
2365                                     )
2366                                 IRQNoFlags ()
2367                                     {3,5,7}
2368                             }
2369                             StartDependentFn (0x02, 0x00)
2370                             {
2371                                 IO (Decode16,
2372                                     0x02F8,             // Range Minimum
2373                                     0x02F8,             // Range Maximum
2374                                     0x01,               // Alignment
2375                                     0x08,               // Length
2376                                     )
2377                                 IRQNoFlags ()
2378                                     {4,5,7}
2379                             }
2380                             StartDependentFn (0x02, 0x00)
2381                             {
2382                                 IO (Decode16,
2383                                     0x03E8,             // Range Minimum
2384                                     0x03E8,             // Range Maximum
2385                                     0x01,               // Alignment
2386                                     0x08,               // Length
2387                                     )
2388                                 IRQNoFlags ()
2389                                     {3,5,7}
2390                             }
2391                             StartDependentFn (0x02, 0x00)
2392                             {
2393                                 IO (Decode16,
2394                                     0x02E8,             // Range Minimum
2395                                     0x02E8,             // Range Maximum
2396                                     0x01,               // Alignment
2397                                     0x08,               // Length
2398                                     )
2399                                 IRQNoFlags ()
2400                                     {4,5,7}
2401                             }
2402                             EndDependentFn ()
2403                         })
2404                         Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2405                         {
2406                             CreateByteField (Arg0, 0x02, RUIL)
2407                             CreateByteField (Arg0, 0x03, RUIH)
2408                             CreateWordField (Arg0, 0x02, RUIO)
2409                             CreateWordField (Arg0, 0x09, RUIQ)
2410                             Store (0x03, LDN)
2411                             Store (0x00, LDA)
2412                             Store (RUIL, IOLW)
2413                             Store (RUIH, IOHI)
2414                             If (RUIQ)
2415                             {
2416                                 FindSetRightBit (RUIQ, Local0)
2417                                 Store (Decrement (Local0), IRQN)
2418                             }
2419                             Else
2420                             {
2421                                 Store (0x00, IRQN)
2422                             }
2423 
2424                             Store (0x00, SP1D)
2425                             Store (0x01, LDA)
2426                             If (LEqual (RUIO, 0x03F8))
2427                             {
2428                                 Store (0x00, XU1A)
2429                             }
2430                             Else
2431                             {
2432                                 If (LEqual (RUIO, 0x02F8))
2433                                 {
2434                                     Store (0x01, XU1A)
2435                                 }
2436                                 Else
2437                                 {
2438                                     If (LEqual (RUIO, 0x03E8))
2439                                     {
2440                                         Store (0x07, XU1A)
2441                                     }
2442                                     Else
2443                                     {
2444                                         If (LEqual (RUIO, 0x02E8))
2445                                         {
2446                                             Store (0x05, XU1A)
2447                                         }
2448                                         Else
2449                                         {
2450                                             Fatal (0x02, 0x90020000, 0x01B8)
2451                                         }
2452                                     }
2453                                 }
2454                             }
2455 
2456                             Store (0x01, XU1E)
2457                         }
2458 
2459                         Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
2460                         {
2461                             Store (0x03, LDN)
2462                             If (LDA)
2463                             {
2464                                 Return (0x00)
2465                             }
2466                             Else
2467                             {
2468                                 Return (0x03)
2469                             }
2470                         }
2471 
2472                         Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
2473                         {
2474                         }
2475 
2476                         Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
2477                         {
2478                         }
2479                     }
2480 
2481                     Device (DLPT)
2482                     {
2483                         Name (_UID, 0x01)  // _UID: Unique ID
2484                         Method (_STA, 0, NotSerialized)  // _STA: Status
2485                         {
2486                             If (HDPP)
2487                             {
2488                                 Return (0x00)
2489                             }
2490 
2491                             If (LEqual (\_SB.GDCK._STA (), 0x00))
2492                             {
2493                                 Return (0x00)
2494                             }
2495                             Else
2496                             {
2497                                 If (LNotEqual (\PMOD, 0x03))
2498                                 {
2499                                     If (XPE)
2500                                     {
2501                                         Return (0x0F)
2502                                     }
2503                                     Else
2504                                     {
2505                                         Return (0x0D)
2506                                     }
2507                                 }
2508                                 Else
2509                                 {
2510                                     Return (0x00)
2511                                 }
2512                             }
2513                         }
2514 
2515                         Name (_HID, EisaId ("PNP0400"))  // _HID: Hardware ID
2516                         Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2517                         {
2518                             Store (0x00, XPE)
2519                             Store (0x01, LDN)
2520                             Store (0x00, IRQN)
2521                             Store (0x00, LDA)
2522                             Store (0x01, PPD)
2523                         }
2524 
2525                         Name (PPBF, ResourceTemplate ()
2526                         {
2527                             IO (Decode16,
2528                                 0x0000,             // Range Minimum
2529                                 0x0000,             // Range Maximum
2530                                 0x01,               // Alignment
2531                                 0x00,               // Length
2532                                 _Y1B)
2533                             IRQNoFlags (_Y1C)
2534                                 {}
2535                         })
2536                         CreateWordField (PPBF, \_SB.PCI0.LPC.DLPT._Y1B._MIN, LPN0)  // _MIN: Minimum Base Address
2537                         CreateWordField (PPBF, \_SB.PCI0.LPC.DLPT._Y1B._MAX, LPX0)  // _MAX: Maximum Base Address
2538                         CreateByteField (PPBF, \_SB.PCI0.LPC.DLPT._Y1B._LEN, LPL0)  // _LEN: Length
2539                         CreateWordField (PPBF, \_SB.PCI0.LPC.DLPT._Y1C._INT, LPIQ)  // _INT: Interrupts
2540                         Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2541                         {
2542                             If (LEqual (\PMOD, 0x03))
2543                             {
2544                                 Return (PPBF)
2545                             }
2546 
2547                             Store (0x01, LDN)
2548                             Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
2549                             Store (Local0, LPN0)
2550                             Store (Local0, LPX0)
2551                             If (LEqual (Local0, 0x03BC))
2552                             {
2553                                 Store (0x03, LPL0)
2554                             }
2555                             Else
2556                             {
2557                                 Store (0x08, LPL0)
2558                             }
2559 
2560                             Store (IRQN, Local0)
2561                             If (Local0)
2562                             {
2563                                 ShiftLeft (0x01, IRQN, LPIQ)
2564                             }
2565                             Else
2566                             {
2567                                 Store (0x00, LPIQ)
2568                             }
2569 
2570                             Return (PPBF)
2571                         }
2572 
2573                         Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
2574                         {
2575                             If (\PMOD)
2576                             {
2577                                 Return (PEPP)
2578                             }
2579                             Else
2580                             {
2581                                 Return (PLPT)
2582                             }
2583                         }
2584 
2585                         Name (PLPT, ResourceTemplate ()
2586                         {
2587                             StartDependentFnNoPri ()
2588                             {
2589                                 IO (Decode16,
2590                                     0x03BC,             // Range Minimum
2591                                     0x03BC,             // Range Maximum
2592                                     0x01,               // Alignment
2593                                     0x03,               // Length
2594                                     )
2595                                 IRQNoFlags ()
2596                                     {7}
2597                             }
2598                             StartDependentFnNoPri ()
2599                             {
2600                                 IO (Decode16,
2601                                     0x0378,             // Range Minimum
2602                                     0x0378,             // Range Maximum
2603                                     0x01,               // Alignment
2604                                     0x08,               // Length
2605                                     )
2606                                 IRQNoFlags ()
2607                                     {7}
2608                             }
2609                             StartDependentFnNoPri ()
2610                             {
2611                                 IO (Decode16,
2612                                     0x0278,             // Range Minimum
2613                                     0x0278,             // Range Maximum
2614                                     0x01,               // Alignment
2615                                     0x08,               // Length
2616                                     )
2617                                 IRQNoFlags ()
2618                                     {5}
2619                             }
2620                             StartDependentFnNoPri ()
2621                             {
2622                                 IO (Decode16,
2623                                     0x03BC,             // Range Minimum
2624                                     0x03BC,             // Range Maximum
2625                                     0x01,               // Alignment
2626                                     0x03,               // Length
2627                                     )
2628                                 IRQNoFlags ()
2629                                     {5}
2630                             }
2631                             StartDependentFnNoPri ()
2632                             {
2633                                 IO (Decode16,
2634                                     0x0378,             // Range Minimum
2635                                     0x0378,             // Range Maximum
2636                                     0x01,               // Alignment
2637                                     0x08,               // Length
2638                                     )
2639                                 IRQNoFlags ()
2640                                     {5}
2641                             }
2642                             StartDependentFnNoPri ()
2643                             {
2644                                 IO (Decode16,
2645                                     0x0278,             // Range Minimum
2646                                     0x0278,             // Range Maximum
2647                                     0x01,               // Alignment
2648                                     0x08,               // Length
2649                                     )
2650                                 IRQNoFlags ()
2651                                     {7}
2652                             }
2653                             EndDependentFn ()
2654                         })
2655                         Name (PEPP, ResourceTemplate ()
2656                         {
2657                             StartDependentFnNoPri ()
2658                             {
2659                                 IO (Decode16,
2660                                     0x0378,             // Range Minimum
2661                                     0x0378,             // Range Maximum
2662                                     0x01,               // Alignment
2663                                     0x08,               // Length
2664                                     )
2665                                 IRQNoFlags ()
2666                                     {7}
2667                             }
2668                             StartDependentFnNoPri ()
2669                             {
2670                                 IO (Decode16,
2671                                     0x0278,             // Range Minimum
2672                                     0x0278,             // Range Maximum
2673                                     0x01,               // Alignment
2674                                     0x08,               // Length
2675                                     )
2676                                 IRQNoFlags ()
2677                                     {5}
2678                             }
2679                             StartDependentFnNoPri ()
2680                             {
2681                                 IO (Decode16,
2682                                     0x0378,             // Range Minimum
2683                                     0x0378,             // Range Maximum
2684                                     0x01,               // Alignment
2685                                     0x08,               // Length
2686                                     )
2687                                 IRQNoFlags ()
2688                                     {5}
2689                             }
2690                             StartDependentFnNoPri ()
2691                             {
2692                                 IO (Decode16,
2693                                     0x0278,             // Range Minimum
2694                                     0x0278,             // Range Maximum
2695                                     0x01,               // Alignment
2696                                     0x08,               // Length
2697                                     )
2698                                 IRQNoFlags ()
2699                                     {7}
2700                             }
2701                             EndDependentFn ()
2702                         })
2703                         Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2704                         {
2705                             CreateByteField (Arg0, 0x02, RLIL)
2706                             CreateByteField (Arg0, 0x03, RLIH)
2707                             CreateWordField (Arg0, 0x02, RLIO)
2708                             CreateWordField (Arg0, 0x09, RLIQ)
2709                             Store (0x01, LDN)
2710                             Store (0x00, LDA)
2711                             Store (RLIL, IOLW)
2712                             Store (RLIH, IOHI)
2713                             If (RLIQ)
2714                             {
2715                                 FindSetRightBit (RLIQ, Local0)
2716                                 Store (Decrement (Local0), IRQN)
2717                             }
2718                             Else
2719                             {
2720                                 Store (0x00, IRQN)
2721                             }
2722 
2723                             If (LEqual (\PMOD, 0x00))
2724                             {
2725                                 If (\PDIR)
2726                                 {
2727                                     Store (0x01, PMDS)
2728                                 }
2729                                 Else
2730                                 {
2731                                     Store (0x00, PMDS)
2732                                 }
2733                             }
2734                             Else
2735                             {
2736                                 If (LEqual (\PMOD, 0x01))
2737                                 {
2738                                     Store (0x02, PMDS)
2739                                 }
2740                                 Else
2741                                 {
2742                                     Store (0x03, PMDS)
2743                                 }
2744                             }
2745 
2746                             Store (0x00, PPD)
2747                             Store (0x01, LDA)
2748                             If (LEqual (RLIO, 0x0378))
2749                             {
2750                                 Store (0x00, XPA)
2751                             }
2752                             Else
2753                             {
2754                                 If (LEqual (RLIO, 0x0278))
2755                                 {
2756                                     Store (0x01, XPA)
2757                                 }
2758                                 Else
2759                                 {
2760                                     If (LEqual (RLIO, 0x03BC))
2761                                     {
2762                                         Store (0x02, XPA)
2763                                     }
2764                                     Else
2765                                     {
2766                                         Fatal (0x02, 0x90020000, 0x01D1)
2767                                     }
2768                                 }
2769                             }
2770 
2771                             Store (0x01, XPE)
2772                         }
2773 
2774                         Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
2775                         {
2776                             Store (0x01, LDN)
2777                             If (LDA)
2778                             {
2779                                 Return (0x00)
2780                             }
2781                             Else
2782                             {
2783                                 Return (0x03)
2784                             }
2785                         }
2786 
2787                         Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
2788                         {
2789                             Store (0x01, LDN)
2790                             Store (0x01, LDA)
2791                         }
2792 
2793                         Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
2794                         {
2795                             Store (0x01, LDN)
2796                             Store (0x00, LDA)
2797                         }
2798                     }
2799 
2800                     Device (DECP)
2801                     {
2802                         Name (_UID, 0x01)  // _UID: Unique ID
2803                         Method (_STA, 0, NotSerialized)  // _STA: Status
2804                         {
2805                             If (LEqual (\_SB.GDCK._STA (), 0x00))
2806                             {
2807                                 Return (0x00)
2808                             }
2809                             Else
2810                             {
2811                                 If (LEqual (\PMOD, 0x03))
2812                                 {
2813                                     If (XPE)
2814                                     {
2815                                         Return (0x0F)
2816                                     }
2817                                     Else
2818                                     {
2819                                         Return (0x0D)
2820                                     }
2821                                 }
2822                                 Else
2823                                 {
2824                                     Return (0x00)
2825                                 }
2826                             }
2827                         }
2828 
2829                         Name (_HID, EisaId ("PNP0401"))  // _HID: Hardware ID
2830                         Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2831                         {
2832                             Store (0x00, XPE)
2833                             Store (0x01, LDN)
2834                             Store (0x00, IRQN)
2835                             Store (0x00, LDA)
2836                             Store (0x01, PPD)
2837                         }
2838 
2839                         Name (EPBF, ResourceTemplate ()
2840                         {
2841                             IO (Decode16,
2842                                 0x0000,             // Range Minimum
2843                                 0x0000,             // Range Maximum
2844                                 0x01,               // Alignment
2845                                 0x00,               // Length
2846                                 _Y1D)
2847                             IO (Decode16,
2848                                 0x0000,             // Range Minimum
2849                                 0x0000,             // Range Maximum
2850                                 0x01,               // Alignment
2851                                 0x00,               // Length
2852                                 _Y1E)
2853                             IRQNoFlags (_Y1F)
2854                                 {}
2855                             DMA (Compatibility, NotBusMaster, Transfer8, _Y20)
2856                                 {}
2857                         })
2858                         CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1D._MIN, ECN0)  // _MIN: Minimum Base Address
2859                         CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1D._MAX, ECX0)  // _MAX: Maximum Base Address
2860                         CreateByteField (EPBF, \_SB.PCI0.LPC.DECP._Y1D._LEN, ECL0)  // _LEN: Length
2861                         CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1E._MIN, ECN1)  // _MIN: Minimum Base Address
2862                         CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1E._MAX, ECX1)  // _MAX: Maximum Base Address
2863                         CreateByteField (EPBF, \_SB.PCI0.LPC.DECP._Y1E._LEN, ECL1)  // _LEN: Length
2864                         CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y1F._INT, ECIQ)  // _INT: Interrupts
2865                         CreateWordField (EPBF, \_SB.PCI0.LPC.DECP._Y20._DMA, ECDQ)  // _DMA: Direct Memory Access
2866                         Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2867                         {
2868                             If (LNotEqual (\PMOD, 0x03))
2869                             {
2870                                 Return (EPBF)
2871                             }
2872 
2873                             Store (0x01, LDN)
2874                             Or (ShiftLeft (IOHI, 0x08), IOLW, Local0)
2875                             Store (Local0, ECN0)
2876                             Store (Local0, ECX0)
2877                             Add (Local0, 0x0400, ECN1)
2878                             Add (Local0, 0x0400, ECX1)
2879                             If (LEqual (Local0, 0x03BC))
2880                             {
2881                                 Store (0x03, ECL0)
2882                                 Store (0x03, ECL1)
2883                             }
2884                             Else
2885                             {
2886                                 Store (0x08, ECL0)
2887                                 Store (0x08, ECL1)
2888                             }
2889 
2890                             Store (IRQN, Local0)
2891                             If (Local0)
2892                             {
2893                                 ShiftLeft (0x01, IRQN, ECIQ)
2894                             }
2895                             Else
2896                             {
2897                                 Store (0x00, ECIQ)
2898                             }
2899 
2900                             Store (DMA0, Local0)
2901                             If (LLess (Local0, 0x04))
2902                             {
2903                                 ShiftLeft (0x01, Local0, ECDQ)
2904                             }
2905                             Else
2906                             {
2907                                 Store (0x00, ECDQ)
2908                             }
2909 
2910                             Return (EPBF)
2911                         }
2912 
2913                         Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2914                         {
2915                             StartDependentFnNoPri ()
2916                             {
2917                                 IO (Decode16,
2918                                     0x0378,             // Range Minimum
2919                                     0x0378,             // Range Maximum
2920                                     0x01,               // Alignment
2921                                     0x08,               // Length
2922                                     )
2923                                 IO (Decode16,
2924                                     0x0778,             // Range Minimum
2925                                     0x0778,             // Range Maximum
2926                                     0x01,               // Alignment
2927                                     0x08,               // Length
2928                                     )
2929                                 IRQNoFlags ()
2930                                     {7}
2931                                 DMA (Compatibility, NotBusMaster, Transfer8, )
2932                                     {0,1,3}
2933                             }
2934                             StartDependentFnNoPri ()
2935                             {
2936                                 IO (Decode16,
2937                                     0x0278,             // Range Minimum
2938                                     0x0278,             // Range Maximum
2939                                     0x01,               // Alignment
2940                                     0x08,               // Length
2941                                     )
2942                                 IO (Decode16,
2943                                     0x0678,             // Range Minimum
2944                                     0x0678,             // Range Maximum
2945                                     0x01,               // Alignment
2946                                     0x08,               // Length
2947                                     )
2948                                 IRQNoFlags ()
2949                                     {5}
2950                                 DMA (Compatibility, NotBusMaster, Transfer8, )
2951                                     {0,1,3}
2952                             }
2953                             StartDependentFnNoPri ()
2954                             {
2955                                 IO (Decode16,
2956                                     0x03BC,             // Range Minimum
2957                                     0x03BC,             // Range Maximum
2958                                     0x01,               // Alignment
2959                                     0x03,               // Length
2960                                     )
2961                                 IO (Decode16,
2962                                     0x07BC,             // Range Minimum
2963                                     0x07BC,             // Range Maximum
2964                                     0x01,               // Alignment
2965                                     0x03,               // Length
2966                                     )
2967                                 IRQNoFlags ()
2968                                     {7}
2969                                 DMA (Compatibility, NotBusMaster, Transfer8, )
2970                                     {0,1,3}
2971                             }
2972                             StartDependentFnNoPri ()
2973                             {
2974                                 IO (Decode16,
2975                                     0x0378,             // Range Minimum
2976                                     0x0378,             // Range Maximum
2977                                     0x01,               // Alignment
2978                                     0x08,               // Length
2979                                     )
2980                                 IO (Decode16,
2981                                     0x0778,             // Range Minimum
2982                                     0x0778,             // Range Maximum
2983                                     0x01,               // Alignment
2984                                     0x08,               // Length
2985                                     )
2986                                 IRQNoFlags ()
2987                                     {5}
2988                                 DMA (Compatibility, NotBusMaster, Transfer8, )
2989                                     {0,1,3}
2990                             }
2991                             StartDependentFnNoPri ()
2992                             {
2993                                 IO (Decode16,
2994                                     0x0278,             // Range Minimum
2995                                     0x0278,             // Range Maximum
2996                                     0x01,               // Alignment
2997                                     0x08,               // Length
2998                                     )
2999                                 IO (Decode16,
3000                                     0x0678,             // Range Minimum
3001                                     0x0678,             // Range Maximum
3002                                     0x01,               // Alignment
3003                                     0x08,               // Length
3004                                     )
3005                                 IRQNoFlags ()
3006                                     {7}
3007                                 DMA (Compatibility, NotBusMaster, Transfer8, )
3008                                     {0,1,3}
3009                             }
3010                             StartDependentFnNoPri ()
3011                             {
3012                                 IO (Decode16,
3013                                     0x03BC,             // Range Minimum
3014                                     0x03BC,             // Range Maximum
3015                                     0x01,               // Alignment
3016                                     0x03,               // Length
3017                                     )
3018                                 IO (Decode16,
3019                                     0x07BC,             // Range Minimum
3020                                     0x07BC,             // Range Maximum
3021                                     0x01,               // Alignment
3022                                     0x03,               // Length
3023                                     )
3024                                 IRQNoFlags ()
3025                                     {5}
3026                                 DMA (Compatibility, NotBusMaster, Transfer8, )
3027                                     {0,1,3}
3028                             }
3029                             EndDependentFn ()
3030                         })
3031                         Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
3032                         {
3033                             CreateByteField (Arg0, 0x02, RLIL)
3034                             CreateByteField (Arg0, 0x03, RLIH)
3035                             CreateWordField (Arg0, 0x02, RLIO)
3036                             CreateWordField (Arg0, 0x11, RLIQ)
3037                             CreateByteField (Arg0, 0x14, RLDQ)
3038                             Store (0x01, LDN)
3039                             Store (0x00, LDA)
3040                             Store (0x07, PMDS)
3041                             Store (0x01, PERA)
3042                             Store (RLIL, IOLW)
3043                             Store (RLIH, IOHI)
3044                             If (RLIQ)
3045                             {
3046                                 FindSetRightBit (RLIQ, Local0)
3047                                 Store (Decrement (Local0), IRQN)
3048                             }
3049                             Else
3050                             {
3051                                 Store (0x00, IRQN)
3052                             }
3053 
3054                             If (And (RLDQ, 0x0F))
3055                             {
3056                                 FindSetRightBit (RLDQ, Local0)
3057                                 Store (Decrement (Local0), DMA0)
3058                             }
3059                             Else
3060                             {
3061                                 Store (0x04, DMA0)
3062                             }
3063 
3064                             Store (0x00, PPD)
3065                             Store (0x01, LDA)
3066                             If (LEqual (RLIO, 0x0378))
3067                             {
3068                                 Store (0x00, XPA)
3069                             }
3070                             Else
3071                             {
3072                                 If (LEqual (RLIO, 0x0278))
3073                                 {
3074                                     Store (0x01, XPA)
3075                                 }
3076                                 Else
3077                                 {
3078                                     If (LEqual (RLIO, 0x03BC))
3079                                     {
3080                                         Store (0x02, XPA)
3081                                     }
3082                                     Else
3083                                     {
3084                                         Fatal (0x02, 0x90020000, 0x01A2)
3085                                     }
3086                                 }
3087                             }
3088 
3089                             Store (0x01, XPE)
3090                         }
3091 
3092                         Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
3093                         {
3094                             Store (0x01, LDN)
3095                             If (LDA)
3096                             {
3097                                 Return (0x00)
3098                             }
3099                             Else
3100                             {
3101                                 Return (0x03)
3102                             }
3103                         }
3104 
3105                         Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
3106                         {
3107                             Store (0x01, LDN)
3108                             Store (0x01, LDA)
3109                         }
3110 
3111                         Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
3112                         {
3113                             Store (0x01, LDN)
3114                             Store (0x00, LDA)
3115                         }
3116                     }
3117                 }
3118 
3119                 Scope (\_SB.PCI0.LPC.DURT)
3120                 {
3121                     Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
3122                 }
3123 
3124                 Scope (\_SB.PCI0.LPC.DLPT)
3125                 {
3126                     Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
3127                 }
3128 
3129                 Scope (\_SB.PCI0.LPC.DECP)
3130                 {
3131                     Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
3132                 }
3133 
3134                 Scope (\_SB.PCI0.LPC)
3135                 {
3136                     Method (LCON, 1, NotSerialized)
3137                     {
3138                         If (Arg0)
3139                         {
3140                             If (EPWG)
3141                             {
3142                                 Store (0x01, DLPD)
3143                                 Store (0x07, DLPC)
3144                                 While (LNot (And (0x08, DLPC)))
3145                                 {
3146                                     Sleep (0x01)
3147                                 }
3148 
3149                                 Store (0x01, DRST)
3150                                 If (LNotEqual (SIOD, 0xFF))
3151                                 {
3152                                     Or (SCF9, 0xA0, SCF9)
3153                                     While (LNot (And (0x10, SCF9)))
3154                                     {
3155                                         Sleep (0x01)
3156                                     }
3157 
3158                                     Or (SCF2, 0xEB, SCF2)
3159                                     Store (0x07, LDN)
3160                                     And (0x1620, 0xFF, Local0)
3161                                     Store (Local0, IOLW)
3162                                     ShiftRight (0x1620, 0x08, Local0)
3163                                     And (Local0, 0xFF, IOHI)
3164                                     Store (0x01, LDA)
3165                                     Store (0x01, GPPS)
3166                                     Store (0x03, GPPC)
3167                                     Store (0x02, GPPS)
3168                                     Store (0x03, GPPC)
3169                                     Store (0x00, DUSB)
3170                                 }
3171                             }
3172                         }
3173                         Else
3174                         {
3175                             Store (0x01, DUSB)
3176                             Store (0x00, DRST)
3177                             Store (0x00, DLPD)
3178                             Store (0x00, DLPC)
3179                         }
3180                     }
3181 
3182                     Method (LLCN, 1, NotSerialized)
3183                     {
3184                         If (Arg0)
3185                         {
3186                             Store (0x00, ULRT)
3187                             Store (0x01, ULPD)
3188                             Store (0x07, DLPC)
3189                             While (LNot (And (0x08, DLPC)))
3190                             {
3191                                 Sleep (0x01)
3192                             }
3193 
3194                             Store (0x01, ULRT)
3195                             If (LNotEqual (SIOD, 0xFF))
3196                             {
3197                                 Or (SCF9, 0xA0, SCF9)
3198                                 While (LNot (And (0x10, SCF9)))
3199                                 {
3200                                     Sleep (0x01)
3201                                 }
3202 
3203                                 Or (SCF2, 0xEB, SCF2)
3204                             }
3205                         }
3206                         Else
3207                         {
3208                             Store (0x00, ULRT)
3209                             Store (0x00, ULPD)
3210                             Store (0x00, DLPC)
3211                         }
3212                     }
3213                 }
3214 
3215                 Device (TPM)
3216                 {
3217                     Name (_HID, EisaId ("ATM1200"))  // _HID: Hardware ID
3218                     Name (_CID, EisaId ("PNP0C31"))  // _CID: Compatible ID
3219                     Method (_STA, 0, NotSerialized)  // _STA: Status
3220                     {
3221                         If (And (\TPMP, 0x01))
3222                         {
3223                             Store (0x0F, Local0)
3224                         }
3225                         Else
3226                         {
3227                             Store (0x00, Local0)
3228                         }
3229 
3230                         Return (Local0)
3231                     }
3232 
3233                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3234                     {
3235                         Memory32Fixed (ReadWrite,
3236                             0xFED40000,         // Address Base
3237                             0x00005000,         // Address Length
3238                             )
3239                     })
3240                     Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
3241                     {
3242                         Name (TMPB, Buffer (0x02)
3243                         {
3244                              0x00, 0x00
3245                         })
3246                         CreateByteField (TMPB, 0x00, LPCT)
3247                         CreateByteField (TMPB, 0x01, SSUM)
3248                         Name (LRSP, 0x00)
3249                         Name (PPRC, 0x00)
3250                         Name (RQS1, Package (0x02)
3251                         {
3252                             0x0C, 
3253                             0x0D
3254                         })
3255                         Name (PTOP, Package (0x02)
3256                         {
3257                             0x00, 
3258                             0x00
3259                         })
3260                         Name (RTOP, Package (0x03)
3261                         {
3262                             0x00, 
3263                             0x00, 
3264                             0x00
3265                         })
3266                         CreateDWordField (Arg0, 0x00, IID0)
3267                         CreateDWordField (Arg0, 0x04, IID1)
3268                         CreateDWordField (Arg0, 0x08, IID2)
3269                         CreateDWordField (Arg0, 0x0C, IID3)
3270                         Name (UID0, Buffer (0x10)
3271                         {
3272                             /* 0000 */   0xA6, 0xFA, 0xDD, 0x3D, 0x1B, 0x36, 0xB4, 0x4E,
3273                             /* 0008 */   0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53
3274                         })
3275                         CreateDWordField (UID0, 0x00, EID0)
3276                         CreateDWordField (UID0, 0x04, EID1)
3277                         CreateDWordField (UID0, 0x08, EID2)
3278                         CreateDWordField (UID0, 0x0C, EID3)
3279                         If (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (
3280                             LEqual (IID2, EID2), LEqual (IID3, EID3))))
3281                         {
3282                             If (LEqual (Arg2, 0x00))
3283                             {
3284                                 Return (Buffer (0x01)
3285                                 {
3286                                      0x3F
3287                                 })
3288                             }
3289 
3290                             If (LEqual (Arg2, 0x01))
3291                             {
3292                                 Return ("1.0")
3293                             }
3294 
3295                             If (LEqual (Arg2, 0x02))
3296                             {
3297                                 Store (0x00, PPRC)
3298                                 TPHY (0x00)
3299                                 Store (\PH02, LPCT)
3300                                 If (LPCT)
3301                                 {
3302                                     Store (0x00, SSUM)
3303                                     Add (SSUM, \PH01, SSUM)
3304                                     Add (SSUM, \PH02, SSUM)
3305                                     Add (SSUM, \PH03, SSUM)
3306                                     Add (SSUM, \PH04, SSUM)
3307                                     Add (SSUM, \PH05, SSUM)
3308                                     Add (SSUM, \PH06, SSUM)
3309                                     Add (SSUM, \PH07, SSUM)
3310                                     Add (SSUM, \PH08, SSUM)
3311                                     Add (SSUM, \PH09, SSUM)
3312                                     Add (SSUM, \PH0A, SSUM)
3313                                     Add (SSUM, \PH0B, SSUM)
3314                                     If (SSUM)
3315                                     {
3316                                         Store (0x02, PPRC)
3317                                     }
3318                                     Else
3319                                     {
3320                                         Store (DerefOf (Index (Arg3, 0x00)), \PH04)
3321                                         Store (Match (RQS1, MEQ, \PH04, MTR, 0x00, 0x00), Local0)
3322                                         If (LNotEqual (Local0, Ones))
3323                                         {
3324                                             Store (0x01, PPRC)
3325                                         }
3326                                         Else
3327                                         {
3328                                             Store (0x00, \PH03)
3329                                             Store (0x00, SSUM)
3330                                             Add (SSUM, \PH01, SSUM)
3331                                             Add (SSUM, \PH02, SSUM)
3332                                             Add (SSUM, \PH03, SSUM)
3333                                             Add (SSUM, \PH04, SSUM)
3334                                             Add (SSUM, \PH05, SSUM)
3335                                             Add (SSUM, \PH06, SSUM)
3336                                             Add (SSUM, \PH07, SSUM)
3337                                             Add (SSUM, \PH08, SSUM)
3338                                             Add (SSUM, \PH09, SSUM)
3339                                             Add (SSUM, \PH0A, SSUM)
3340                                             Add (SSUM, \PH0B, SSUM)
3341                                             Subtract (0x00, SSUM, \PH03)
3342                                             TPHY (0x01)
3343                                         }
3344                                     }
3345                                 }
3346                                 Else
3347                                 {
3348                                     Store (0x02, PPRC)
3349                                 }
3350 
3351                                 Return (PPRC)
3352                             }
3353 
3354                             If (LEqual (Arg2, 0x03))
3355                             {
3356                                 TPHY (0x00)
3357                                 Store (\PH04, Index (PTOP, 0x01))
3358                                 Return (PTOP)
3359                             }
3360 
3361                             If (LEqual (Arg2, 0x04))
3362                             {
3363                                 Return (0x01)
3364                             }
3365 
3366                             If (LEqual (Arg2, 0x05))
3367                             {
3368                                 TPHY (0x00)
3369                                 Store (\PH07, Local0)
3370                                 Store (\PH06, LRSP)
3371                                 Store (Or (ShiftLeft (Local0, 0x08, Local0), LRSP), LRSP)
3372                                 If (LAnd (LEqual (\PH06, 0xF0), LEqual (\PH07, 0xFF)))
3373                                 {
3374                                     Store (0xFFFFFFF0, LRSP)
3375                                 }
3376                                 Else
3377                                 {
3378                                     If (LAnd (LEqual (\PH06, 0xF1), LEqual (\PH07, 0xFF)))
3379                                     {
3380                                         Store (0xFFFFFFF1, LRSP)
3381                                     }
3382                                 }
3383 
3384                                 Store (LRSP, Index (RTOP, 0x02))
3385                                 Store (\PH05, Index (RTOP, 0x01))
3386                                 Return (RTOP)
3387                             }
3388 
3389                             If (LEqual (Arg2, 0x06))
3390                             {
3391                                 Return (0x02)
3392                             }
3393                         }
3394 
3395                         Name (UID1, Buffer (0x10)
3396                         {
3397                             /* 0000 */   0xED, 0x54, 0x60, 0x37, 0x13, 0xCC, 0x75, 0x46,
3398                             /* 0008 */   0x90, 0x1C, 0x47, 0x56, 0xD7, 0xF2, 0xD4, 0x5D
3399                         })
3400                         CreateDWordField (UID1, 0x00, EID4)
3401                         CreateDWordField (UID1, 0x04, EID5)
3402                         CreateDWordField (UID1, 0x08, EID6)
3403                         CreateDWordField (UID1, 0x0C, EID7)
3404                         If (LAnd (LAnd (LEqual (IID0, EID4), LEqual (IID1, EID5)), LAnd (
3405                             LEqual (IID2, EID6), LEqual (IID3, EID7))))
3406                         {
3407                             Store (Arg2, Debug)
3408                             Store (Arg3, Debug)
3409                             If (LEqual (Arg2, 0x00))
3410                             {
3411                                 Return (Buffer (0x01)
3412                                 {
3413                                      0x01
3414                                 })
3415                             }
3416 
3417                             If (LEqual (Arg2, 0x01))
3418                             {
3419                                 If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x00))
3420                                 {
3421                                     Store (0x00, \TCG0)
3422                                     Store (0x01, \TCG1)
3423                                 }
3424 
3425                                 If (LEqual (DerefOf (Index (Arg3, 0x00)), 0x01))
3426                                 {
3427                                     Store (0x01, \TCG0)
3428                                     Store (0x01, \TCG1)
3429                                 }
3430 
3431                                 Return (0x00)
3432                             }
3433 
3434                             Return (0x01)
3435                         }
3436 
3437                         Return (Buffer (0x01)
3438                         {
3439                              0x00
3440                         })
3441                     }
3442                 }
3443 
3444                 OperationRegion (TSES, SystemMemory, 0xFFE80000, 0x0200)
3445                 Field (TSES, ByteAcc, NoLock, Preserve)
3446                 {
3447                     Offset (0x0C), 
3448                     TSCM,   8, 
3449                     Offset (0x5D), 
3450                     TCT0,   8, 
3451                     TCT1,   8, 
3452                     TCT2,   8, 
3453                     Offset (0x6A), 
3454                     TMT0,   8, 
3455                     Offset (0x74), 
3456                     TMT1,   8, 
3457                     Offset (0x7E), 
3458                     TMT2,   8, 
3459                     Offset (0x174), 
3460                     TLD0,   8, 
3461                     TLD1,   8, 
3462                     TLD2,   8, 
3463                     TLDL,   24, 
3464                     TLDB,   24, 
3465                     TLDS,   16, 
3466                     TSB0,   8, 
3467                     TSB1,   8, 
3468                     TSB2,   8, 
3469                     TSBL,   8, 
3470                     TSBB,   72, 
3471                     TSBF,   16, 
3472                     TSBC,   16, 
3473                     Offset (0x1C4), 
3474                     TSIM,   8
3475                 }
3476 
3477                 Field (TSES, ByteAcc, NoLock, Preserve)
3478                 {
3479                     Offset (0x5D), 
3480                     TCTA,   280
3481                 }
3482 
3483                 Field (TSES, ByteAcc, NoLock, Preserve)
3484                 {
3485                     Offset (0x174), 
3486                     TCTL,   88
3487                 }
3488 
3489                 Field (TSES, ByteAcc, NoLock, Preserve)
3490                 {
3491                     Offset (0x17F), 
3492                     TCTB,   136
3493                 }
3494 
3495                 Method (TCSZ, 2, NotSerialized)
3496                 {
3497                     If (LNotEqual (TSCM, 0x12))
3498                     {
3499                         If (LEqual (0x01, Arg0))
3500                         {
3501                             Store (Arg1, TCZ1)
3502                         }
3503                         Else
3504                         {
3505                             If (LEqual (0x02, Arg0))
3506                             {
3507                                 Store (Arg1, TCZ2)
3508                             }
3509                             Else
3510                             {
3511                                 If (LEqual (0x03, Arg0))
3512                                 {
3513                                     Store (Arg1, TCZ3)
3514                                 }
3515                             }
3516                         }
3517                     }
3518                 }
3519 
3520                 Method (TCST, 2, NotSerialized)
3521                 {
3522                     If (LNotEqual (TSCM, 0x12))
3523                     {
3524                         Store (0x00, Local0)
3525                         If (LEqual (0x01, Arg0))
3526                         {
3527                             If (LGreater (Arg1, TMT0))
3528                             {
3529                                 Store (0x04, TSIM)
3530                                 Store (Arg1, TMT0)
3531                                 Store (0x01, Local0)
3532                             }
3533                         }
3534                         Else
3535                         {
3536                             If (LEqual (0x02, Arg0))
3537                             {
3538                                 If (LGreater (Arg1, TMT1))
3539                                 {
3540                                     Store (0x04, TSIM)
3541                                     Store (Arg1, TMT1)
3542                                     Store (0x01, Local0)
3543                                 }
3544                             }
3545                             Else
3546                             {
3547                                 If (LEqual (0x03, Arg0))
3548                                 {
3549                                     If (LGreater (Arg1, TMT2))
3550                                     {
3551                                         Store (0x04, TSIM)
3552                                         Store (Arg1, TMT2)
3553                                         Store (0x01, Local0)
3554                                     }
3555                                 }
3556                             }
3557                         }
3558 
3559                         If (Local0)
3560                         {
3561                             Store (0x00, TCT2)
3562                             Name (TCTC, Buffer (0x23) {})
3563                             Store (TCTA, TCTC)
3564                             Store (0x22, Local3)
3565                             Store (0x00, Local1)
3566                             While (Local3)
3567                             {
3568                                 Store (DerefOf (Index (TCTC, Local3)), Local2)
3569                                 Add (Local1, Local2, Local1)
3570                                 Decrement (Local3)
3571                             }
3572 
3573                             Store (Not (Local1), Local2)
3574                             Increment (Local2)
3575                             And (Local2, 0xFF, Local1)
3576                             Store (Local1, TCT2)
3577                             Store (0xFE, TSIM)
3578                         }
3579                     }
3580                 }
3581 
3582                 Method (TCBS, 4, NotSerialized)
3583                 {
3584                     If (LNotEqual (TSCM, 0x12))
3585                     {
3586                         If (LEqual (And (Arg0, 0x07), 0x00))
3587                         {
3588                             Store (0x12, TSIM)
3589                             Store (Arg0, TSBL)
3590                             Store (Arg1, TSBB)
3591                             Store (Arg2, TSBF)
3592                             Store (Arg3, TSBC)
3593                             Store (0x00, TSB2)
3594                             Name (TCTD, Buffer (0x23) {})
3595                             Store (TCTB, TCTD)
3596                             Store (0x10, Local0)
3597                             Store (0x00, Local1)
3598                             While (Local0)
3599                             {
3600                                 Store (DerefOf (Index (TCTD, Local0)), Local2)
3601                                 Add (Local1, Local2, Local1)
3602                                 Decrement (Local0)
3603                             }
3604 
3605                             Store (Not (Local1), Local2)
3606                             Increment (Local2)
3607                             And (Local2, 0xFF, Local1)
3608                             Store (Local1, TSB2)
3609                             Store (0xFE, TSIM)
3610                         }
3611                     }
3612                 }
3613 
3614                 Method (TSCL, 2, NotSerialized)
3615                 {
3616                     If (LNotEqual (TSCM, 0x12))
3617                     {
3618                         Store (0x15, TSIM)
3619                         Add (TLDS, Arg1, TLDS)
3620                         Store (0x00, TLD2)
3621                         Name (TLDD, Buffer (0x0B) {})
3622                         Store (TCTL, TLDD)
3623                         Store (0x0A, Local0)
3624                         Store (0x00, Local1)
3625                         While (Local0)
3626                         {
3627                             Store (DerefOf (Index (TLDD, Local0)), Local2)
3628                             Add (Local1, Local2, Local1)
3629                             Decrement (Local0)
3630                         }
3631 
3632                         Store (Not (Local1), Local2)
3633                         Increment (Local2)
3634                         And (Local2, 0xFF, Local1)
3635                         Store (Local1, TLD2)
3636                         Store (0xFE, TSIM)
3637                     }
3638                 }
3639 
3640                 Device (EC)
3641                 {
3642                     Name (_HID, EisaId ("PNP0C09"))  // _HID: Hardware ID
3643                     Name (_UID, 0x00)  // _UID: Unique ID
3644                     Name (_GPE, 0x12)  // _GPE: General Purpose Events
3645                     Method (_REG, 2, NotSerialized)  // _REG: Region Availability
3646                     {
3647                         If (LEqual (Arg0, 0x03))
3648                         {
3649                             Store (Arg1, \H8DR)
3650                         }
3651                     }
3652 
3653                     OperationRegion (ECOR, EmbeddedControl, 0x00, 0x0100)
3654                     Field (ECOR, ByteAcc, NoLock, Preserve)
3655                     {
3656                         HDBM,   1, 
3657                             ,   1, 
3658                             ,   1, 
3659                         HFNE,   1, 
3660                             ,   1, 
3661                             ,   1, 
3662                         HLDM,   1, 
3663                         Offset (0x01), 
3664                             ,   1, 
3665                         BTCM,   1, 
3666                             ,   1, 
3667                             ,   1, 
3668                             ,   1, 
3669                         HBPR,   1, 
3670                         BTPC,   1, 
3671                         Offset (0x02), 
3672                         SLIS,   1, 
3673                         Offset (0x03), 
3674                             ,   1, 
3675                         HETE,   1, 
3676                             ,   3, 
3677                         HAUM,   2, 
3678                         Offset (0x05), 
3679                         HSPA,   1, 
3680                         Offset (0x06), 
3681                         HSUN,   8, 
3682                         HSRP,   8, 
3683                         Offset (0x0C), 
3684                         HLCL,   8, 
3685                         Offset (0x0E), 
3686                         HFNS,   2, 
3687                         Offset (0x0F), 
3688                             ,   4, 
3689                         HAAA,   3, 
3690                         Offset (0x10), 
3691                         HAM0,   8, 
3692                         HAM1,   8, 
3693                         HAM2,   8, 
3694                         HAM3,   8, 
3695                         HAM4,   8, 
3696                         HAM5,   8, 
3697                         HAM6,   8, 
3698                         HAM7,   8, 
3699                         HAM8,   8, 
3700                         HAM9,   8, 
3701                         HAMA,   8, 
3702                         HAMB,   8, 
3703                         HAMC,   8, 
3704                         HAMD,   8, 
3705                         HAME,   8, 
3706                         HAMF,   8, 
3707                         HT00,   1, 
3708                         HT01,   1, 
3709                         HT02,   1, 
3710                         HT03,   1, 
3711                         HT10,   1, 
3712                         HT11,   1, 
3713                         HT12,   1, 
3714                         HT13,   1, 
3715                         Offset (0x23), 
3716                         HANT,   8, 
3717                         Offset (0x26), 
3718                             ,   1, 
3719                             ,   1, 
3720                         HANA,   2, 
3721                             ,   1, 
3722                             ,   1, 
3723                         Offset (0x2A), 
3724                         HATR,   8, 
3725                         HT0H,   8, 
3726                         HT0L,   8, 
3727                         HT1H,   8, 
3728                         HT1L,   8, 
3729                         HFSP,   8, 
3730                             ,   6, 
3731                         HMUT,   1, 
3732                         Offset (0x31), 
3733                         HBRV,   8, 
3734                         HWPM,   1, 
3735                         HWLB,   1, 
3736                         HWLO,   1, 
3737                         HWDK,   1, 
3738                         HWFN,   1, 
3739                         HWBT,   1, 
3740                         HWRI,   1, 
3741                         HWBU,   1, 
3742                         HWLU,   1, 
3743                         Offset (0x34), 
3744                             ,   7, 
3745                         HPLO,   1, 
3746                         Offset (0x36), 
3747                         Offset (0x38), 
3748                         HB0S,   7, 
3749                         HB0A,   1, 
3750                         HB1S,   7, 
3751                         HB1A,   1, 
3752                         HCMU,   1, 
3753                             ,   2, 
3754                         OVRQ,   1, 
3755                         DCBD,   1, 
3756                         DCWL,   1, 
3757                         DCWW,   1, 
3758                         HB1I,   1, 
3759                             ,   1, 
3760                         KBLT,   1, 
3761                         BTPW,   1, 
3762                         BTDT,   1, 
3763                         HUBS,   1, 
3764                         BDPW,   1, 
3765                         BDDT,   1, 
3766                         HUBB,   1, 
3767                         Offset (0x46), 
3768                             ,   1, 
3769                         BTWK,   1, 
3770                         HPLD,   1, 
3771                             ,   1, 
3772                         HPAC,   1, 
3773                         BTST,   1, 
3774                         Offset (0x47), 
3775                         HPBU,   1, 
3776                             ,   1, 
3777                         HBID,   4, 
3778                             ,   1, 
3779                         HPNF,   1, 
3780                             ,   1, 
3781                         GSTS,   1, 
3782                             ,   2, 
3783                         HLBU,   1, 
3784                         BDST,   1, 
3785                         HCBL,   1, 
3786                         Offset (0x4E), 
3787                         HWAK,   16, 
3788                         HMPR,   8, 
3789                         HMST,   5, 
3790                             ,   2, 
3791                         HMDN,   1, 
3792                         HMAD,   8, 
3793                         HMCM,   8, 
3794                         Offset (0x74), 
3795                         HMBC,   8, 
3796                         Offset (0x78), 
3797                         TMP0,   8, 
3798                         TMP1,   8, 
3799                         TMP2,   8, 
3800                         TMP3,   8, 
3801                         TMP4,   8, 
3802                         TMP5,   8, 
3803                         TMP6,   8, 
3804                         TMP7,   8, 
3805                         Offset (0x81), 
3806                         HIID,   8, 
3807                         Offset (0x83), 
3808                         HFNI,   8, 
3809                         Offset (0x88), 
3810                         HDEC,   8, 
3811                         HDEO,   8, 
3812                         Offset (0x8D), 
3813                         HDAA,   3, 
3814                         HDAB,   3, 
3815                         HDAC,   2, 
3816                         Offset (0xB0), 
3817                         HDEN,   32, 
3818                         HDEP,   32, 
3819                         HDEM,   8, 
3820                         HDES,   8, 
3821                         Offset (0xC8), 
3822                         ATMX,   8, 
3823                         HWAT,   8, 
3824                         Offset (0xCE), 
3825                         HBCS,   2, 
3826                             ,   2, 
3827                         Offset (0xED), 
3828                             ,   4, 
3829                         HDDD,   1
3830                     }
3831 
3832                     Method (_INI, 0, NotSerialized)  // _INI: Initialize
3833                     {
3834                         If (\H8DR)
3835                         {
3836                             Store (0x00, HSPA)
3837                         }
3838                         Else
3839                         {
3840                             \MBEC (0x05, 0xFE, 0x00)
3841                         }
3842 
3843                         BINI ()
3844                         \_SB.PCI0.LPC.EC.HKEY.WGIN ()
3845                     }
3846 
3847                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3848                     {
3849                         IO (Decode16,
3850                             0x0062,             // Range Minimum
3851                             0x0062,             // Range Maximum
3852                             0x01,               // Alignment
3853                             0x01,               // Length
3854                             )
3855                         IO (Decode16,
3856                             0x0066,             // Range Minimum
3857                             0x0066,             // Range Maximum
3858                             0x01,               // Alignment
3859                             0x01,               // Length
3860                             )
3861                     })
3862                     Method (LED, 2, NotSerialized)
3863                     {
3864                         Or (Arg0, Arg1, Local0)
3865                         If (\H8DR)
3866                         {
3867                             Store (Local0, HLCL)
3868                         }
3869                         Else
3870                         {
3871                             \WBEC (0x0C, Local0)
3872                         }
3873                     }
3874 
3875                     Name (BAON, 0x00)
3876                     Name (WBON, 0x00)
3877                     Method (BEEP, 1, NotSerialized)
3878                     {
3879                         If (LEqual (Arg0, 0x05))
3880                         {
3881                             Store (0x00, WBON)
3882                         }
3883 
3884                         Store (WBON, Local2)
3885                         If (BAON)
3886                         {
3887                             If (LEqual (Arg0, 0x00))
3888                             {
3889                                 Store (0x00, BAON)
3890                                 If (WBON)
3891                                 {
3892                                     Store (0x03, Local0)
3893                                     Store (0x08, Local1)
3894                                 }
3895                                 Else
3896                                 {
3897                                     Store (0x00, Local0)
3898                                     Store (0x00, Local1)
3899                                 }
3900                             }
3901                             Else
3902                             {
3903                                 Store (0xFF, Local0)
3904                                 Store (0xFF, Local1)
3905                                 If (LEqual (Arg0, 0x11))
3906                                 {
3907                                     Store (0x00, WBON)
3908                                 }
3909 
3910                                 If (LEqual (Arg0, 0x10))
3911                                 {
3912                                     Store (0x01, WBON)
3913                                 }
3914                             }
3915                         }
3916                         Else
3917                         {
3918                             Store (Arg0, Local0)
3919                             Store (0xFF, Local1)
3920                             If (LEqual (Arg0, 0x0F))
3921                             {
3922                                 Store (Arg0, Local0)
3923                                 Store (0x08, Local1)
3924                                 Store (0x01, BAON)
3925                             }
3926 
3927                             If (LEqual (Arg0, 0x11))
3928                             {
3929                                 Store (0x00, Local0)
3930                                 Store (0x00, Local1)
3931                                 Store (0x00, WBON)
3932                             }
3933 
3934                             If (LEqual (Arg0, 0x10))
3935                             {
3936                                 Store (0x03, Local0)
3937                                 Store (0x08, Local1)
3938                                 Store (0x01, WBON)
3939                             }
3940                         }
3941 
3942                         If (LEqual (Arg0, 0x03))
3943                         {
3944                             Store (0x00, WBON)
3945                             If (Local2)
3946                             {
3947                                 Store (0x07, Local0)
3948                                 If (LOr (LEqual (\SPS, 0x03), LEqual (\SPS, 0x04)))
3949                                 {
3950                                     Store (0x00, Local2)
3951                                     Store (0xFF, Local0)
3952                                     Store (0xFF, Local1)
3953                                 }
3954                             }
3955                         }
3956 
3957                         If (LEqual (Arg0, 0x07))
3958                         {
3959                             If (Local2)
3960                             {
3961                                 Store (0x00, Local2)
3962                                 Store (0xFF, Local0)
3963                                 Store (0xFF, Local1)
3964                             }
3965                         }
3966 
3967                         If (LAnd (\H8DR, LNot (\W98F)))
3968                         {
3969                             If (LAnd (Local2, LNot (WBON)))
3970                             {
3971                                 Store (0x00, HSRP)
3972                                 Store (0x00, HSUN)
3973                                 Sleep (0x64)
3974                             }
3975 
3976                             If (LNotEqual (Local1, 0xFF))
3977                             {
3978                                 Store (Local1, HSRP)
3979                             }
3980 
3981                             If (LNotEqual (Local0, 0xFF))
3982                             {
3983                                 Store (Local0, HSUN)
3984                             }
3985                         }
3986                         Else
3987                         {
3988                             If (LAnd (Local2, LNot (WBON)))
3989                             {
3990                                 \WBEC (0x07, 0x00)
3991                                 \WBEC (0x06, 0x00)
3992                                 Sleep (0x64)
3993                             }
3994 
3995                             If (LNotEqual (Local1, 0xFF))
3996                             {
3997                                 \WBEC (0x07, Local1)
3998                             }
3999 
4000                             If (LNotEqual (Local0, 0xFF))
4001                             {
4002                                 \WBEC (0x06, Local0)
4003                             }
4004                         }
4005 
4006                         If (LEqual (Arg0, 0x03)) {}
4007                         If (LEqual (Arg0, 0x07))
4008                         {
4009                             Sleep (0x01F4)
4010                         }
4011                     }
4012 
4013                     Method (EVNT, 1, NotSerialized)
4014                     {
4015                         If (\H8DR)
4016                         {
4017                             If (Arg0)
4018                             {
4019                                 Or (HAM7, 0x01, HAM7)
4020                                 Or (HAM5, 0x04, HAM5)
4021                             }
4022                             Else
4023                             {
4024                                 And (HAM7, 0xFE, HAM7)
4025                                 And (HAM5, 0xFB, HAM5)
4026                             }
4027                         }
4028                         Else
4029                         {
4030                             If (Arg0)
4031                             {
4032                                 \MBEC (0x17, 0xFF, 0x01)
4033                                 \MBEC (0x15, 0xFF, 0x04)
4034                                 If (\W98F)
4035                                 {
4036                                     \WBEC (0x18, 0xFF)
4037                                 }
4038                             }
4039                             Else
4040                             {
4041                                 \MBEC (0x17, 0xFE, 0x00)
4042                                 \MBEC (0x15, 0xFB, 0x00)
4043                                 If (\W98F)
4044                                 {
4045                                     \WBEC (0x18, 0x00)
4046                                 }
4047                             }
4048                         }
4049                     }
4050 
4051                     Method (PNST, 1, NotSerialized)
4052                     {
4053                         If (LAnd (Arg0, BSTA (0x02)))
4054                         {
4055                             If (LAnd (\H8DR, LNot (\W98F)))
4056                             {
4057                                 Store (0x01, HBPR)
4058                                 Store (0x01, HUBB)
4059                             }
4060                             Else
4061                             {
4062                                 \MBEC (0x01, 0xFF, 0x20)
4063                                 \MBEC (0x3B, 0xFF, 0x80)
4064                             }
4065                         }
4066                         Else
4067                         {
4068                             If (LAnd (\H8DR, LNot (\W98F)))
4069                             {
4070                                 Store (0x00, HBPR)
4071                                 Store (0x00, HUBB)
4072                             }
4073                             Else
4074                             {
4075                                 \MBEC (0x01, 0xDF, 0x00)
4076                                 \MBEC (0x3B, 0x7F, 0x00)
4077                             }
4078                         }
4079                     }
4080 
4081                     PowerResource (PUBS, 0x03, 0x0000)
4082                     {
4083                         Method (_STA, 0, NotSerialized)  // _STA: Status
4084                         {
4085                             If (\H8DR)
4086                             {
4087                                 Store (HUBS, Local0)
4088                             }
4089                             Else
4090                             {
4091                                 And (\RBEC (0x3B), 0x10, Local0)
4092                             }
4093 
4094                             If (Local0)
4095                             {
4096                                 Return (0x01)
4097                             }
4098                             Else
4099                             {
4100                                 Return (0x00)
4101                             }
4102                         }
4103 
4104                         Method (_ON, 0, NotSerialized)  // _ON_: Power On
4105                         {
4106                             If (\H8DR)
4107                             {
4108                                 Store (0x01, HUBS)
4109                             }
4110                             Else
4111                             {
4112                                 \MBEC (0x3B, 0xFF, 0x10)
4113                             }
4114                         }
4115 
4116                         Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
4117                         {
4118                             If (\H8DR)
4119                             {
4120                                 Store (0x00, HUBS)
4121                             }
4122                             Else
4123                             {
4124                                 \MBEC (0x3B, 0xEF, 0x00)
4125                             }
4126                         }
4127                     }
4128 
4129                     Method (LPMD, 0, NotSerialized)
4130                     {
4131                         Store (0x00, Local0)
4132                         Store (0x00, Local1)
4133                         Store (0x00, Local2)
4134                         If (\H8DR)
4135                         {
4136                             If (HPAC)
4137                             {
4138                                 If (HPLO)
4139                                 {
4140                                     Store (\LPST, Local0)
4141                                 }
4142                                 Else
4143                                 {
4144                                     If (LLess (HWAT, 0x5A))
4145                                     {
4146                                         If (HB0A)
4147                                         {
4148                                             If (LOr (And (HB0S, 0x10), LLess (And (HB0S, 0x0F
4149                                                 ), 0x02)))
4150                                             {
4151                                                 Store (0x01, Local1)
4152                                             }
4153                                         }
4154                                         Else
4155                                         {
4156                                             Store (0x01, Local1)
4157                                         }
4158 
4159                                         If (HB1A)
4160                                         {
4161                                             If (LOr (And (HB1S, 0x10), LLess (And (HB1S, 0x0F
4162                                                 ), 0x02)))
4163                                             {
4164                                                 Store (0x01, Local2)
4165                                             }
4166                                         }
4167                                         Else
4168                                         {
4169                                             Store (0x01, Local2)
4170                                         }
4171 
4172                                         If (LAnd (Local1, Local2))
4173                                         {
4174                                             Store (\LPST, Local0)
4175                                         }
4176                                     }
4177                                 }
4178                             }
4179                         }
4180                         Else
4181                         {
4182                             If (And (\RBEC (0x46), 0x10))
4183                             {
4184                                 If (And (\RBEC (0x34), 0x80))
4185                                 {
4186                                     Store (\LPST, Local0)
4187                                 }
4188                                 Else
4189                                 {
4190                                     If (LLess (\RBEC (0xC9), 0x5A))
4191                                     {
4192                                         Store (\RBEC (0x38), Local3)
4193                                         If (And (Local3, 0x80))
4194                                         {
4195                                             If (LOr (And (Local3, 0x10), LLess (And (Local3, 0x0F
4196                                                 ), 0x02)))
4197                                             {
4198                                                 Store (0x01, Local1)
4199                                             }
4200                                         }
4201                                         Else
4202                                         {
4203                                             Store (0x01, Local2)
4204                                         }
4205 
4206                                         Store (\RBEC (0x39), Local3)
4207                                         If (And (Local3, 0x80))
4208                                         {
4209                                             If (LOr (And (Local3, 0x10), LLess (And (Local3, 0x0F
4210                                                 ), 0x02)))
4211                                             {
4212                                                 Store (0x01, Local1)
4213                                             }
4214                                         }
4215                                         Else
4216                                         {
4217                                             Store (0x01, Local2)
4218                                         }
4219 
4220                                         If (LAnd (Local1, Local2))
4221                                         {
4222                                             Store (\LPST, Local0)
4223                                         }
4224                                     }
4225                                 }
4226                             }
4227                         }
4228 
4229                         Return (Local0)
4230                     }
4231 
4232                     Method (CLPM, 0, NotSerialized)
4233                     {
4234                         If (\SPEN)
4235                         {
4236                             If (\OSPX)
4237                             {
4238                                 Notify (\_PR.CPU0, 0x80)
4239                                 If (\MPEN)
4240                                 {
4241                                     Notify (\_PR.CPU1, 0x80)
4242                                 }
4243                             }
4244                             Else
4245                             {
4246                                 Store (LPMD (), Local0)
4247                                 If (Local0)
4248                                 {
4249                                     \STEP (0x04)
4250                                 }
4251                                 Else
4252                                 {
4253                                     \STEP (0x05)
4254                                 }
4255                             }
4256                         }
4257                     }
4258 
4259                     Mutex (MCPU, 0x07)
4260                     Method (_Q10, 0, NotSerialized)  // _Qxx: EC Query
4261                     {
4262                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x01))
4263                         {
4264                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1001)
4265                         }
4266                     }
4267 
4268                     Method (_Q11, 0, NotSerialized)  // _Qxx: EC Query
4269                     {
4270                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x02))
4271                         {
4272                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1002)
4273                         }
4274                         Else
4275                         {
4276                             Noop
4277                         }
4278                     }
4279 
4280                     Method (_Q12, 0, NotSerialized)  // _Qxx: EC Query
4281                     {
4282                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1003)
4283                     }
4284 
4285                     Method (_Q13, 0, NotSerialized)  // _Qxx: EC Query
4286                     {
4287                         If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
4288                         {
4289                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1004)
4290                         }
4291                         Else
4292                         {
4293                             Notify (\_SB.SLPB, 0x80)
4294                         }
4295                     }
4296 
4297                     Method (_Q64, 0, NotSerialized)  // _Qxx: EC Query
4298                     {
4299                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x10))
4300                         {
4301                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1005)
4302                         }
4303                     }
4304 
4305                     Method (_Q65, 0, NotSerialized)  // _Qxx: EC Query
4306                     {
4307                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x20))
4308                         {
4309                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1006)
4310                         }
4311                     }
4312 
4313                     Method (_Q16, 0, NotSerialized)  // _Qxx: EC Query
4314                     {
4315                         If (\VPDF)
4316                         {
4317                             Store (0x00, \VPDF)
4318                             If (VIGD)
4319                             {
4320                                 \_SB.PCI0.VID.VSPD ()
4321                             }
4322                         }
4323                         Else
4324                         {
4325                             If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x40))
4326                             {
4327                                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1007)
4328                             }
4329                             Else
4330                             {
4331                                 If (VIGD)
4332                                 {
4333                                     \_SB.PCI0.VID.VSWT ()
4334                                 }
4335                                 Else
4336                                 {
4337                                     \_SB.PCI0.AGP.VID.VSWT ()
4338                                 }
4339                             }
4340                         }
4341                     }
4342 
4343                     Method (_Q17, 0, NotSerialized)  // _Qxx: EC Query
4344                     {
4345                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x80))
4346                         {
4347                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1008)
4348                         }
4349                         Else
4350                         {
4351                             If (LNot (\WNTF))
4352                             {
4353                                 VEXP ()
4354                             }
4355                         }
4356                     }
4357 
4358                     Method (_Q18, 0, NotSerialized)  // _Qxx: EC Query
4359                     {
4360                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0100))
4361                         {
4362                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1009)
4363                         }
4364 
4365                         Noop
4366                     }
4367 
4368                     Method (_Q66, 0, NotSerialized)  // _Qxx: EC Query
4369                     {
4370                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0200))
4371                         {
4372                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100A)
4373                         }
4374                     }
4375 
4376                     Method (_Q1A, 0, NotSerialized)  // _Qxx: EC Query
4377                     {
4378                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x0400))
4379                         {
4380                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100B)
4381                         }
4382                     }
4383 
4384                     Method (_Q1B, 0, NotSerialized)  // _Qxx: EC Query
4385                     {
4386                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100C)
4387                     }
4388 
4389                     Method (_Q62, 0, NotSerialized)  // _Qxx: EC Query
4390                     {
4391                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x1000))
4392                         {
4393                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100D)
4394                         }
4395                     }
4396 
4397                     Method (_Q60, 0, NotSerialized)  // _Qxx: EC Query
4398                     {
4399                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x2000))
4400                         {
4401                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100E)
4402                         }
4403                     }
4404 
4405                     Method (_Q61, 0, NotSerialized)  // _Qxx: EC Query
4406                     {
4407                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x4000))
4408                         {
4409                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x100F)
4410                         }
4411                     }
4412 
4413                     Method (_Q1F, 0, NotSerialized)  // _Qxx: EC Query
4414                     {
4415                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00020000))
4416                         {
4417                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1012)
4418                         }
4419 
4420                         \UCMS (0x0E)
4421                     }
4422 
4423                     Method (_Q67, 0, NotSerialized)  // _Qxx: EC Query
4424                     {
4425                         If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00040000))
4426                         {
4427                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1013)
4428                         }
4429                     }
4430 
4431                     Method (_Q26, 0, NotSerialized)  // _Qxx: EC Query
4432                     {
4433                         If (VIGD)
4434                         {
4435                             If (\WVIS)
4436                             {
4437                                 \VBTD ()
4438                             }
4439 
4440                             \_SB.PCI0.LPC.EC.BRNS ()
4441                         }
4442                         Else
4443                         {
4444                             \UCMS (0x12)
4445                         }
4446 
4447                         Sleep (0x01F4)
4448                         Notify (AC, 0x80)
4449                         Notify (\_TZ.THM0, 0x80)
4450                         Notify (\_TZ.THM1, 0x80)
4451                         If (\WXPF)
4452                         {
4453                             Acquire (MCPU, 0xFFFF)
4454                         }
4455 
4456                         If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
4457                         {
4458                             Store (0x00, \C4AC)
4459                         }
4460 
4461                         If (\SPEN)
4462                         {
4463                             If (\OSPX)
4464                             {
4465                                 Notify (\_PR.CPU0, 0x80)
4466                                 If (\MPEN)
4467                                 {
4468                                     Notify (\_PR.CPU1, 0x80)
4469                                 }
4470                             }
4471                             Else
4472                             {
4473                                 \STEP (0x00)
4474                             }
4475                         }
4476 
4477                         If (\WXPF)
4478                         {
4479                             Sleep (0x64)
4480                         }
4481 
4482                         If (\OSC4)
4483                         {
4484                             Notify (\_PR.CPU0, 0x81)
4485                             If (\MPEN)
4486                             {
4487                                 Notify (\_PR.CPU1, 0x81)
4488                             }
4489                         }
4490 
4491                         If (\WXPF)
4492                         {
4493                             Release (MCPU)
4494                         }
4495 
4496                         If (LAnd (LNot (\WXPF), \WNTF))
4497                         {
4498                             If (LNot (\C4AC))
4499                             {
4500                                 Store (0x00, \_SB.PCI0.LPC.C4C3)
4501                             }
4502                         }
4503 
4504                         ATMC ()
4505                     }
4506 
4507                     Method (_Q27, 0, NotSerialized)  // _Qxx: EC Query
4508                     {
4509                         If (VIGD)
4510                         {
4511                             If (\WVIS)
4512                             {
4513                                 \VBTD ()
4514                             }
4515 
4516                             \_SB.PCI0.LPC.EC.BRNS ()
4517                             \_SB.PCI0.VID.VDSP ()
4518                         }
4519                         Else
4520                         {
4521                             \UCMS (0x12)
4522                         }
4523 
4524                         Sleep (0x01F4)
4525                         Notify (AC, 0x80)
4526                         Notify (\_TZ.THM0, 0x80)
4527                         Notify (\_TZ.THM1, 0x80)
4528                         If (\WXPF)
4529                         {
4530                             Acquire (MCPU, 0xFFFF)
4531                         }
4532 
4533                         If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
4534                         {
4535                             Store (0x01, \C4AC)
4536                         }
4537 
4538                         If (\SPEN)
4539                         {
4540                             If (\OSPX)
4541                             {
4542                                 Notify (\_PR.CPU0, 0x80)
4543                                 If (\MPEN)
4544                                 {
4545                                     Notify (\_PR.CPU1, 0x80)
4546                                 }
4547                             }
4548                             Else
4549                             {
4550                                 \STEP (0x01)
4551                             }
4552                         }
4553 
4554                         If (\WXPF)
4555                         {
4556                             Sleep (0x64)
4557                         }
4558 
4559                         If (\OSC4)
4560                         {
4561                             Notify (\_PR.CPU0, 0x81)
4562                             If (\MPEN)
4563                             {
4564                                 Notify (\_PR.CPU1, 0x81)
4565                             }
4566                         }
4567 
4568                         If (\WXPF)
4569                         {
4570                             Release (MCPU)
4571                         }
4572 
4573                         If (LAnd (LNot (\WXPF), \WNTF))
4574                         {
4575                             If (LNot (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00)))
4576                             {
4577                                 Store (0x01, \_SB.PCI0.LPC.C4C3)
4578                             }
4579                         }
4580 
4581                         ATMC ()
4582                         If (LOr (LEqual (\_SB.GDCK.GDID (), 0x4C004D24), LEqual (\_SB.GDCK.GDID (), 0x44004D24)))
4583                         {
4584                             Notify (\_SB.GDCK, 0x01)
4585                         }
4586                     }
4587 
4588                     Method (_Q2A, 0, NotSerialized)  // _Qxx: EC Query
4589                     {
4590                         If (VIGD)
4591                         {
4592                             \_SB.PCI0.VID.GLIS (0x01)
4593                         }
4594 
4595                         If (VIGD)
4596                         {
4597                             \_SB.PCI0.VID.VLOC (0x01)
4598                         }
4599                         Else
4600                         {
4601                             \_SB.PCI0.AGP.VID.VLOC (0x01)
4602                         }
4603 
4604                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5002)
4605                         Notify (\_SB.LID, 0x80)
4606                     }
4607 
4608                     Method (_Q2B, 0, NotSerialized)  // _Qxx: EC Query
4609                     {
4610                         If (VIGD)
4611                         {
4612                             \_SB.PCI0.VID.GLIS (0x00)
4613                         }
4614 
4615                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5001)
4616                         \UCMS (0x0D)
4617                         Notify (\_SB.LID, 0x80)
4618                     }
4619 
4620                     Method (_Q3D, 0, NotSerialized)  // _Qxx: EC Query
4621                     {
4622                     }
4623 
4624                     Method (_Q48, 0, NotSerialized)  // _Qxx: EC Query
4625                     {
4626                         If (\SPEN)
4627                         {
4628                             If (\OSPX)
4629                             {
4630                                 Notify (\_PR.CPU0, 0x80)
4631                                 If (\MPEN)
4632                                 {
4633                                     Notify (\_PR.CPU1, 0x80)
4634                                 }
4635                             }
4636                             Else
4637                             {
4638                                 \STEP (0x04)
4639                             }
4640                         }
4641                     }
4642 
4643                     Method (_Q49, 0, NotSerialized)  // _Qxx: EC Query
4644                     {
4645                         If (\SPEN)
4646                         {
4647                             If (\OSPX)
4648                             {
4649                                 Notify (\_PR.CPU0, 0x80)
4650                                 If (\MPEN)
4651                                 {
4652                                     Notify (\_PR.CPU1, 0x80)
4653                                 }
4654                             }
4655                             Else
4656                             {
4657                                 \STEP (0x05)
4658                             }
4659                         }
4660                     }
4661 
4662                     Method (_Q7F, 0, NotSerialized)  // _Qxx: EC Query
4663                     {
4664                         Fatal (0x01, 0x80010000, 0x035A)
4665                     }
4666 
4667                     Method (_Q4E, 0, NotSerialized)  // _Qxx: EC Query
4668                     {
4669                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6011)
4670                     }
4671 
4672                     Method (_Q4F, 0, NotSerialized)  // _Qxx: EC Query
4673                     {
4674                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6012)
4675                     }
4676 
4677                     Method (_Q75, 0, NotSerialized)  // _Qxx: EC Query
4678                     {
4679                         \_SB.PCI0.LPC.EC.TATR ()
4680                     }
4681 
4682                     Method (_Q46, 0, NotSerialized)  // _Qxx: EC Query
4683                     {
4684                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6012)
4685                     }
4686 
4687                     Method (_Q22, 0, NotSerialized)  // _Qxx: EC Query
4688                     {
4689                         CLPM ()
4690                         If (HB0A)
4691                         {
4692                             Notify (BAT0, 0x80)
4693                         }
4694 
4695                         If (LAnd (^BAT1.B1ST, ^BAT1.XB1S))
4696                         {
4697                             Notify (BAT1, 0x80)
4698                         }
4699 
4700                         If (LAnd (^BAT2.B2ST, ^BAT2.XB2S))
4701                         {
4702                             Notify (BAT2, 0x80)
4703                         }
4704                     }
4705 
4706                     Method (_Q4A, 0, NotSerialized)  // _Qxx: EC Query
4707                     {
4708                         CLPM ()
4709                         Notify (BAT0, 0x81)
4710                     }
4711 
4712                     Method (_Q4B, 0, NotSerialized)  // _Qxx: EC Query
4713                     {
4714                         Notify (BAT0, 0x80)
4715                     }
4716 
4717                     Method (_Q4C, 0, NotSerialized)  // _Qxx: EC Query
4718                     {
4719                         CLPM ()
4720                         If (LOr (LEqual (BDEV, 0x10), LEqual (HBCS, 0x02)))
4721                         {
4722                             _Q38 ()
4723                             Store (0x00, HB1I)
4724                         }
4725                         Else
4726                         {
4727                             If (^BAT2.XB2S)
4728                             {
4729                                 Notify (BAT2, 0x81)
4730                             }
4731                             Else
4732                             {
4733                                 If (HB1A)
4734                                 {
4735                                     Store (0x01, ^BAT2.XB2S)
4736                                     Notify (BAT2, 0x01)
4737                                 }
4738                             }
4739                         }
4740                     }
4741 
4742                     Method (_Q4D, 0, NotSerialized)  // _Qxx: EC Query
4743                     {
4744                         If (LAnd (^BAT1.B1ST, ^BAT1.XB1S))
4745                         {
4746                             Notify (BAT1, 0x80)
4747                         }
4748 
4749                         If (LAnd (^BAT2.B2ST, ^BAT2.XB2S))
4750                         {
4751                             Notify (BAT2, 0x80)
4752                         }
4753                     }
4754 
4755                     Method (_Q24, 0, NotSerialized)  // _Qxx: EC Query
4756                     {
4757                         CLPM ()
4758                         Notify (BAT0, 0x80)
4759                     }
4760 
4761                     Method (_Q25, 0, NotSerialized)  // _Qxx: EC Query
4762                     {
4763                         If (LAnd (^BAT1.B1ST, ^BAT1.XB1S))
4764                         {
4765                             CLPM ()
4766                             Notify (BAT1, 0x80)
4767                         }
4768 
4769                         If (LAnd (^BAT2.B2ST, ^BAT2.XB2S))
4770                         {
4771                             Notify (BAT2, 0x80)
4772                         }
4773                     }
4774 
4775                     Field (ECOR, ByteAcc, NoLock, Preserve)
4776                     {
4777                         Offset (0xA0), 
4778                         SBRC,   16, 
4779                         SBFC,   16, 
4780                         SBAE,   16, 
4781                         SBRS,   16, 
4782                         SBAC,   16, 
4783                         SBVO,   16, 
4784                         SBAF,   16, 
4785                         SBBS,   16
4786                     }
4787 
4788                     Field (ECOR, ByteAcc, NoLock, Preserve)
4789                     {
4790                         Offset (0xA0), 
4791                             ,   15, 
4792                         SBCM,   1, 
4793                         SBMD,   16, 
4794                         SBCC,   16
4795                     }
4796 
4797                     Field (ECOR, ByteAcc, NoLock, Preserve)
4798                     {
4799                         Offset (0xA0), 
4800                         SBDC,   16, 
4801                         SBDV,   16, 
4802                         SBOM,   16, 
4803                         SBSI,   16, 
4804                         SBDT,   16, 
4805                         SBSN,   16
4806                     }
4807 
4808                     Field (ECOR, ByteAcc, NoLock, Preserve)
4809                     {
4810                         Offset (0xA0), 
4811                         SBCH,   32
4812                     }
4813 
4814                     Field (ECOR, ByteAcc, NoLock, Preserve)
4815                     {
4816                         Offset (0xA0), 
4817                         SBMN,   128
4818                     }
4819 
4820                     Field (ECOR, ByteAcc, NoLock, Preserve)
4821                     {
4822                         Offset (0xA0), 
4823                         SBDN,   128
4824                     }
4825 
4826                     Mutex (BATM, 0x07)
4827                     Method (GBIF, 3, NotSerialized)
4828                     {
4829                         Acquire (BATM, 0xFFFF)
4830                         If (Arg2)
4831                         {
4832                             Or (Arg0, 0x01, HIID)
4833                             Store (SBCM, Local7)
4834                             XOr (Local7, 0x01, Index (Arg1, 0x00))
4835                             Store (Arg0, HIID)
4836                             If (Local7)
4837                             {
4838                                 Multiply (SBFC, 0x0A, Local1)
4839                             }
4840                             Else
4841                             {
4842                                 Store (SBFC, Local1)
4843                             }
4844 
4845                             Store (Local1, Index (Arg1, 0x02))
4846                             Or (Arg0, 0x02, HIID)
4847                             If (Local7)
4848                             {
4849                                 Multiply (SBDC, 0x0A, Local0)
4850                             }
4851                             Else
4852                             {
4853                                 Store (SBDC, Local0)
4854                             }
4855 
4856                             Store (Local0, Index (Arg1, 0x01))
4857                             Divide (Local1, 0x14, Local2, Index (Arg1, 0x05))
4858                             If (Local7)
4859                             {
4860                                 Store (0xC8, Index (Arg1, 0x06))
4861                             }
4862                             Else
4863                             {
4864                                 If (SBDV)
4865                                 {
4866                                     Divide (0x00030D40, SBDV, Local2, Index (Arg1, 0x06))
4867                                 }
4868                                 Else
4869                                 {
4870                                     Store (0x00, Index (Arg1, 0x06))
4871                                 }
4872                             }
4873 
4874                             Store (SBDV, Index (Arg1, 0x04))
4875                             Store (SBSN, Local0)
4876                             Name (SERN, Buffer (0x06)
4877                             {
4878                                 "     "
4879                             })
4880                             Store (0x04, Local2)
4881                             While (Local0)
4882                             {
4883                                 Divide (Local0, 0x0A, Local1, Local0)
4884                                 Add (Local1, 0x30, Index (SERN, Local2))
4885                                 Decrement (Local2)
4886                             }
4887 
4888                             Store (SERN, Index (Arg1, 0x0A))
4889                             Or (Arg0, 0x06, HIID)
4890                             Store (SBDN, Index (Arg1, 0x09))
4891                             Or (Arg0, 0x04, HIID)
4892                             Name (BTYP, Buffer (0x05)
4893                             {
4894                                  0x00, 0x00, 0x00, 0x00, 0x00
4895                             })
4896                             Store (SBCH, BTYP)
4897                             Store (BTYP, Index (Arg1, 0x0B))
4898                             Or (Arg0, 0x05, HIID)
4899                             Store (SBMN, Index (Arg1, 0x0C))
4900                         }
4901                         Else
4902                         {
4903                             Store (0xFFFFFFFF, Index (Arg1, 0x01))
4904                             Store (0x00, Index (Arg1, 0x05))
4905                             Store (0x00, Index (Arg1, 0x06))
4906                             Store (0xFFFFFFFF, Index (Arg1, 0x02))
4907                         }
4908 
4909                         Release (BATM)
4910                         Return (Arg1)
4911                     }
4912 
4913                     Method (GBST, 4, NotSerialized)
4914                     {
4915                         Acquire (BATM, 0xFFFF)
4916                         If (And (Arg1, 0x20))
4917                         {
4918                             Store (0x02, Local0)
4919                         }
4920                         Else
4921                         {
4922                             If (And (Arg1, 0x40))
4923                             {
4924                                 Store (0x01, Local0)
4925                             }
4926                             Else
4927                             {
4928                                 Store (0x00, Local0)
4929                             }
4930                         }
4931 
4932                         If (And (Arg1, 0x0F)) {}
4933                         Else
4934                         {
4935                             Or (Local0, 0x04, Local0)
4936                         }
4937 
4938                         If (LEqual (And (Arg1, 0x0F), 0x0F))
4939                         {
4940                             Store (0x04, Local0)
4941                             Store (0x00, Local1)
4942                             Store (0x00, Local2)
4943                             Store (0x00, Local3)
4944                         }
4945                         Else
4946                         {
4947                             Store (Arg0, HIID)
4948                             Store (SBVO, Local3)
4949                             If (Arg2)
4950                             {
4951                                 Multiply (SBRC, 0x0A, Local2)
4952                             }
4953                             Else
4954                             {
4955                                 Store (SBRC, Local2)
4956                             }
4957 
4958                             Store (SBAC, Local1)
4959                             If (LGreaterEqual (Local1, 0x8000))
4960                             {
4961                                 If (And (Local0, 0x01))
4962                                 {
4963                                     Subtract (0x00010000, Local1, Local1)
4964                                 }
4965                                 Else
4966                                 {
4967                                     Store (0x00, Local1)
4968                                 }
4969                             }
4970                             Else
4971                             {
4972                                 If (LNot (And (Local0, 0x02)))
4973                                 {
4974                                     Store (0x00, Local1)
4975                                 }
4976                             }
4977 
4978                             If (Arg2)
4979                             {
4980                                 Multiply (Local3, Local1, Local1)
4981                                 Divide (Local1, 0x03E8, Local7, Local1)
4982                             }
4983                         }
4984 
4985                         Store (Local0, Index (Arg3, 0x00))
4986                         Store (Local1, Index (Arg3, 0x01))
4987                         Store (Local2, Index (Arg3, 0x02))
4988                         Store (Local3, Index (Arg3, 0x03))
4989                         Release (BATM)
4990                         Return (Arg3)
4991                     }
4992 
4993                     Device (BAT0)
4994                     {
4995                         Name (_HID, EisaId ("PNP0C0A"))  // _HID: Hardware ID
4996                         Name (_UID, 0x00)  // _UID: Unique ID
4997                         Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
4998                         {
4999                             \_SB
5000                         })
5001                         Name (B0ST, 0x00)
5002                         Name (BT0I, Package (0x0D)
5003                         {
5004                             0x00, 
5005                             0xFFFFFFFF, 
5006                             0xFFFFFFFF, 
5007                             0x01, 
5008                             0x2A30, 
5009                             0x00, 
5010                             0x00, 
5011                             0x01, 
5012                             0x01, 
5013                             "", 
5014                             "", 
5015                             "", 
5016                             ""
5017                         })
5018                         Name (BT0P, Package (0x04) {})
5019                         Method (_STA, 0, NotSerialized)  // _STA: Status
5020                         {
5021                             If (\H8DR)
5022                             {
5023                                 Store (HB0A, B0ST)
5024                             }
5025                             Else
5026                             {
5027                                 If (And (\RBEC (0x38), 0x80))
5028                                 {
5029                                     Store (0x01, B0ST)
5030                                 }
5031                                 Else
5032                                 {
5033                                     Store (0x00, B0ST)
5034                                 }
5035                             }
5036 
5037                             If (B0ST)
5038                             {
5039                                 Return (0x1F)
5040                             }
5041                             Else
5042                             {
5043                                 Return (0x0F)
5044                             }
5045                         }
5046 
5047                         Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
5048                         {
5049                             Store (0x00, Local7)
5050                             Store (0x0A, Local6)
5051                             While (LAnd (LNot (Local7), Local6))
5052                             {
5053                                 If (HB0A)
5054                                 {
5055                                     If (LEqual (And (HB0S, 0x0F), 0x0F))
5056                                     {
5057                                         Sleep (0x03E8)
5058                                         Decrement (Local6)
5059                                     }
5060                                     Else
5061                                     {
5062                                         Store (0x01, Local7)
5063                                     }
5064                                 }
5065                                 Else
5066                                 {
5067                                     Store (0x00, Local6)
5068                                 }
5069                             }
5070 
5071                             Return (GBIF (0x00, BT0I, Local7))
5072                         }
5073 
5074                         Method (_BST, 0, NotSerialized)  // _BST: Battery Status
5075                         {
5076                             XOr (DerefOf (Index (BT0I, 0x00)), 0x01, Local0)
5077                             Return (GBST (0x00, HB0S, Local0, BT0P))
5078                         }
5079 
5080                         Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
5081                         {
5082                             And (HAM4, 0xEF, HAM4)
5083                             If (Arg0)
5084                             {
5085                                 Store (Arg0, Local1)
5086                                 If (LNot (DerefOf (Index (BT0I, 0x00))))
5087                                 {
5088                                     Divide (Local1, 0x0A, Local0, Local1)
5089                                 }
5090 
5091                                 And (Local1, 0xFF, HT0L)
5092                                 And (ShiftRight (Local1, 0x08), 0xFF, HT0H)
5093                                 Or (HAM4, 0x10, HAM4)
5094                             }
5095                         }
5096                     }
5097 
5098                     Device (BAT1)
5099                     {
5100                         Name (_HID, EisaId ("PNP0C0A"))  // _HID: Hardware ID
5101                         Name (_UID, 0x02)  // _UID: Unique ID
5102                         Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
5103                         {
5104                             \_SB
5105                         })
5106                         Name (B1ST, 0x00)
5107                         Name (XB1S, 0x01)
5108                         Name (BT1I, Package (0x0D)
5109                         {
5110                             0x00, 
5111                             0xFFFFFFFF, 
5112                             0xFFFFFFFF, 
5113                             0x01, 
5114                             0x2A30, 
5115                             0x00, 
5116                             0x00, 
5117                             0x01, 
5118                             0x01, 
5119                             "", 
5120                             "", 
5121                             "", 
5122                             ""
5123                         })
5124                         Name (BT1P, Package (0x04)
5125                         {
5126                             0x00, 
5127                             0x00, 
5128                             0x00, 
5129                             0x00
5130                         })
5131                         Method (_STA, 0, NotSerialized)  // _STA: Status
5132                         {
5133                             If (\H8DR)
5134                             {
5135                                 If (LAnd (\WNTF, And (HBCS, 0x02)))
5136                                 {
5137                                     Store (HB1A, B1ST)
5138                                 }
5139                             }
5140                             Else
5141                             {
5142                                 If (LAnd (\WNTF, And (\RBEC (0xCE), 0x02)))
5143                                 {
5144                                     If (And (\RBEC (0x39), 0x80))
5145                                     {
5146                                         Store (0x01, B1ST)
5147                                     }
5148                                     Else
5149                                     {
5150                                         Store (0x00, B1ST)
5151                                     }
5152                                 }
5153                             }
5154 
5155                             If (B1ST)
5156                             {
5157                                 If (XB1S)
5158                                 {
5159                                     Return (0x1F)
5160                                 }
5161                                 Else
5162                                 {
5163                                     If (\WNTF)
5164                                     {
5165                                         Return (0x00)
5166                                     }
5167                                     Else
5168                                     {
5169                                         Return (0x1F)
5170                                     }
5171                                 }
5172                             }
5173                             Else
5174                             {
5175                                 If (\WNTF)
5176                                 {
5177                                     Return (0x00)
5178                                 }
5179                                 Else
5180                                 {
5181                                     Return (0x0F)
5182                                 }
5183                             }
5184                         }
5185 
5186                         Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
5187                         {
5188                             If (LNot (B1ST))
5189                             {
5190                                 Return (BT1I)
5191                             }
5192 
5193                             Store (0x00, Local7)
5194                             Store (0x0A, Local6)
5195                             While (LAnd (LNot (Local7), Local6))
5196                             {
5197                                 If (HB1A)
5198                                 {
5199                                     If (LEqual (And (HB1S, 0x0F), 0x0F))
5200                                     {
5201                                         Sleep (0x03E8)
5202                                         Decrement (Local6)
5203                                     }
5204                                     Else
5205                                     {
5206                                         Store (0x01, Local7)
5207                                     }
5208                                 }
5209                                 Else
5210                                 {
5211                                     Store (0x00, Local6)
5212                                 }
5213                             }
5214 
5215                             Return (GBIF (0x10, BT1I, Local7))
5216                         }
5217 
5218                         Method (_BST, 0, NotSerialized)  // _BST: Battery Status
5219                         {
5220                             If (LNot (B1ST))
5221                             {
5222                                 Return (BT1P)
5223                             }
5224 
5225                             XOr (DerefOf (Index (BT1I, 0x00)), 0x01, Local0)
5226                             Return (GBST (0x10, HB1S, Local0, BT1P))
5227                         }
5228 
5229                         Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
5230                         {
5231                             If (B1ST)
5232                             {
5233                                 And (HAM4, 0xDF, HAM4)
5234                                 If (Arg0)
5235                                 {
5236                                     Store (Arg0, Local1)
5237                                     If (LNot (DerefOf (Index (BT1I, 0x00))))
5238                                     {
5239                                         Divide (Local1, 0x0A, Local0, Local1)
5240                                     }
5241 
5242                                     And (Local1, 0xFF, HT1L)
5243                                     And (ShiftRight (Local1, 0x08), 0xFF, HT1H)
5244                                     Or (HAM4, 0x20, HAM4)
5245                                 }
5246                             }
5247                         }
5248                     }
5249 
5250                     Device (BAT2)
5251                     {
5252                         Name (_HID, EisaId ("PNP0C0A"))  // _HID: Hardware ID
5253                         Name (_UID, 0x01)  // _UID: Unique ID
5254                         Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
5255                         {
5256                             \_SB
5257                         })
5258                         Name (B2ST, 0x00)
5259                         Name (XB2S, 0x01)
5260                         Name (IFLG, 0x00)
5261                         Name (BT2I, Package (0x0D)
5262                         {
5263                             0x00, 
5264                             0xFFFFFFFF, 
5265                             0xFFFFFFFF, 
5266                             0x01, 
5267                             0x2A30, 
5268                             0x00, 
5269                             0x00, 
5270                             0x01, 
5271                             0x01, 
5272                             "", 
5273                             "", 
5274                             "", 
5275                             ""
5276                         })
5277                         Name (BT2P, Package (0x04)
5278                         {
5279                             0x00, 
5280                             0x00, 
5281                             0x00, 
5282                             0x00
5283                         })
5284                         Method (_INI, 0, NotSerialized)  // _INI: Initialize
5285                         {
5286                             If (LEqual (\_SB.PCI0.LPC.EC.GSID (), 0x03))
5287                             {
5288                                 Store (0x00, XB2S)
5289                             }
5290                             Else
5291                             {
5292                                 If (\WNTF)
5293                                 {
5294                                     If (\H8DR)
5295                                     {
5296                                         Store (HB1A, Local0)
5297                                     }
5298                                     Else
5299                                     {
5300                                         And (\RBEC (0x39), 0x80, Local0)
5301                                     }
5302 
5303                                     If (LNot (Local0))
5304                                     {
5305                                         Store (0x00, XB2S)
5306                                     }
5307                                 }
5308                             }
5309 
5310                             Store (0x01, IFLG)
5311                         }
5312 
5313                         Method (_STA, 0, NotSerialized)  // _STA: Status
5314                         {
5315                             If (LNot (IFLG))
5316                             {
5317                                 _INI ()
5318                             }
5319 
5320                             If (\H8DR)
5321                             {
5322                                 If (LAnd (\WNTF, And (HBCS, 0x02)))
5323                                 {
5324                                     Store (0x00, B2ST)
5325                                 }
5326                                 Else
5327                                 {
5328                                     Store (HB1A, B2ST)
5329                                 }
5330                             }
5331                             Else
5332                             {
5333                                 If (LAnd (\WNTF, And (\RBEC (0xCE), 0x02)))
5334                                 {
5335                                     Store (0x00, B2ST)
5336                                 }
5337                                 Else
5338                                 {
5339                                     If (And (\RBEC (0xCE), 0x01))
5340                                     {
5341                                         Store (0x01, B2ST)
5342                                     }
5343                                     Else
5344                                     {
5345                                         Store (0x00, B2ST)
5346                                     }
5347                                 }
5348                             }
5349 
5350                             If (B2ST)
5351                             {
5352                                 If (XB2S)
5353                                 {
5354                                     Return (0x1F)
5355                                 }
5356                                 Else
5357                                 {
5358                                     Return (0x00)
5359                                 }
5360                             }
5361                             Else
5362                             {
5363                                 If (XB2S)
5364                                 {
5365                                     Return (0x0F)
5366                                 }
5367                                 Else
5368                                 {
5369                                     Return (0x00)
5370                                 }
5371                             }
5372                         }
5373 
5374                         Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
5375                         {
5376                             If (LNot (B2ST))
5377                             {
5378                                 Return (BT2I)
5379                             }
5380 
5381                             Store (0x00, Local7)
5382                             Store (0x0A, Local6)
5383                             While (LAnd (LNot (Local7), Local6))
5384                             {
5385                                 If (HB1A)
5386                                 {
5387                                     If (LEqual (And (HB1S, 0x0F), 0x0F))
5388                                     {
5389                                         Sleep (0x03E8)
5390                                         Decrement (Local6)
5391                                     }
5392                                     Else
5393                                     {
5394                                         Store (0x01, Local7)
5395                                     }
5396                                 }
5397                                 Else
5398                                 {
5399                                     Store (0x00, Local6)
5400                                 }
5401                             }
5402 
5403                             Return (GBIF (0x10, BT2I, Local7))
5404                         }
5405 
5406                         Method (_BST, 0, NotSerialized)  // _BST: Battery Status
5407                         {
5408                             If (LNot (B2ST))
5409                             {
5410                                 Return (BT2P)
5411                             }
5412 
5413                             XOr (DerefOf (Index (BT2I, 0x00)), 0x01, Local0)
5414                             Return (GBST (0x10, HB1S, Local0, BT2P))
5415                         }
5416 
5417                         Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
5418                         {
5419                             If (B2ST)
5420                             {
5421                                 And (HAM4, 0xDF, HAM4)
5422                                 If (Arg0)
5423                                 {
5424                                     Store (Arg0, Local1)
5425                                     If (LNot (DerefOf (Index (BT2I, 0x00))))
5426                                     {
5427                                         Divide (Local1, 0x0A, Local0, Local1)
5428                                     }
5429 
5430                                     And (Local1, 0xFF, HT1L)
5431                                     And (ShiftRight (Local1, 0x08), 0xFF, HT1H)
5432                                     Or (HAM4, 0x20, HAM4)
5433                                 }
5434                             }
5435                         }
5436                     }
5437 
5438                     Device (AC)
5439                     {
5440                         Name (_HID, "ACPI0003")  // _HID: Hardware ID
5441                         Name (_UID, 0x00)  // _UID: Unique ID
5442                         Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
5443                         {
5444                             \_SB
5445                         })
5446                         Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
5447                         {
5448                             Return (HPAC)
5449                         }
5450 
5451                         Method (_STA, 0, NotSerialized)  // _STA: Status
5452                         {
5453                             Return (0x0F)
5454                         }
5455                     }
5456 
5457                     Device (HKEY)
5458                     {
5459                         Name (_HID, EisaId ("IBM0068"))  // _HID: Hardware ID
5460                         Method (_STA, 0, NotSerialized)  // _STA: Status
5461                         {
5462                             Return (0x0F)
5463                         }
5464 
5465                         Method (MHKV, 0, NotSerialized)
5466                         {
5467                             Return (0x0100)
5468                         }
5469 
5470                         Name (DHKC, 0x00)
5471                         Name (DHKB, 0x01)
5472                         Mutex (XDHK, 0x07)
5473                         Name (DHKH, 0x00)
5474                         Name (DHKW, 0x00)
5475                         Name (DHKS, 0x00)
5476                         Name (DHKD, 0x00)
5477                         Name (DHKN, 0x080C)
5478                         Name (DHKT, 0x00)
5479                         Name (DHWW, 0x00)
5480                         Name (DHC4, 0x00)
5481                         Method (MHKA, 0, NotSerialized)
5482                         {
5483                             Return (0x00FFFFFF)
5484                         }
5485 
5486                         Method (MHKN, 0, NotSerialized)
5487                         {
5488                             Return (DHKN)
5489                         }
5490 
5491                         Method (MHKK, 1, NotSerialized)
5492                         {
5493                             If (DHKC)
5494                             {
5495                                 Return (And (DHKN, Arg0))
5496                             }
5497                             Else
5498                             {
5499                                 Return (Zero)
5500                             }
5501                         }
5502 
5503                         Method (MHKM, 2, NotSerialized)
5504                         {
5505                             Acquire (XDHK, 0xFFFF)
5506                             If (LGreater (Arg0, 0x20))
5507                             {
5508                                 Noop
5509                             }
5510                             Else
5511                             {
5512                                 ShiftLeft (One, Decrement (Arg0), Local0)
5513                                 If (And (Local0, 0x00FFFFFF))
5514                                 {
5515                                     If (Arg1)
5516                                     {
5517                                         Or (Local0, DHKN, DHKN)
5518                                     }
5519                                     Else
5520                                     {
5521                                         And (DHKN, XOr (Local0, 0xFFFFFFFF), DHKN)
5522                                     }
5523                                 }
5524                                 Else
5525                                 {
5526                                     Noop
5527                                 }
5528                             }
5529 
5530                             Release (XDHK)
5531                         }
5532 
5533                         Method (MHKS, 0, NotSerialized)
5534                         {
5535                             Notify (\_SB.SLPB, 0x80)
5536                         }
5537 
5538                         Method (MHKC, 1, NotSerialized)
5539                         {
5540                             Store (Arg0, DHKC)
5541                         }
5542 
5543                         Method (MHKP, 0, NotSerialized)
5544                         {
5545                             Acquire (XDHK, 0xFFFF)
5546                             If (DHWW)
5547                             {
5548                                 Store (DHWW, Local1)
5549                                 Store (Zero, DHWW)
5550                             }
5551                             Else
5552                             {
5553                                 If (DHKW)
5554                                 {
5555                                     Store (DHKW, Local1)
5556                                     Store (Zero, DHKW)
5557                                 }
5558                                 Else
5559                                 {
5560                                     If (DHKD)
5561                                     {
5562                                         Store (DHKD, Local1)
5563                                         Store (Zero, DHKD)
5564                                     }
5565                                     Else
5566                                     {
5567                                         If (DHKS)
5568                                         {
5569                                             Store (DHKS, Local1)
5570                                             Store (Zero, DHKS)
5571                                         }
5572                                         Else
5573                                         {
5574                                             If (DHKT)
5575                                             {
5576                                                 Store (DHKT, Local1)
5577                                                 Store (Zero, DHKT)
5578                                             }
5579                                             Else
5580                                             {
5581                                                 Store (DHKH, Local1)
5582                                                 Store (Zero, DHKH)
5583                                             }
5584                                         }
5585                                     }
5586                                 }
5587                             }
5588 
5589                             Release (XDHK)
5590                             Return (Local1)
5591                         }
5592 
5593                         Method (MHKE, 1, NotSerialized)
5594                         {
5595                             Store (Arg0, DHKB)
5596                             Acquire (XDHK, 0xFFFF)
5597                             Store (Zero, DHKH)
5598                             Store (Zero, DHKW)
5599                             Store (Zero, DHKS)
5600                             Store (Zero, DHKD)
5601                             Store (Zero, DHKT)
5602                             Store (Zero, DHWW)
5603                             Release (XDHK)
5604                         }
5605 
5606                         Method (MHKQ, 1, NotSerialized)
5607                         {
5608                             If (DHKB)
5609                             {
5610                                 If (DHKC)
5611                                 {
5612                                     Acquire (XDHK, 0xFFFF)
5613                                     If (LLess (Arg0, 0x1000)) {}
5614                                     Else
5615                                     {
5616                                         If (LLess (Arg0, 0x2000))
5617                                         {
5618                                             Store (Arg0, DHKH)
5619                                         }
5620                                         Else
5621                                         {
5622                                             If (LLess (Arg0, 0x3000))
5623                                             {
5624                                                 Store (Arg0, DHKW)
5625                                             }
5626                                             Else
5627                                             {
5628                                                 If (LLess (Arg0, 0x4000))
5629                                                 {
5630                                                     Store (Arg0, DHKS)
5631                                                 }
5632                                                 Else
5633                                                 {
5634                                                     If (LLess (Arg0, 0x5000))
5635                                                     {
5636                                                         Store (Arg0, DHKD)
5637                                                     }
5638                                                     Else
5639                                                     {
5640                                                         If (LLess (Arg0, 0x6000))
5641                                                         {
5642                                                             Store (Arg0, DHKH)
5643                                                         }
5644                                                         Else
5645                                                         {
5646                                                             If (LLess (Arg0, 0x7000))
5647                                                             {
5648                                                                 Store (Arg0, DHKT)
5649                                                             }
5650                                                             Else
5651                                                             {
5652                                                                 If (LLess (Arg0, 0x8000))
5653                                                                 {
5654                                                                     Store (Arg0, DHWW)
5655                                                                 }
5656                                                                 Else
5657                                                                 {
5658                                                                 }
5659                                                             }
5660                                                         }
5661                                                     }
5662                                                 }
5663                                             }
5664                                         }
5665                                     }
5666 
5667                                     Release (XDHK)
5668                                     Notify (HKEY, 0x80)
5669                                 }
5670                                 Else
5671                                 {
5672                                     If (LEqual (Arg0, 0x1004))
5673                                     {
5674                                         Notify (\_SB.SLPB, 0x80)
5675                                     }
5676                                 }
5677                             }
5678                         }
5679 
5680                         Method (MHKB, 1, NotSerialized)
5681                         {
5682                             If (LEqual (Arg0, 0x00))
5683                             {
5684                                 \_SB.PCI0.LPC.EC.BEEP (0x11)
5685                                 Store (0x00, \LIDB)
5686                             }
5687                             Else
5688                             {
5689                                 If (LEqual (Arg0, 0x01))
5690                                 {
5691                                     \_SB.PCI0.LPC.EC.BEEP (0x10)
5692                                     Store (0x01, \LIDB)
5693                                 }
5694                                 Else
5695                                 {
5696                                 }
5697                             }
5698                         }
5699 
5700                         Method (MHKD, 0, NotSerialized)
5701                         {
5702                             If (VIGD)
5703                             {
5704                                 \_SB.PCI0.VID.VLOC (0x00)
5705                             }
5706                             Else
5707                             {
5708                                 \_SB.PCI0.AGP.VID.VLOC (0x00)
5709                             }
5710                         }
5711 
5712                         Method (MHQC, 1, NotSerialized)
5713                         {
5714                             If (\WNTF)
5715                             {
5716                                 If (LEqual (Arg0, 0x00))
5717                                 {
5718                                     Return (\CWAC)
5719                                 }
5720                                 Else
5721                                 {
5722                                     If (LEqual (Arg0, 0x01))
5723                                     {
5724                                         Return (\CWAP)
5725                                     }
5726                                     Else
5727                                     {
5728                                         If (LEqual (Arg0, 0x02))
5729                                         {
5730                                             Return (\CWAT)
5731                                         }
5732                                         Else
5733                                         {
5734                                             Noop
5735                                         }
5736                                     }
5737                                 }
5738                             }
5739                             Else
5740                             {
5741                                 Noop
5742                             }
5743 
5744                             Return (0x00)
5745                         }
5746 
5747                         Method (MHGC, 0, NotSerialized)
5748                         {
5749                             If (\WNTF)
5750                             {
5751                                 Acquire (XDHK, 0xFFFF)
5752                                 If (CKC4 (0x00))
5753                                 {
5754                                     Store (0x03, Local0)
5755                                 }
5756                                 Else
5757                                 {
5758                                     Store (0x04, Local0)
5759                                 }
5760 
5761                                 Release (XDHK)
5762                                 Return (Local0)
5763                             }
5764                             Else
5765                             {
5766                                 Noop
5767                             }
5768 
5769                             Return (0x00)
5770                         }
5771 
5772                         Method (MHSC, 1, NotSerialized)
5773                         {
5774                             If (LAnd (\CWAC, \WNTF))
5775                             {
5776                                 Acquire (XDHK, 0xFFFF)
5777                                 If (\OSC4)
5778                                 {
5779                                     If (LEqual (Arg0, 0x03))
5780                                     {
5781                                         If (LNot (\CWAS))
5782                                         {
5783                                             Notify (\_PR.CPU0, 0x81)
5784                                             If (\MPEN)
5785                                             {
5786                                                 Notify (\_PR.CPU1, 0x81)
5787                                             }
5788 
5789                                             Store (0x01, \CWAS)
5790                                         }
5791                                     }
5792                                     Else
5793                                     {
5794                                         If (LEqual (Arg0, 0x04))
5795                                         {
5796                                             If (\CWAS)
5797                                             {
5798                                                 Notify (\_PR.CPU0, 0x81)
5799                                                 If (\MPEN)
5800                                                 {
5801                                                     Notify (\_PR.CPU1, 0x81)
5802                                                 }
5803 
5804                                                 Store (0x00, \CWAS)
5805                                             }
5806                                         }
5807                                         Else
5808                                         {
5809                                             Noop
5810                                         }
5811                                     }
5812                                 }
5813                                 Else
5814                                 {
5815                                     If (LEqual (Arg0, 0x03))
5816                                     {
5817                                         If (LNot (\CWAS))
5818                                         {
5819                                             Store (0x00, \_SB.PCI0.LPC.C4C3)
5820                                             Store (0x01, \CWAS)
5821                                         }
5822                                     }
5823                                     Else
5824                                     {
5825                                         If (LEqual (Arg0, 0x04))
5826                                         {
5827                                             If (\CWAS)
5828                                             {
5829                                                 Store (0x00, \CWAS)
5830                                                 If (LNot (CKC4 (0x00)))
5831                                                 {
5832                                                     Store (0x01, \_SB.PCI0.LPC.C4C3)
5833                                                 }
5834                                             }
5835                                         }
5836                                         Else
5837                                         {
5838                                             Noop
5839                                         }
5840                                     }
5841                                 }
5842 
5843                                 Release (XDHK)
5844                             }
5845                             Else
5846                             {
5847                                 Noop
5848                             }
5849                         }
5850 
5851                         Method (CKC4, 1, NotSerialized)
5852                         {
5853                             Store (0x00, Local0)
5854                             If (DHC4)
5855                             {
5856                                 If (\C4WR)
5857                                 {
5858                                     If (LNot (\C4AC))
5859                                     {
5860                                         Or (Local0, 0x01, Local0)
5861                                     }
5862                                 }
5863                             }
5864                             Else
5865                             {
5866                                 If (\_SB.PCI0.LPC.EC.AC._PSR ())
5867                                 {
5868                                     Or (Local0, 0x01, Local0)
5869                                 }
5870                             }
5871 
5872                             If (\C4NA)
5873                             {
5874                                 Or (Local0, 0x02, Local0)
5875                             }
5876 
5877                             If (LAnd (\CWAC, \CWAS))
5878                             {
5879                                 Or (Local0, 0x04, Local0)
5880                             }
5881 
5882                             If (LAnd (\CWUE, \CWUS))
5883                             {
5884                                 Or (Local0, 0x08, Local0)
5885                             }
5886 
5887                             And (Local0, Not (Arg0), Local0)
5888                             Return (Local0)
5889                         }
5890 
5891                         Method (MHQE, 0, NotSerialized)
5892                         {
5893                             Return (\C4WR)
5894                         }
5895 
5896                         Method (MHGE, 0, NotSerialized)
5897                         {
5898                             Store (0x01, DHC4)
5899                             If (LAnd (\C4WR, \C4AC))
5900                             {
5901                                 Return (0x04)
5902                             }
5903 
5904                             Return (0x03)
5905                         }
5906 
5907                         Method (MHSE, 1, NotSerialized)
5908                         {
5909                             If (\C4WR)
5910                             {
5911                                 Store (0x01, DHC4)
5912                                 Store (\C4AC, Local0)
5913                                 If (LEqual (Arg0, 0x03))
5914                                 {
5915                                     Store (0x00, \C4AC)
5916                                     If (XOr (Local0, \C4AC))
5917                                     {
5918                                         If (\OSC4)
5919                                         {
5920                                             Notify (\_PR.CPU0, 0x81)
5921                                             If (\MPEN)
5922                                             {
5923                                                 Notify (\_PR.CPU1, 0x81)
5924                                             }
5925                                         }
5926                                         Else
5927                                         {
5928                                             Store (0x00, \_SB.PCI0.LPC.C4C3)
5929                                         }
5930                                     }
5931                                 }
5932                                 Else
5933                                 {
5934                                     If (LEqual (Arg0, 0x04))
5935                                     {
5936                                         Store (0x01, \C4AC)
5937                                         If (XOr (Local0, \C4AC))
5938                                         {
5939                                             If (\OSC4)
5940                                             {
5941                                                 Notify (\_PR.CPU0, 0x81)
5942                                                 If (\MPEN)
5943                                                 {
5944                                                     Notify (\_PR.CPU1, 0x81)
5945                                                 }
5946                                             }
5947                                             Else
5948                                             {
5949                                                 If (LNot (CKC4 (0x00)))
5950                                                 {
5951                                                     Store (0x01, \_SB.PCI0.LPC.C4C3)
5952                                                 }
5953                                             }
5954                                         }
5955                                     }
5956                                 }
5957                             }
5958                         }
5959                     }
5960 
5961                     Scope (\_SB.PCI0.LPC.EC.HKEY)
5962                     {
5963                         Method (TDSC, 1, NotSerialized)
5964                         {
5965                             Store (0x01, Local0)
5966                             While (Local0)
5967                             {
5968                                 Store (\_SB.PCI0.LPC.EC.HANT, Local0)
5969                             }
5970 
5971                             Store (Arg0, \_SB.PCI0.LPC.EC.HANT)
5972                             If (LEqual (Arg0, 0x21))
5973                             {
5974                                 \ATCC (0x00)
5975                             }
5976                         }
5977 
5978                         Method (TDSS, 1, NotSerialized)
5979                         {
5980                             \ATCC (Arg0)
5981                         }
5982 
5983                         Method (TDSG, 1, NotSerialized)
5984                         {
5985                             And (Arg0, 0xFF, Local0)
5986                             Store (Local0, \_SB.PCI0.LPC.EC.HDAA)
5987                             ShiftRight (Arg0, 0x08, Local0)
5988                             And (Local0, 0xFF, Local1)
5989                             Store (Local1, \_SB.PCI0.LPC.EC.HDAB)
5990                             ShiftRight (Arg0, 0x10, Local0)
5991                             And (Local0, 0xFF, Local1)
5992                             Store (Local1, \_SB.PCI0.LPC.EC.HDAC)
5993                             ShiftRight (Arg0, 0x18, Local0)
5994                             And (Local0, 0xFF, Local1)
5995                             Store (Local1, \_SB.PCI0.LPC.EC.HANA)
5996                         }
5997 
5998                         Method (TDGC, 0, NotSerialized)
5999                         {
6000                             Store (\_SB.PCI0.LPC.EC.HDDD, Local0)
6001                             Return (Local0)
6002                         }
6003 
6004                         Method (TDGS, 0, NotSerialized)
6005                         {
6006                             Store (\_SB.PCI0.LPC.EC.HAAA, Local0)
6007                             Return (Local0)
6008                         }
6009                     }
6010 
6011                     Field (ECOR, ByteAcc, Lock, Preserve)
6012                     {
6013                         Offset (0x54), 
6014                         HSD0,   8, 
6015                         HSD1,   8, 
6016                         HSD2,   8
6017                     }
6018 
6019                     Field (ECOR, ByteAcc, Lock, Preserve)
6020                     {
6021                         Offset (0x56), 
6022                         HSDL,   16
6023                     }
6024 
6025                     Field (ECOR, ByteAcc, Lock, Preserve)
6026                     {
6027                         Offset (0x56), 
6028                         HSDB,   72, 
6029                         HSDF,   16, 
6030                         HSDC,   16
6031                     }
6032 
6033                     Mutex (I2CM, 0x07)
6034                     Method (CHKS, 0, NotSerialized)
6035                     {
6036                         Store (0x03E8, Local0)
6037                         While (HMPR)
6038                         {
6039                             Sleep (0x01)
6040                             Decrement (Local0)
6041                             If (LNot (Local0))
6042                             {
6043                                 Return (0x8080)
6044                             }
6045                         }
6046 
6047                         If (HMDN)
6048                         {
6049                             If (HMST)
6050                             {
6051                                 Return (Or (0x8000, HMST))
6052                             }
6053                             Else
6054                             {
6055                                 Return (Zero)
6056                             }
6057                         }
6058                         Else
6059                         {
6060                             Return (0x8081)
6061                         }
6062                     }
6063 
6064                     Method (I2RT, 0, NotSerialized)
6065                     {
6066                         Store (0x02, HMAD)
6067                         Store (0x21, HMCM)
6068                         Store (0x0B, HMPR)
6069                         Return (CHKS ())
6070                     }
6071 
6072                     Method (I2NT, 1, NotSerialized)
6073                     {
6074                         Store (0x02, HMAD)
6075                         Store (0x22, HMCM)
6076                         Store (Arg0, HSD0)
6077                         Store (0x06, HMPR)
6078                         Return (CHKS ())
6079                     }
6080 
6081                     Method (TATR, 0, NotSerialized)
6082                     {
6083                         If (\H8DR)
6084                         {
6085                             Acquire (I2CM, 0xFFFF)
6086                             I2RT ()
6087                             Store (HSD0, Local0)
6088                             If (LEqual (Local0, 0x20))
6089                             {
6090                                 \_SB.PCI0.LPC.TCSZ (HSD1, HSD2)
6091                                 I2NT (Local0)
6092                             }
6093                             Else
6094                             {
6095                                 If (LEqual (Local0, 0x21))
6096                                 {
6097                                     \_SB.PCI0.LPC.TCST (HSD1, HSD2)
6098                                     I2NT (Local0)
6099                                 }
6100                                 Else
6101                                 {
6102                                     If (LEqual (Local0, 0x22))
6103                                     {
6104                                         Name (TSDC, Buffer (0x09)
6105                                         {
6106                                             "        "
6107                                         })
6108                                         Store (HSDB, TSDC)
6109                                         \_SB.PCI0.LPC.TCBS (HSD1, TSDC, HSDF, HSDC)
6110                                         I2NT (Local0)
6111                                     }
6112                                     Else
6113                                     {
6114                                         If (LEqual (Local0, 0x23))
6115                                         {
6116                                             \_SB.PCI0.LPC.TSCL (HSD1, HSDL)
6117                                             I2NT (Local0)
6118                                         }
6119                                     }
6120                                 }
6121                             }
6122 
6123                             Release (I2CM)
6124                         }
6125                     }
6126 
6127                     Method (TATE, 0, NotSerialized)
6128                     {
6129                         Store (0x01, HETE)
6130                     }
6131 
6132                     Scope (\_SB.PCI0.LPC.EC.HKEY)
6133                     {
6134                         Name (INDV, 0x00)
6135                         Method (MHQI, 0, NotSerialized)
6136                         {
6137                             If (And (\IPMS, 0x01))
6138                             {
6139                                 Or (INDV, 0x01, INDV)
6140                             }
6141 
6142                             If (And (\IPMS, 0x02))
6143                             {
6144                                 Or (INDV, 0x02, INDV)
6145                             }
6146 
6147                             If (And (\IPMS, 0x04))
6148                             {
6149                                 Or (INDV, 0x0100, INDV)
6150                             }
6151 
6152                             If (And (\IPMS, 0x08))
6153                             {
6154                                 Or (INDV, 0x0200, INDV)
6155                             }
6156 
6157                             Return (INDV)
6158                         }
6159 
6160                         Method (MHGI, 1, NotSerialized)
6161                         {
6162                             Name (RETB, Buffer (0x10) {})
6163                             CreateByteField (RETB, 0x00, MHGS)
6164                             ShiftLeft (0x01, Arg0, Local0)
6165                             If (And (INDV, Local0))
6166                             {
6167                                 If (LEqual (Arg0, 0x00))
6168                                 {
6169                                     CreateField (RETB, 0x08, 0x78, BRBU)
6170                                     Store (\IPMB, BRBU)
6171                                     Store (0x10, MHGS)
6172                                 }
6173                                 Else
6174                                 {
6175                                     If (LEqual (Arg0, 0x01))
6176                                     {
6177                                         CreateField (RETB, 0x08, 0x18, RRBU)
6178                                         Store (\IPMR, RRBU)
6179                                         Store (0x04, MHGS)
6180                                     }
6181                                     Else
6182                                     {
6183                                         If (LEqual (Arg0, 0x08))
6184                                         {
6185                                             CreateField (RETB, 0x10, 0x18, ODBU)
6186                                             CreateByteField (RETB, 0x01, MHGZ)
6187                                             Store (\IPMO, ODBU)
6188                                             If (LAnd (LEqual (^^BSTS, 0x00), LEqual (^^BDEV, 0x0B)))
6189                                             {
6190                                                 Or (0x01, MHGZ, MHGZ)
6191                                                 Or (0x02, MHGZ, MHGZ)
6192                                             }
6193 
6194                                             Store (0x05, MHGS)
6195                                         }
6196                                         Else
6197                                         {
6198                                             If (LEqual (Arg0, 0x09))
6199                                             {
6200                                                 CreateField (RETB, 0x10, 0x08, AUBU)
6201                                                 Store (\IPMA, AUBU)
6202                                                 Store (0x01, Index (RETB, 0x01))
6203                                                 Store (0x03, MHGS)
6204                                             }
6205                                         }
6206                                     }
6207                                 }
6208                             }
6209 
6210                             Return (RETB)
6211                         }
6212 
6213                         Method (MHSI, 2, NotSerialized)
6214                         {
6215                             ShiftLeft (0x01, Arg0, Local0)
6216                             If (And (INDV, Local0))
6217                             {
6218                                 If (LEqual (Arg0, 0x08))
6219                                 {
6220                                     If (Arg1)
6221                                     {
6222                                         If (And (\_SB.PCI0.LPC.EC.SFLG, 0x0400))
6223                                         {
6224                                             If (\H8DR)
6225                                             {
6226                                                 Store (^^HPBU, Local1)
6227                                             }
6228                                             Else
6229                                             {
6230                                                 And (\RBEC (0x47), 0x01, Local1)
6231                                             }
6232 
6233                                             If (LNot (Local1))
6234                                             {
6235                                                 Store (^^BGID (0x00), ^^BDEV)
6236                                                 ^^NBIN (Local1)
6237                                             }
6238                                         }
6239                                     }
6240                                 }
6241                             }
6242                         }
6243                     }
6244                 }
6245             }
6246 
6247             Name (_ADR, 0x00)  // _ADR: Address
6248             Name (_S3D, 0x02)  // _S3D: S3 Device State
6249             Name (RID, 0x00)
6250             Name (LRRT, Package (0x16)
6251             {
6252                 Package (0x04)
6253                 {
6254                     0x0001FFFF, 
6255                     0x00, 
6256                     \_SB.LNKA, 
6257                     0x00
6258                 }, 
6259 
6260                 Package (0x04)
6261                 {
6262                     0x0002FFFF, 
6263                     0x00, 
6264                     \_SB.LNKA, 
6265                     0x00
6266                 }, 
6267 
6268                 Package (0x04)
6269                 {
6270                     0x0003FFFF, 
6271                     0x00, 
6272                     \_SB.LNKA, 
6273                     0x00
6274                 }, 
6275 
6276                 Package (0x04)
6277                 {
6278                     0x0003FFFF, 
6279                     0x01, 
6280                     \_SB.LNKB, 
6281                     0x00
6282                 }, 
6283 
6284                 Package (0x04)
6285                 {
6286                     0x0003FFFF, 
6287                     0x02, 
6288                     \_SB.LNKC, 
6289                     0x00
6290                 }, 
6291 
6292                 Package (0x04)
6293                 {
6294                     0x0003FFFF, 
6295                     0x03, 
6296                     \_SB.LNKD, 
6297                     0x00
6298                 }, 
6299 
6300                 Package (0x04)
6301                 {
6302                     0x0019FFFF, 
6303                     0x00, 
6304                     \_SB.LNKE, 
6305                     0x00
6306                 }, 
6307 
6308                 Package (0x04)
6309                 {
6310                     0x001AFFFF, 
6311                     0x00, 
6312                     \_SB.LNKE, 
6313                     0x00
6314                 }, 
6315 
6316                 Package (0x04)
6317                 {
6318                     0x001AFFFF, 
6319                     0x01, 
6320                     \_SB.LNKF, 
6321                     0x00
6322                 }, 
6323 
6324                 Package (0x04)
6325                 {
6326                     0x001AFFFF, 
6327                     0x02, 
6328                     \_SB.LNKG, 
6329                     0x00
6330                 }, 
6331 
6332                 Package (0x04)
6333                 {
6334                     0x001BFFFF, 
6335                     0x01, 
6336                     \_SB.LNKB, 
6337                     0x00
6338                 }, 
6339 
6340                 Package (0x04)
6341                 {
6342                     0x001CFFFF, 
6343                     0x00, 
6344                     \_SB.LNKE, 
6345                     0x00
6346                 }, 
6347 
6348                 Package (0x04)
6349                 {
6350                     0x001CFFFF, 
6351                     0x01, 
6352                     \_SB.LNKF, 
6353                     0x00
6354                 }, 
6355 
6356                 Package (0x04)
6357                 {
6358                     0x001CFFFF, 
6359                     0x02, 
6360                     \_SB.LNKG, 
6361                     0x00
6362                 }, 
6363 
6364                 Package (0x04)
6365                 {
6366                     0x001CFFFF, 
6367                     0x03, 
6368                     \_SB.LNKH, 
6369                     0x00
6370                 }, 
6371 
6372                 Package (0x04)
6373                 {
6374                     0x001DFFFF, 
6375                     0x00, 
6376                     \_SB.LNKA, 
6377                     0x00
6378                 }, 
6379 
6380                 Package (0x04)
6381                 {
6382                     0x001DFFFF, 
6383                     0x01, 
6384                     \_SB.LNKB, 
6385                     0x00
6386                 }, 
6387 
6388                 Package (0x04)
6389                 {
6390                     0x001DFFFF, 
6391                     0x02, 
6392                     \_SB.LNKC, 
6393                     0x00
6394                 }, 
6395 
6396                 Package (0x04)
6397                 {
6398                     0x001DFFFF, 
6399                     0x03, 
6400                     \_SB.LNKD, 
6401                     0x00
6402                 }, 
6403 
6404                 Package (0x04)
6405                 {
6406                     0x001FFFFF, 
6407                     0x00, 
6408                     \_SB.LNKH, 
6409                     0x00
6410                 }, 
6411 
6412                 Package (0x04)
6413                 {
6414                     0x001FFFFF, 
6415                     0x02, 
6416                     \_SB.LNKA, 
6417                     0x00
6418                 }, 
6419 
6420                 Package (0x04)
6421                 {
6422                     0x001FFFFF, 
6423                     0x01, 
6424                     \_SB.LNKA, 
6425                     0x00
6426                 }
6427             })
6428             Name (ARRT, Package (0x16)
6429             {
6430                 Package (0x04)
6431                 {
6432                     0x0001FFFF, 
6433                     0x00, 
6434                     0x00, 
6435                     0x10
6436                 }, 
6437 
6438                 Package (0x04)
6439                 {
6440                     0x0002FFFF, 
6441                     0x00, 
6442                     0x00, 
6443                     0x10
6444                 }, 
6445 
6446                 Package (0x04)
6447                 {
6448                     0x0003FFFF, 
6449                     0x00, 
6450                     0x00, 
6451                     0x10
6452                 }, 
6453 
6454                 Package (0x04)
6455                 {
6456                     0x0003FFFF, 
6457                     0x01, 
6458                     0x00, 
6459                     0x11
6460                 }, 
6461 
6462                 Package (0x04)
6463                 {
6464                     0x0003FFFF, 
6465                     0x02, 
6466                     0x00, 
6467                     0x12
6468                 }, 
6469 
6470                 Package (0x04)
6471                 {
6472                     0x0003FFFF, 
6473                     0x03, 
6474                     0x00, 
6475                     0x13
6476                 }, 
6477 
6478                 Package (0x04)
6479                 {
6480                     0x0019FFFF, 
6481                     0x00, 
6482                     0x00, 
6483                     0x14
6484                 }, 
6485 
6486                 Package (0x04)
6487                 {
6488                     0x001AFFFF, 
6489                     0x00, 
6490                     0x00, 
6491                     0x14
6492                 }, 
6493 
6494                 Package (0x04)
6495                 {
6496                     0x001AFFFF, 
6497                     0x01, 
6498                     0x00, 
6499                     0x15
6500                 }, 
6501 
6502                 Package (0x04)
6503                 {
6504                     0x001AFFFF, 
6505                     0x02, 
6506                     0x00, 
6507                     0x16
6508                 }, 
6509 
6510                 Package (0x04)
6511                 {
6512                     0x001BFFFF, 
6513                     0x01, 
6514                     0x00, 
6515                     0x11
6516                 }, 
6517 
6518                 Package (0x04)
6519                 {
6520                     0x001CFFFF, 
6521                     0x00, 
6522                     0x00, 
6523                     0x14
6524                 }, 
6525 
6526                 Package (0x04)
6527                 {
6528                     0x001CFFFF, 
6529                     0x01, 
6530                     0x00, 
6531                     0x15
6532                 }, 
6533 
6534                 Package (0x04)
6535                 {
6536                     0x001CFFFF, 
6537                     0x02, 
6538                     0x00, 
6539                     0x16
6540                 }, 
6541 
6542                 Package (0x04)
6543                 {
6544                     0x001CFFFF, 
6545                     0x03, 
6546                     0x00, 
6547                     0x17
6548                 }, 
6549 
6550                 Package (0x04)
6551                 {
6552                     0x001DFFFF, 
6553                     0x00, 
6554                     0x00, 
6555                     0x10
6556                 }, 
6557 
6558                 Package (0x04)
6559                 {
6560                     0x001DFFFF, 
6561                     0x01, 
6562                     0x00, 
6563                     0x11
6564                 }, 
6565 
6566                 Package (0x04)
6567                 {
6568                     0x001DFFFF, 
6569                     0x02, 
6570                     0x00, 
6571                     0x12
6572                 }, 
6573 
6574                 Package (0x04)
6575                 {
6576                     0x001DFFFF, 
6577                     0x03, 
6578                     0x00, 
6579                     0x13
6580                 }, 
6581 
6582                 Package (0x04)
6583                 {
6584                     0x001FFFFF, 
6585                     0x00, 
6586                     0x00, 
6587                     0x17
6588                 }, 
6589 
6590                 Package (0x04)
6591                 {
6592                     0x001FFFFF, 
6593                     0x02, 
6594                     0x00, 
6595                     0x10
6596                 }, 
6597 
6598                 Package (0x04)
6599                 {
6600                     0x001FFFFF, 
6601                     0x01, 
6602                     0x00, 
6603                     0x10
6604                 }
6605             })
6606             Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
6607             {
6608                 If (\GPIC)
6609                 {
6610                     Return (ARRT)
6611                 }
6612                 Else
6613                 {
6614                     Return (LRRT)
6615                 }
6616             }
6617 
6618             Name (_HID, EisaId ("PNP0A08"))  // _HID: Hardware ID
6619             Name (_CID, EisaId ("PNP0A03"))  // _CID: Compatible ID
6620             Name (_BBN, 0x00)  // _BBN: BIOS Bus Number
6621             OperationRegion (MHCS, PCI_Config, 0x00, 0x0100)
6622             Field (MHCS, DWordAcc, NoLock, Preserve)
6623             {
6624                 Offset (0x90), 
6625                 PAM0,   8, 
6626                 PAM1,   8, 
6627                 PAM2,   8, 
6628                 PAM3,   8, 
6629                 PAM4,   8, 
6630                 PAM5,   8, 
6631                 PAM6,   8, 
6632                 Offset (0xB0), 
6633                     ,   4, 
6634                 TOUD,   12
6635             }
6636 
6637             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
6638             {
6639                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
6640                     0x0000,             // Granularity
6641                     0x0000,             // Range Minimum
6642                     0x00FF,             // Range Maximum
6643                     0x0000,             // Translation Offset
6644                     0x0100,             // Length
6645                     ,, )
6646                 IO (Decode16,
6647                     0x0CF8,             // Range Minimum
6648                     0x0CF8,             // Range Maximum
6649                     0x01,               // Alignment
6650                     0x08,               // Length
6651                     )
6652                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
6653                     0x0000,             // Granularity
6654                     0x0000,             // Range Minimum
6655                     0x0CF7,             // Range Maximum
6656                     0x0000,             // Translation Offset
6657                     0x0CF8,             // Length
6658                     ,, , TypeStatic)
6659                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
6660                     0x0000,             // Granularity
6661                     0x0D00,             // Range Minimum
6662                     0xFFFF,             // Range Maximum
6663                     0x0000,             // Translation Offset
6664                     0xF300,             // Length
6665                     ,, , TypeStatic)
6666                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6667                     0x00000000,         // Granularity
6668                     0x000A0000,         // Range Minimum
6669                     0x000BFFFF,         // Range Maximum
6670                     0x00000000,         // Translation Offset
6671                     0x00020000,         // Length
6672                     ,, , AddressRangeMemory, TypeStatic)
6673                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6674                     0x00000000,         // Granularity
6675                     0x000C0000,         // Range Minimum
6676                     0x000C3FFF,         // Range Maximum
6677                     0x00000000,         // Translation Offset
6678                     0x00004000,         // Length
6679                     ,, _Y21, AddressRangeMemory, TypeStatic)
6680                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6681                     0x00000000,         // Granularity
6682                     0x000C4000,         // Range Minimum
6683                     0x000C7FFF,         // Range Maximum
6684                     0x00000000,         // Translation Offset
6685                     0x00004000,         // Length
6686                     ,, _Y22, AddressRangeMemory, TypeStatic)
6687                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6688                     0x00000000,         // Granularity
6689                     0x000C8000,         // Range Minimum
6690                     0x000CBFFF,         // Range Maximum
6691                     0x00000000,         // Translation Offset
6692                     0x00004000,         // Length
6693                     ,, _Y23, AddressRangeMemory, TypeStatic)
6694                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6695                     0x00000000,         // Granularity
6696                     0x000CC000,         // Range Minimum
6697                     0x000CFFFF,         // Range Maximum
6698                     0x00000000,         // Translation Offset
6699                     0x00004000,         // Length
6700                     ,, _Y24, AddressRangeMemory, TypeStatic)
6701                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6702                     0x00000000,         // Granularity
6703                     0x000D0000,         // Range Minimum
6704                     0x000D3FFF,         // Range Maximum
6705                     0x00000000,         // Translation Offset
6706                     0x00004000,         // Length
6707                     ,, _Y25, AddressRangeMemory, TypeStatic)
6708                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6709                     0x00000000,         // Granularity
6710                     0x000D4000,         // Range Minimum
6711                     0x000D7FFF,         // Range Maximum
6712                     0x00000000,         // Translation Offset
6713                     0x00004000,         // Length
6714                     ,, _Y26, AddressRangeMemory, TypeStatic)
6715                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6716                     0x00000000,         // Granularity
6717                     0x000D8000,         // Range Minimum
6718                     0x000DBFFF,         // Range Maximum
6719                     0x00000000,         // Translation Offset
6720                     0x00004000,         // Length
6721                     ,, _Y27, AddressRangeMemory, TypeStatic)
6722                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6723                     0x00000000,         // Granularity
6724                     0x000DC000,         // Range Minimum
6725                     0x000DFFFF,         // Range Maximum
6726                     0x00000000,         // Translation Offset
6727                     0x00004000,         // Length
6728                     ,, _Y28, AddressRangeMemory, TypeStatic)
6729                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6730                     0x00000000,         // Granularity
6731                     0x000E0000,         // Range Minimum
6732                     0x000E3FFF,         // Range Maximum
6733                     0x00000000,         // Translation Offset
6734                     0x00004000,         // Length
6735                     ,, _Y29, AddressRangeMemory, TypeStatic)
6736                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6737                     0x00000000,         // Granularity
6738                     0x000E4000,         // Range Minimum
6739                     0x000E7FFF,         // Range Maximum
6740                     0x00000000,         // Translation Offset
6741                     0x00004000,         // Length
6742                     ,, _Y2A, AddressRangeMemory, TypeStatic)
6743                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6744                     0x00000000,         // Granularity
6745                     0x000E8000,         // Range Minimum
6746                     0x000EBFFF,         // Range Maximum
6747                     0x00000000,         // Translation Offset
6748                     0x00004000,         // Length
6749                     ,, _Y2B, AddressRangeMemory, TypeStatic)
6750                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6751                     0x00000000,         // Granularity
6752                     0x000EC000,         // Range Minimum
6753                     0x000EFFFF,         // Range Maximum
6754                     0x00000000,         // Translation Offset
6755                     0x00004000,         // Length
6756                     ,, _Y2C, AddressRangeMemory, TypeStatic)
6757                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6758                     0x00000000,         // Granularity
6759                     0x00100000,         // Range Minimum
6760                     0xFEBFFFFF,         // Range Maximum
6761                     0x00000000,         // Translation Offset
6762                     0xFEB00000,         // Length
6763                     ,, _Y2D, AddressRangeMemory, TypeStatic)
6764                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
6765                     0x00000000,         // Granularity
6766                     0xFED40000,         // Range Minimum
6767                     0xFED4BFFF,         // Range Maximum
6768                     0x00000000,         // Translation Offset
6769                     0x0000C000,         // Length
6770                     ,, _Y2E, AddressRangeMemory, TypeStatic)
6771             })
6772             CreateDWordField (_CRS, \_SB.PCI0._Y21._LEN, C0LN)  // _LEN: Length
6773             CreateDWordField (_CRS, \_SB.PCI0._Y22._LEN, C4LN)  // _LEN: Length
6774             CreateDWordField (_CRS, \_SB.PCI0._Y23._LEN, C8LN)  // _LEN: Length
6775             CreateDWordField (_CRS, \_SB.PCI0._Y24._LEN, CCLN)  // _LEN: Length
6776             CreateDWordField (_CRS, \_SB.PCI0._Y25._LEN, D0LN)  // _LEN: Length
6777             CreateDWordField (_CRS, \_SB.PCI0._Y26._LEN, D4LN)  // _LEN: Length
6778             CreateDWordField (_CRS, \_SB.PCI0._Y27._LEN, D8LN)  // _LEN: Length
6779             CreateDWordField (_CRS, \_SB.PCI0._Y28._LEN, DCLN)  // _LEN: Length
6780             CreateDWordField (_CRS, \_SB.PCI0._Y29._LEN, E0LN)  // _LEN: Length
6781             CreateDWordField (_CRS, \_SB.PCI0._Y2A._LEN, E4LN)  // _LEN: Length
6782             CreateDWordField (_CRS, \_SB.PCI0._Y2B._LEN, E8LN)  // _LEN: Length
6783             CreateDWordField (_CRS, \_SB.PCI0._Y2C._LEN, ECLN)  // _LEN: Length
6784             CreateDWordField (_CRS, \_SB.PCI0._Y2D._MIN, XXMN)  // _MIN: Minimum Base Address
6785             CreateDWordField (_CRS, \_SB.PCI0._Y2D._MAX, XXMX)  // _MAX: Maximum Base Address
6786             CreateDWordField (_CRS, \_SB.PCI0._Y2D._LEN, XXLN)  // _LEN: Length
6787             CreateDWordField (_CRS, \_SB.PCI0._Y2E._MIN, F4MN)  // _MIN: Minimum Base Address
6788             CreateDWordField (_CRS, \_SB.PCI0._Y2E._MAX, F4MX)  // _MAX: Maximum Base Address
6789             CreateDWordField (_CRS, \_SB.PCI0._Y2E._LEN, F4LN)  // _LEN: Length
6790             Method (_INI, 0, Serialized)  // _INI: Initialize
6791             {
6792                 If (LNot (\OSIF))
6793                 {
6794                     \_SB._INI ()
6795                 }
6796 
6797                 ShiftLeft (TOUD, 0x14, Local0)
6798                 Store (Local0, \MEMX)
6799                 Store (Local0, XXMN)
6800                 Add (Subtract (XXMX, XXMN), 0x01, XXLN)
6801                 If (LNotEqual (And (\TPMP, 0x01), 0x01))
6802                 {
6803                     Store (0x00, F4LN)
6804                 }
6805 
6806                 If (And (PAM1, 0x03))
6807                 {
6808                     Store (0x00, C0LN)
6809                 }
6810 
6811                 If (And (PAM1, 0x30))
6812                 {
6813                     Store (0x00, C4LN)
6814                 }
6815 
6816                 If (And (PAM2, 0x03))
6817                 {
6818                     Store (0x00, C8LN)
6819                 }
6820 
6821                 If (And (PAM2, 0x30))
6822                 {
6823                     Store (0x00, CCLN)
6824                 }
6825 
6826                 If (And (PAM3, 0x03))
6827                 {
6828                     Store (0x00, D0LN)
6829                 }
6830 
6831                 If (And (PAM3, 0x30))
6832                 {
6833                     Store (0x00, D4LN)
6834                 }
6835 
6836                 If (And (PAM4, 0x03))
6837                 {
6838                     Store (0x00, D8LN)
6839                 }
6840 
6841                 If (And (PAM4, 0x30))
6842                 {
6843                     Store (0x00, DCLN)
6844                 }
6845 
6846                 If (And (PAM5, 0x03))
6847                 {
6848                     Store (0x00, E0LN)
6849                 }
6850 
6851                 If (And (PAM5, 0x30))
6852                 {
6853                     Store (0x00, E4LN)
6854                 }
6855 
6856                 If (And (PAM6, 0x03))
6857                 {
6858                     Store (0x00, E8LN)
6859                 }
6860 
6861                 If (And (PAM6, 0x30))
6862                 {
6863                     Store (0x00, ECLN)
6864                 }
6865             }
6866 
6867             Name (SUPP, 0x00)
6868             Name (CTRL, 0x00)
6869             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
6870             {
6871                 CreateDWordField (Arg3, 0x00, CDW1)
6872                 CreateDWordField (Arg3, 0x04, CDW2)
6873                 CreateDWordField (Arg3, 0x08, CDW3)
6874                 CreateDWordField (Arg0, 0x00, IID0)
6875                 CreateDWordField (Arg0, 0x04, IID1)
6876                 CreateDWordField (Arg0, 0x08, IID2)
6877                 CreateDWordField (Arg0, 0x0C, IID3)
6878                 Name (UID0, Buffer (0x10)
6879                 {
6880                     /* 0000 */   0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
6881                     /* 0008 */   0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
6882                 })
6883                 CreateDWordField (UID0, 0x00, EID0)
6884                 CreateDWordField (UID0, 0x04, EID1)
6885                 CreateDWordField (UID0, 0x08, EID2)
6886                 CreateDWordField (UID0, 0x0C, EID3)
6887                 If (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (
6888                     LEqual (IID2, EID2), LEqual (IID3, EID3))))
6889                 {
6890                     Store (CDW2, SUPP)
6891                     Store (CDW3, CTRL)
6892                     And (CTRL, 0x1D, CTRL)
6893                     If (Not (And (CDW1, 0x01)))
6894                     {
6895                         If (And (CTRL, 0x01))
6896                         {
6897                             If (LNot (\VIGD))
6898                             {
6899                                 Store (0x00, \_SB.PCI0.AGP.HPGP)
6900                                 Store (0x00, \_SB.PCI0.AGP.GMGP)
6901                             }
6902 
6903                             Store (0x00, \_SB.PCI0.EXP3.HPCE)
6904                             Store (0x01, \_SB.PCI0.EXP3.HPCS)
6905                             Store (0x01, \_SB.PCI0.EXP3.ABP)
6906                             Store (0x01, \_SB.PCI0.EXP3.PDS)
6907                             Store (0x01, \NHPS)
6908                         }
6909 
6910                         If (And (CTRL, 0x04))
6911                         {
6912                             If (LNot (\VIGD))
6913                             {
6914                                 Store (0x00, \_SB.PCI0.AGP.PMGP)
6915                                 Store (0x00, \_SB.PCI0.AGP.GMGP)
6916                             }
6917 
6918                             Store (0x00, \_SB.PCI0.EXP3.PMCE)
6919                             Store (0x01, \_SB.PCI0.EXP3.PMCS)
6920                             Store (0x00, \_SB.PCI0.LPC.EXPE)
6921                             Store (0x01, \NPME)
6922                         }
6923                     }
6924 
6925                     If (LNotEqual (Arg1, 0x01))
6926                     {
6927                         Or (CDW1, 0x0A, CDW1)
6928                     }
6929 
6930                     If (LNotEqual (CDW3, CTRL))
6931                     {
6932                         Or (CDW1, 0x10, CDW1)
6933                     }
6934 
6935                     Store (CTRL, CDW3)
6936                 }
6937                 Else
6938                 {
6939                     Or (CDW1, 0x06, CDW1)
6940                 }
6941 
6942                 Return (Arg3)
6943             }
6944 
6945             Mutex (MDGS, 0x07)
6946             Name (VDEE, 0x01)
6947             Name (VDDA, Buffer (0x02) {})
6948             CreateBitField (VDDA, 0x00, VUPC)
6949             CreateBitField (VDDA, 0x01, VQDL)
6950             CreateBitField (VDDA, 0x02, VQDC)
6951             CreateBitField (VDDA, 0x03, VQDT)
6952             CreateBitField (VDDA, 0x04, VQDD)
6953             CreateBitField (VDDA, 0x05, VSDL)
6954             CreateBitField (VDDA, 0x06, VSDC)
6955             CreateBitField (VDDA, 0x07, VSDT)
6956             CreateBitField (VDDA, 0x08, VSDD)
6957             CreateBitField (VDDA, 0x0A, MSWT)
6958             CreateBitField (VDDA, 0x0B, VWST)
6959             Name (VDPU, 0x00)
6960             Device (VID)
6961             {
6962                 Name (_ADR, 0x00020000)  // _ADR: Address
6963                 Name (RID, 0x00)
6964                 OperationRegion (VPCG, PCI_Config, 0x00, 0x0100)
6965                 Field (VPCG, DWordAcc, NoLock, Preserve)
6966                 {
6967                     Offset (0xD4), 
6968                     VPWR,   8
6969                 }
6970 
6971                 Name (_S3D, 0x03)  // _S3D: S3 Device State
6972                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
6973                 {
6974                     \VUPS (0x02)
6975                     Store (\VCDL, VQDL)
6976                     Store (\VCDC, VQDC)
6977                     Store (\VCDT, VQDT)
6978                     Store (\VCDD, VQDD)
6979                 }
6980 
6981                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
6982                 {
6983                     Noop
6984                 }
6985 
6986                 Method (_PS1, 0, NotSerialized)  // _PS1: Power State 1
6987                 {
6988                     Noop
6989                 }
6990 
6991                 Method (_PS2, 0, NotSerialized)  // _PS2: Power State 2
6992                 {
6993                     Noop
6994                 }
6995 
6996                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
6997                 {
6998                     Noop
6999                 }
7000 
7001                 Method (VSWT, 0, NotSerialized)
7002                 {
7003                     If (\WVIS)
7004                     {
7005                         Store (\VEVT (0x07), Local0)
7006                     }
7007                     Else
7008                     {
7009                         Store (\VEVT (0x05), Local0)
7010                     }
7011 
7012                     And (0x0F, Local0, Local1)
7013                     If (DSFS)
7014                     {
7015                         If (LEqual (Local1, 0x03))
7016                         {
7017                             Store (0x01, Local1)
7018                         }
7019                     }
7020 
7021                     If (Local1)
7022                     {
7023                         ASWT (Local1, 0x01)
7024                         GHDS (0x00)
7025                     }
7026                 }
7027 
7028                 Method (VLOC, 1, NotSerialized)
7029                 {
7030                     If (LEqual (Arg0, \_SB.LID._LID ()))
7031                     {
7032                         \VSLD (Arg0)
7033                         If (LEqual (VPWR, 0x00))
7034                         {
7035                             If (Arg0)
7036                             {
7037                                 Store (\VEVT (0x01), Local0)
7038                             }
7039                             Else
7040                             {
7041                                 Store (\VEVT (0x02), Local0)
7042                                 If (EXTD)
7043                                 {
7044                                     Store (0x00, Local0)
7045                                 }
7046                             }
7047 
7048                             And (0x0F, Local0, Local1)
7049                             If (Local1)
7050                             {
7051                                 ASWT (Local1, 0x00)
7052                                 Store (Arg0, CLID)
7053                                 GNOT (0x02, 0x00)
7054                             }
7055                         }
7056                     }
7057                 }
7058 
7059                 Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
7060                 {
7061                     And (Arg0, 0x03, Arg0)
7062                     If (LEqual (Arg0, 0x02))
7063                     {
7064                         Store (0x14, Local0)
7065                         While (Local0)
7066                         {
7067                             Decrement (Local0)
7068                             Acquire (MDGS, 0xFFFF)
7069                             If (LEqual (0x00, MSWT))
7070                             {
7071                                 Store (0x01, MSWT)
7072                                 Store (0x00, Local0)
7073                                 Store (Arg0, VDEE)
7074                             }
7075 
7076                             Release (MDGS)
7077                             Sleep (0xC8)
7078                         }
7079                     }
7080                     Else
7081                     {
7082                         Acquire (MDGS, 0xFFFF)
7083                         If (LEqual (VDEE, 0x02))
7084                         {
7085                             Store (0x00, MSWT)
7086                         }
7087 
7088                         If (LGreater (Arg0, 0x02))
7089                         {
7090                             Store (0x01, VDEE)
7091                         }
7092                         Else
7093                         {
7094                             Store (Arg0, VDEE)
7095                         }
7096 
7097                         Release (MDGS)
7098                     }
7099                 }
7100 
7101                 Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
7102                 {
7103                     Return (Package (0x03)
7104                     {
7105                         0x0100, 
7106                         0x0300, 
7107                         0x0400
7108                     })
7109                 }
7110 
7111                 Method (ASWT, 2, NotSerialized)
7112                 {
7113                     If (LEqual (0x01, VDEE))
7114                     {
7115                         And (0x01, Arg1, Local1)
7116                         \VSDS (Arg0, Local1)
7117                     }
7118                     Else
7119                     {
7120                         Store (0x14, Local0)
7121                         While (Local0)
7122                         {
7123                             Decrement (Local0)
7124                             Acquire (MDGS, 0xFFFF)
7125                             If (LEqual (0x00, MSWT))
7126                             {
7127                                 Store (0x00, Local0)
7128                                 If (And (0x01, Arg1))
7129                                 {
7130                                     Store (0x01, VUPC)
7131                                 }
7132                                 Else
7133                                 {
7134                                     Store (0x00, VUPC)
7135                                 }
7136 
7137                                 If (And (0x01, Arg0))
7138                                 {
7139                                     Store (0x01, VQDL)
7140                                 }
7141                                 Else
7142                                 {
7143                                     Store (0x00, VQDL)
7144                                 }
7145 
7146                                 If (And (0x02, Arg0))
7147                                 {
7148                                     Store (0x01, VQDC)
7149                                 }
7150                                 Else
7151                                 {
7152                                     Store (0x00, VQDC)
7153                                 }
7154 
7155                                 If (And (0x08, Arg0))
7156                                 {
7157                                     Store (0x01, VQDD)
7158                                 }
7159                                 Else
7160                                 {
7161                                     Store (0x00, VQDD)
7162                                 }
7163                             }
7164 
7165                             Release (MDGS)
7166                             Sleep (0xC8)
7167                         }
7168                     }
7169                 }
7170 
7171                 Method (VDSW, 1, NotSerialized)
7172                 {
7173                     If (LEqual (VPWR, 0x00))
7174                     {
7175                         If (Arg0)
7176                         {
7177                             Store (0x00, VDPU)
7178                             Store (\VEVT (0x03), Local0)
7179                             And (0x0F, Local0, Local1)
7180                             If (Local1)
7181                             {
7182                                 ASWT (Local1, 0x00)
7183                                 GDCK (Arg0)
7184                             }
7185                         }
7186                         Else
7187                         {
7188                             Store (0x01, VDPU)
7189                             Store (\VEVT (0x04), Local0)
7190                             ASWT (0x01, 0x00)
7191                             GDCK (Arg0)
7192                         }
7193                     }
7194                 }
7195 
7196                 Method (VDSP, 0, NotSerialized)
7197                 {
7198                     If (LEqual (VPWR, 0x00))
7199                     {
7200                         If (LEqual (VDPU, 0x01))
7201                         {
7202                             Store (0x00, VDPU)
7203                             If (\_SB.LID._LID ())
7204                             {
7205                                 ASWT (0x01, 0x00)
7206                                 GLID (0x01)
7207                             }
7208                         }
7209                     }
7210                 }
7211 
7212                 Method (VSPD, 0, NotSerialized)
7213                 {
7214                     Store (\VEVT (0x06), Local0)
7215                     And (0x0F, Local0, Local1)
7216                     If (Local1)
7217                     {
7218                         ASWT (Local1, 0x01)
7219                         GHDS (0x00)
7220                     }
7221                 }
7222 
7223                 Device (LCD0)
7224                 {
7225                     Name (_ADR, 0x0400)  // _ADR: Address
7226                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
7227                     {
7228                         \VUPS (0x00)
7229                         If (\VCDL)
7230                         {
7231                             Return (0x1F)
7232                         }
7233                         Else
7234                         {
7235                             Return (0x1D)
7236                         }
7237                     }
7238 
7239                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
7240                     {
7241                         Return (VQDL)
7242                     }
7243 
7244                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
7245                     {
7246                         And (Arg0, 0x01, VSDL)
7247                         If (And (Arg0, 0x80000000))
7248                         {
7249                             If (And (Arg0, 0x40000000))
7250                             {
7251                                 DSWT (0x02)
7252                             }
7253                             Else
7254                             {
7255                                 DSWT (0x01)
7256                             }
7257                         }
7258                     }
7259                 }
7260 
7261                 Device (CRT0)
7262                 {
7263                     Name (_ADR, 0x0100)  // _ADR: Address
7264                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
7265                     {
7266                         \VUPS (0x01)
7267                         If (\VCSS)
7268                         {
7269                             If (\VCDC)
7270                             {
7271                                 Return (0x1F)
7272                             }
7273                             Else
7274                             {
7275                                 Return (0x1D)
7276                             }
7277                         }
7278                         Else
7279                         {
7280                             If (\VCDC)
7281                             {
7282                                 Return (0x0F)
7283                             }
7284                             Else
7285                             {
7286                                 Return (0x0D)
7287                             }
7288                         }
7289                     }
7290 
7291                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
7292                     {
7293                         Return (VQDC)
7294                     }
7295 
7296                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
7297                     {
7298                         And (Arg0, 0x01, VSDC)
7299                         If (And (Arg0, 0x80000000))
7300                         {
7301                             If (And (Arg0, 0x40000000))
7302                             {
7303                                 DSWT (0x02)
7304                             }
7305                             Else
7306                             {
7307                                 DSWT (0x01)
7308                             }
7309                         }
7310                     }
7311                 }
7312 
7313                 Device (DVI0)
7314                 {
7315                     Name (_ADR, 0x0300)  // _ADR: Address
7316                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
7317                     {
7318                         \VUPS (0x00)
7319                         If (\VCDD)
7320                         {
7321                             Return (0x1F)
7322                         }
7323                         Else
7324                         {
7325                             Return (0x1D)
7326                         }
7327                     }
7328 
7329                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
7330                     {
7331                         Return (VQDD)
7332                     }
7333 
7334                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
7335                     {
7336                         And (Arg0, 0x01, VSDD)
7337                         If (And (Arg0, 0x80000000))
7338                         {
7339                             If (And (Arg0, 0x40000000))
7340                             {
7341                                 DSWT (0x02)
7342                             }
7343                             Else
7344                             {
7345                                 DSWT (0x01)
7346                             }
7347                         }
7348                     }
7349                 }
7350 
7351                 Method (DSWT, 1, NotSerialized)
7352                 {
7353                     If (VSDL)
7354                     {
7355                         Store (0x01, Local0)
7356                     }
7357                     Else
7358                     {
7359                         Store (0x00, Local0)
7360                     }
7361 
7362                     If (VSDC)
7363                     {
7364                         Or (0x02, Local0, Local0)
7365                     }
7366 
7367                     If (VSDD)
7368                     {
7369                         Or (0x08, Local0, Local0)
7370                     }
7371 
7372                     If (Local0)
7373                     {
7374                         If (VUPC)
7375                         {
7376                             \VSDS (Local0, Arg0)
7377                         }
7378                     }
7379                     Else
7380                     {
7381                         Noop
7382                     }
7383                 }
7384 
7385                 OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
7386                 Field (IGDP, AnyAcc, NoLock, Preserve)
7387                 {
7388                     Offset (0x12), 
7389                         ,   1, 
7390                     GIVD,   1, 
7391                         ,   2, 
7392                     GUMA,   3, 
7393                     Offset (0x14), 
7394                         ,   4, 
7395                     GMFN,   1, 
7396                     Offset (0x18), 
7397                     Offset (0xA4), 
7398                     ASLE,   8, 
7399                     Offset (0xA8), 
7400                     GSSE,   1, 
7401                     GSSB,   14, 
7402                     GSES,   1, 
7403                     Offset (0xB0), 
7404                     Offset (0xB1), 
7405                     CDVL,   5, 
7406                     Offset (0xB2), 
7407                     Offset (0xB5), 
7408                     LBPC,   8, 
7409                     Offset (0xBC), 
7410                     ASLS,   32
7411                 }
7412 
7413                 OperationRegion (IGDM, SystemMemory, \ASLB, 0x2000)
7414                 Field (IGDM, AnyAcc, NoLock, Preserve)
7415                 {
7416                     SIGN,   128, 
7417                     SIZE,   32, 
7418                     OVER,   32, 
7419                     SVER,   256, 
7420                     VVER,   128, 
7421                     GVER,   128, 
7422                     MBOX,   32, 
7423                     Offset (0x100), 
7424                     DRDY,   32, 
7425                     CSTS,   32, 
7426                     CEVT,   32, 
7427                     Offset (0x120), 
7428                     DIDL,   32, 
7429                     DDL2,   32, 
7430                     DDL3,   32, 
7431                     DDL4,   32, 
7432                     DDL5,   32, 
7433                     DDL6,   32, 
7434                     DDL7,   32, 
7435                     DDL8,   32, 
7436                     CPDL,   32, 
7437                     CPL2,   32, 
7438                     CPL3,   32, 
7439                     CPL4,   32, 
7440                     CPL5,   32, 
7441                     CPL6,   32, 
7442                     CPL7,   32, 
7443                     CPL8,   32, 
7444                     CADL,   32, 
7445                     CAL2,   32, 
7446                     CAL3,   32, 
7447                     CAL4,   32, 
7448                     CAL5,   32, 
7449                     CAL6,   32, 
7450                     CAL7,   32, 
7451                     CAL8,   32, 
7452                     NADL,   32, 
7453                     NDL2,   32, 
7454                     NDL3,   32, 
7455                     NDL4,   32, 
7456                     NDL5,   32, 
7457                     NDL6,   32, 
7458                     NDL7,   32, 
7459                     NDL8,   32, 
7460                     ASLP,   32, 
7461                     TIDX,   32, 
7462                     CHPD,   32, 
7463                     CLID,   32, 
7464                     CDCK,   32, 
7465                     SXSW,   32, 
7466                     EVTS,   32, 
7467                     CNOT,   32, 
7468                     NRDY,   32, 
7469                     Offset (0x200), 
7470                     SCIE,   1, 
7471                     GEFC,   4, 
7472                     GXFC,   3, 
7473                     GESF,   8, 
7474                     Offset (0x204), 
7475                     PARM,   32, 
7476                     DSLP,   32, 
7477                     Offset (0x300), 
7478                     ARDY,   32, 
7479                     ASLC,   32, 
7480                     TCHE,   32, 
7481                     ALSI,   32, 
7482                     BCLP,   32, 
7483                     PFIT,   32, 
7484                     CBLV,   32, 
7485                     BCLM,   320, 
7486                     CPFM,   32, 
7487                     EPFM,   32, 
7488                     Offset (0x400), 
7489                     GVD1,   57344
7490                 }
7491 
7492                 Name (DBTB, Package (0x15)
7493                 {
7494                     0x00, 
7495                     0x07, 
7496                     0x38, 
7497                     0x01C0, 
7498                     0x0E00, 
7499                     0x3F, 
7500                     0x01C7, 
7501                     0x0E07, 
7502                     0x01F8, 
7503                     0x0E38, 
7504                     0x0FC0, 
7505                     0x00, 
7506                     0x00, 
7507                     0x00, 
7508                     0x00, 
7509                     0x00, 
7510                     0x7000, 
7511                     0x7007, 
7512                     0x7038, 
7513                     0x71C0, 
7514                     0x7E00
7515                 })
7516                 Name (DBTC, Package (0x15)
7517                 {
7518                     0x00, 
7519                     0x02, 
7520                     0x01, 
7521                     0x08, 
7522                     0x00, 
7523                     0x03, 
7524                     0x0A, 
7525                     0x00, 
7526                     0x09, 
7527                     0x00, 
7528                     0x00, 
7529                     0x00, 
7530                     0x00, 
7531                     0x00, 
7532                     0x00, 
7533                     0x00, 
7534                     0x04, 
7535                     0x06, 
7536                     0x05, 
7537                     0x0C, 
7538                     0x00
7539                 })
7540                 Name (CDCT, Package (0x03)
7541                 {
7542                     Package (0x03)
7543                     {
7544                         0xC8, 
7545                         0x0140, 
7546                         0x0190
7547                     }, 
7548 
7549                     Package (0x03)
7550                     {
7551                         0xC8, 
7552                         0x014D, 
7553                         0x0190
7554                     }, 
7555 
7556                     Package (0x03)
7557                     {
7558                         0xDE, 
7559                         0x014D, 
7560                         0x017D
7561                     }
7562                 })
7563                 Name (SUCC, 0x01)
7564                 Name (NVLD, 0x02)
7565                 Name (CRIT, 0x04)
7566                 Name (NCRT, 0x06)
7567                 Method (OPRN, 0, Serialized)
7568                 {
7569                     If (LEqual (GEFC, 0x04))
7570                     {
7571                         Store (GBDA (), GXFC)
7572                     }
7573 
7574                     If (LEqual (GEFC, 0x06))
7575                     {
7576                         Store (SBCB (), GXFC)
7577                     }
7578 
7579                     Store (0x00, GEFC)
7580                     Store (0x01, \_SB.PCI0.LPC.SCIS)
7581                     Store (0x00, GSSE)
7582                     Store (0x00, SCIE)
7583                     Return (Zero)
7584                 }
7585 
7586                 Method (GBDA, 0, Serialized)
7587                 {
7588                     If (LEqual (GESF, 0x00))
7589                     {
7590                         Store (0x0279, PARM)
7591                         Store (Zero, GESF)
7592                         Return (SUCC)
7593                     }
7594 
7595                     If (LEqual (GESF, 0x01))
7596                     {
7597                         Store (0x00010672, PARM)
7598                         Store (Zero, GESF)
7599                         Return (SUCC)
7600                     }
7601 
7602                     If (LEqual (GESF, 0x04))
7603                     {
7604                         And (PARM, 0xEFFF0000, PARM)
7605                         And (PARM, ShiftLeft (DerefOf (Index (DBTB, IBTT)), 0x10), 
7606                             PARM)
7607                         Or (IBTT, PARM, PARM)
7608                         Store (Zero, GESF)
7609                         Return (SUCC)
7610                     }
7611 
7612                     If (LEqual (GESF, 0x05))
7613                     {
7614                         If (\_SB.LID._LID ())
7615                         {
7616                             Store (0x01, LIDS)
7617                         }
7618                         Else
7619                         {
7620                             Store (0x00, LIDS)
7621                         }
7622 
7623                         Store (IPSC, PARM)
7624                         Add (PARM, 0x01, PARM)
7625                         Add (PARM, 0x0300, PARM)
7626                         Add (PARM, 0x00010000, PARM)
7627                         Or (PARM, ShiftLeft (LIDS, 0x10), PARM)
7628                         Or (PARM, ShiftLeft (IBIA, 0x14), PARM)
7629                         Store (Zero, GESF)
7630                         Return (SUCC)
7631                     }
7632 
7633                     If (LEqual (GESF, 0x06))
7634                     {
7635                         Store (ITVF, PARM)
7636                         Or (PARM, ShiftLeft (ITVM, 0x04), PARM)
7637                         Store (Zero, GESF)
7638                         Return (SUCC)
7639                     }
7640 
7641                     If (LEqual (GESF, 0x07))
7642                     {
7643                         Store (GIVD, PARM)
7644                         XOr (PARM, 0x01, PARM)
7645                         Or (PARM, ShiftLeft (GMFN, 0x01), PARM)
7646                         Or (PARM, ShiftLeft (0x02, 0x0B), PARM)
7647                         If (IDMM)
7648                         {
7649                             Or (PARM, ShiftLeft (IDMS, 0x11), PARM)
7650                         }
7651                         Else
7652                         {
7653                             Or (PARM, ShiftLeft (IDMS, 0x0D), PARM)
7654                         }
7655 
7656                         Or (ShiftLeft (DerefOf (Index (DerefOf (Index (CDCT, HVCO)), Subtract (
7657                             CDVL, 0x01))), 0x15), PARM, PARM)
7658                         Store (0x01, GESF)
7659                         Return (SUCC)
7660                     }
7661 
7662                     If (LEqual (GESF, 0x0A))
7663                     {
7664                         Store (0x00, PARM)
7665                         If (ISSC)
7666                         {
7667                             Or (PARM, ISSC, PARM)
7668                             Or (PARM, 0x00640000, PARM)
7669                         }
7670 
7671                         Store (0x00, GESF)
7672                         Return (SUCC)
7673                     }
7674 
7675                     Store (Zero, GESF)
7676                     Return (CRIT)
7677                 }
7678 
7679                 Name (DSFS, 0x00)
7680                 Name (EXTD, 0x00)
7681                 Method (SBCB, 0, Serialized)
7682                 {
7683                     If (LEqual (GESF, 0x00))
7684                     {
7685                         Store (0x8339, PARM)
7686                         Store (Zero, GESF)
7687                         Return (SUCC)
7688                     }
7689 
7690                     If (LEqual (GESF, 0x01))
7691                     {
7692                         Store (Zero, GESF)
7693                         Store (Zero, PARM)
7694                         Return (SUCC)
7695                     }
7696 
7697                     If (LEqual (GESF, 0x03))
7698                     {
7699                         Store (Zero, GESF)
7700                         Store (Zero, PARM)
7701                         Return (SUCC)
7702                     }
7703 
7704                     If (LEqual (GESF, 0x04))
7705                     {
7706                         And (PARM, 0xFFFF, PARM)
7707                         If (LGreater (PARM, 0x13))
7708                         {
7709                             Store (0x00, DSFS)
7710                         }
7711                         Else
7712                         {
7713                             Store (0x01, DSFS)
7714                         }
7715 
7716                         Store (Zero, GESF)
7717                         Store (Zero, PARM)
7718                         Return (SUCC)
7719                     }
7720 
7721                     If (LEqual (GESF, 0x05))
7722                     {
7723                         Store (Zero, GESF)
7724                         Store (Zero, PARM)
7725                         Return (SUCC)
7726                     }
7727 
7728                     If (LEqual (GESF, 0x06))
7729                     {
7730                         Store (And (PARM, 0x0F), ITVF)
7731                         Store (ShiftRight (And (PARM, 0xF0), 0x04), ITVM)
7732                         \UCMS (0x19)
7733                         Store (Zero, GESF)
7734                         Store (Zero, PARM)
7735                         Return (SUCC)
7736                     }
7737 
7738                     If (LEqual (GESF, 0x07))
7739                     {
7740                         Store (Zero, GESF)
7741                         Store (Zero, PARM)
7742                         Return (SUCC)
7743                     }
7744 
7745                     If (LEqual (GESF, 0x08))
7746                     {
7747                         Store (Zero, GESF)
7748                         Store (Zero, PARM)
7749                         Return (SUCC)
7750                     }
7751 
7752                     If (LEqual (GESF, 0x09))
7753                     {
7754                         And (PARM, 0x80000000, EXTD)
7755                         And (PARM, 0xFF, Local0)
7756                         If (LLessEqual (Local0, 0x14))
7757                         {
7758                             Store (DerefOf (Index (DBTC, Local0)), IBTT)
7759                         }
7760                         Else
7761                         {
7762                             Store (0x00, IBTT)
7763                         }
7764 
7765                         If (IBTT)
7766                         {
7767                             \UCMS (0x17)
7768                         }
7769 
7770                         And (PARM, 0xFF, IBTT)
7771                         Store (Zero, GESF)
7772                         Store (Zero, PARM)
7773                         Return (SUCC)
7774                     }
7775 
7776                     If (LEqual (GESF, 0x0A))
7777                     {
7778                         Store (Subtract (And (PARM, 0x03), 0x01), IPSC)
7779                         \UCMS (0x1A)
7780                         If (And (ShiftRight (PARM, 0x08), 0xFF))
7781                         {
7782                             And (ShiftRight (PARM, 0x08), 0xFF, IPAT)
7783                             Decrement (IPAT)
7784                         }
7785 
7786                         And (ShiftRight (PARM, 0x14), 0x07, IBIA)
7787                         Store (Zero, GESF)
7788                         Store (Zero, PARM)
7789                         Return (SUCC)
7790                     }
7791 
7792                     If (LEqual (GESF, 0x0B))
7793                     {
7794                         And (ShiftRight (PARM, 0x01), 0x01, IF1E)
7795                         If (And (PARM, ShiftLeft (0x0F, 0x0D)))
7796                         {
7797                             And (ShiftRight (PARM, 0x0D), 0x0F, IDMS)
7798                             Store (0x00, IDMM)
7799                         }
7800                         Else
7801                         {
7802                             And (ShiftRight (PARM, 0x11), 0x0F, IDMS)
7803                             Store (0x01, IDMM)
7804                         }
7805 
7806                         Store (Zero, GESF)
7807                         Store (Zero, PARM)
7808                         Return (SUCC)
7809                     }
7810 
7811                     If (LEqual (GESF, 0x10))
7812                     {
7813                         And (PARM, 0x01, PARM)
7814                         XOr (PARM, 0x01, PARM)
7815                         Store (PARM, DSFS)
7816                         Store (Zero, GESF)
7817                         Store (Zero, PARM)
7818                         Return (SUCC)
7819                     }
7820 
7821                     If (LEqual (GESF, 0x11))
7822                     {
7823                         Store (ShiftLeft (LIDS, 0x08), PARM)
7824                         Add (PARM, 0x0100, PARM)
7825                         Store (Zero, GESF)
7826                         Return (SUCC)
7827                     }
7828 
7829                     If (LEqual (GESF, 0x12))
7830                     {
7831                         If (And (PARM, 0x01))
7832                         {
7833                             If (LEqual (ShiftRight (PARM, 0x01), 0x01))
7834                             {
7835                                 Store (0x01, ISSC)
7836                             }
7837                             Else
7838                             {
7839                                 Store (Zero, GESF)
7840                                 Return (CRIT)
7841                             }
7842                         }
7843                         Else
7844                         {
7845                             Store (0x00, ISSC)
7846                         }
7847 
7848                         Store (Zero, GESF)
7849                         Store (Zero, PARM)
7850                         Return (SUCC)
7851                     }
7852 
7853                     If (LEqual (GESF, 0x13))
7854                     {
7855                         Store (Zero, GESF)
7856                         Store (Zero, PARM)
7857                         Return (SUCC)
7858                     }
7859 
7860                     Store (Zero, GESF)
7861                     Return (SUCC)
7862                 }
7863 
7864                 Method (PDRD, 0, NotSerialized)
7865                 {
7866                     If (LNot (DRDY))
7867                     {
7868                         Sleep (ASLP)
7869                     }
7870 
7871                     Return (LNot (DRDY))
7872                 }
7873 
7874                 Method (PSTS, 0, NotSerialized)
7875                 {
7876                     If (LGreater (CSTS, 0x02))
7877                     {
7878                         Sleep (ASLP)
7879                     }
7880 
7881                     Return (LEqual (CSTS, 0x03))
7882                 }
7883 
7884                 Method (GNOT, 2, NotSerialized)
7885                 {
7886                     If (PDRD ())
7887                     {
7888                         Return (0x01)
7889                     }
7890 
7891                     If (PSTS ())
7892                     {
7893                         Return (0x01)
7894                     }
7895 
7896                     Store (Arg0, CEVT)
7897                     Store (0x03, CSTS)
7898                     If (LAnd (LEqual (CHPD, 0x00), LEqual (Arg1, 0x00)))
7899                     {
7900                         If (LNotEqual (Arg0, 0x01))
7901                         {
7902                             If (LAnd (\WXPF, LNot (\WVIS)))
7903                             {
7904                                 Notify (\_SB.PCI0, Arg1)
7905                             }
7906                             Else
7907                             {
7908                                 Notify (\_SB.PCI0.VID, Arg1)
7909                             }
7910                         }
7911                     }
7912 
7913                     Notify (\_SB.PCI0.VID, 0x80)
7914                     If (LNot (PSTS ()))
7915                     {
7916                         Store (0x00, CEVT)
7917                     }
7918 
7919                     Return (0x00)
7920                 }
7921 
7922                 Method (GHDS, 1, NotSerialized)
7923                 {
7924                     Store (Arg0, TIDX)
7925                     Return (GNOT (0x01, 0x00))
7926                 }
7927 
7928                 Method (GLID, 1, NotSerialized)
7929                 {
7930                     Store (Arg0, CLID)
7931                     Return (GNOT (0x02, 0x00))
7932                 }
7933 
7934                 Method (GLIS, 1, NotSerialized)
7935                 {
7936                     Store (Arg0, CLID)
7937                     Return (0x00)
7938                 }
7939 
7940                 Method (GDCK, 1, NotSerialized)
7941                 {
7942                     Store (Arg0, CDCK)
7943                     Return (GNOT (0x04, 0x80))
7944                 }
7945 
7946                 Method (GDCS, 1, NotSerialized)
7947                 {
7948                     Store (Arg0, CDCK)
7949                 }
7950 
7951                 Method (PARD, 0, NotSerialized)
7952                 {
7953                     If (LNot (ARDY))
7954                     {
7955                         Sleep (ASLP)
7956                     }
7957 
7958                     Return (LNot (ARDY))
7959                 }
7960 
7961                 Method (AINT, 2, NotSerialized)
7962                 {
7963                     If (LNot (And (TCHE, ShiftLeft (0x01, Arg0))))
7964                     {
7965                         Return (0x01)
7966                     }
7967 
7968                     If (PARD ())
7969                     {
7970                         Return (0x01)
7971                     }
7972 
7973                     If (LEqual (Arg0, 0x02))
7974                     {
7975                         XOr (PFIT, 0x07, PFIT)
7976                         Or (PFIT, 0x80000000, PFIT)
7977                         Store (0x04, ASLC)
7978                     }
7979                     Else
7980                     {
7981                         If (LEqual (Arg0, 0x01))
7982                         {
7983                             Store (Arg1, BCLP)
7984                             Or (BCLP, 0x80000000, BCLP)
7985                             Store (0x02, ASLC)
7986                         }
7987                         Else
7988                         {
7989                             If (LEqual (Arg0, 0x00))
7990                             {
7991                                 Store (Arg1, ALSI)
7992                                 Store (0x01, ASLC)
7993                             }
7994                             Else
7995                             {
7996                                 Return (0x01)
7997                             }
7998                         }
7999                     }
8000 
8001                     Store (0x00, LBPC)
8002                     Return (0x00)
8003                 }
8004             }
8005 
8006             Device (AGP)
8007             {
8008                 Name (_ADR, 0x00010000)  // _ADR: Address
8009                 Name (_S3D, 0x03)  // _S3D: S3 Device State
8010                 Name (RID, 0x00)
8011                 Name (LART, Package (0x02)
8012                 {
8013                     Package (0x04)
8014                     {
8015                         0xFFFF, 
8016                         0x00, 
8017                         \_SB.LNKA, 
8018                         0x00
8019                     }, 
8020 
8021                     Package (0x04)
8022                     {
8023                         0xFFFF, 
8024                         0x01, 
8025                         \_SB.LNKB, 
8026                         0x00
8027                     }
8028                 })
8029                 Name (AART, Package (0x02)
8030                 {
8031                     Package (0x04)
8032                     {
8033                         0xFFFF, 
8034                         0x00, 
8035                         0x00, 
8036                         0x10
8037                     }, 
8038 
8039                     Package (0x04)
8040                     {
8041                         0xFFFF, 
8042                         0x01, 
8043                         0x00, 
8044                         0x11
8045                     }
8046                 })
8047                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
8048                 {
8049                     If (\GPIC)
8050                     {
8051                         Return (AART)
8052                     }
8053                     Else
8054                     {
8055                         Return (LART)
8056                     }
8057                 }
8058 
8059                 Mutex (MDGS, 0x07)
8060                 Name (VDEE, 0x01)
8061                 Name (VDDA, Buffer (0x02) {})
8062                 CreateBitField (VDDA, 0x00, VUPC)
8063                 CreateBitField (VDDA, 0x01, VQDL)
8064                 CreateBitField (VDDA, 0x02, VQDC)
8065                 CreateBitField (VDDA, 0x03, VQDT)
8066                 CreateBitField (VDDA, 0x04, VQDD)
8067                 CreateBitField (VDDA, 0x05, VSDL)
8068                 CreateBitField (VDDA, 0x06, VSDC)
8069                 CreateBitField (VDDA, 0x07, VSDT)
8070                 CreateBitField (VDDA, 0x08, VSDD)
8071                 CreateBitField (VDDA, 0x0A, MSWT)
8072                 CreateBitField (VDDA, 0x0B, VWST)
8073                 Device (VID)
8074                 {
8075                     Name (_ADR, 0x00)  // _ADR: Address
8076                     OperationRegion (VPCG, PCI_Config, 0x00, 0x0100)
8077                     Field (VPCG, DWordAcc, NoLock, Preserve)
8078                     {
8079                         Offset (0x64), 
8080                         VPWR,   8
8081                     }
8082 
8083                     Name (_S3D, 0x03)  // _S3D: S3 Device State
8084                     Method (_INI, 0, NotSerialized)  // _INI: Initialize
8085                     {
8086                         \VUPS (0x02)
8087                         Store (\VCDL, VQDL)
8088                         Store (\VCDC, VQDC)
8089                         Store (\VCDT, VQDT)
8090                         Store (\VCDD, VQDD)
8091                     }
8092 
8093                     Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8094                     {
8095                         Noop
8096                     }
8097 
8098                     Method (_PS1, 0, NotSerialized)  // _PS1: Power State 1
8099                     {
8100                         Noop
8101                     }
8102 
8103                     Method (_PS2, 0, NotSerialized)  // _PS2: Power State 2
8104                     {
8105                         Noop
8106                     }
8107 
8108                     Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8109                     {
8110                         Noop
8111                     }
8112 
8113                     Method (VSWT, 0, NotSerialized)
8114                     {
8115                         If (\WVIS)
8116                         {
8117                             Store (\VEVT (0x07), Local0)
8118                         }
8119                         Else
8120                         {
8121                             Store (\VEVT (0x05), Local0)
8122                         }
8123 
8124                         And (0x0F, Local0, Local1)
8125                         If (Local1)
8126                         {
8127                             ASWT (Local1, 0x01)
8128                         }
8129                     }
8130 
8131                     Method (VLOC, 1, NotSerialized)
8132                     {
8133                         If (LEqual (Arg0, \_SB.LID._LID ()))
8134                         {
8135                             \VSLD (Arg0)
8136                             If (LEqual (VPWR, 0x00))
8137                             {
8138                                 If (Arg0)
8139                                 {
8140                                     Store (\VEVT (0x01), Local0)
8141                                 }
8142                                 Else
8143                                 {
8144                                     Store (\VEVT (0x02), Local0)
8145                                 }
8146 
8147                                 And (0x0F, Local0, Local1)
8148                                 If (Local1)
8149                                 {
8150                                     ASWT (Local1, 0x00)
8151                                 }
8152                             }
8153                         }
8154                     }
8155 
8156                     Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
8157                     {
8158                         If (LEqual (Arg0, 0x02))
8159                         {
8160                             Store (0x14, Local0)
8161                             While (Local0)
8162                             {
8163                                 Decrement (Local0)
8164                                 Acquire (MDGS, 0xFFFF)
8165                                 If (LEqual (0x00, MSWT))
8166                                 {
8167                                     Store (0x01, MSWT)
8168                                     Store (0x00, Local0)
8169                                     Store (Arg0, VDEE)
8170                                 }
8171 
8172                                 Release (MDGS)
8173                                 Sleep (0xC8)
8174                             }
8175                         }
8176                         Else
8177                         {
8178                             Acquire (MDGS, 0xFFFF)
8179                             If (LEqual (VDEE, 0x02))
8180                             {
8181                                 Store (0x00, MSWT)
8182                             }
8183 
8184                             If (LGreater (Arg0, 0x02))
8185                             {
8186                                 Store (0x01, VDEE)
8187                             }
8188                             Else
8189                             {
8190                                 Store (Arg0, VDEE)
8191                             }
8192 
8193                             Release (MDGS)
8194                         }
8195                     }
8196 
8197                     Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
8198                     {
8199                         Return (Package (0x03)
8200                         {
8201                             0x0100, 
8202                             0x0210, 
8203                             0x0110
8204                         })
8205                     }
8206 
8207                     Method (ASWT, 2, NotSerialized)
8208                     {
8209                         If (LEqual (0x01, VDEE))
8210                         {
8211                             And (0x01, Arg1, Local1)
8212                             \VSDS (Arg0, Local1)
8213                         }
8214                         Else
8215                         {
8216                             Store (0x14, Local0)
8217                             While (Local0)
8218                             {
8219                                 Decrement (Local0)
8220                                 Acquire (MDGS, 0xFFFF)
8221                                 If (LEqual (0x00, MSWT))
8222                                 {
8223                                     Store (0x00, Local0)
8224                                     If (And (0x01, Arg1))
8225                                     {
8226                                         Store (0x01, VUPC)
8227                                     }
8228                                     Else
8229                                     {
8230                                         Store (0x00, VUPC)
8231                                     }
8232 
8233                                     If (And (0x01, Arg0))
8234                                     {
8235                                         Store (0x01, VQDL)
8236                                     }
8237                                     Else
8238                                     {
8239                                         Store (0x00, VQDL)
8240                                     }
8241 
8242                                     If (And (0x02, Arg0))
8243                                     {
8244                                         Store (0x01, VQDC)
8245                                     }
8246                                     Else
8247                                     {
8248                                         Store (0x00, VQDC)
8249                                     }
8250 
8251                                     If (And (0x08, Arg0))
8252                                     {
8253                                         Store (0x01, VQDD)
8254                                     }
8255                                     Else
8256                                     {
8257                                         Store (0x00, VQDD)
8258                                     }
8259                                 }
8260 
8261                                 Release (MDGS)
8262                                 Sleep (0xC8)
8263                             }
8264 
8265                             If (And (0x02, Arg1))
8266                             {
8267                                 Notify (VID, 0x81)
8268                             }
8269                             Else
8270                             {
8271                                 Notify (VID, 0x80)
8272                             }
8273                         }
8274                     }
8275 
8276                     Method (VDSW, 1, NotSerialized)
8277                     {
8278                         If (LEqual (VPWR, 0x00))
8279                         {
8280                             If (Arg0)
8281                             {
8282                                 Store (\VEVT (0x03), Local0)
8283                             }
8284                             Else
8285                             {
8286                                 Store (\VEVT (0x04), Local0)
8287                             }
8288 
8289                             And (0x0F, Local0, Local1)
8290                             If (Local1)
8291                             {
8292                                 ASWT (Local1, 0x00)
8293                             }
8294                         }
8295                     }
8296 
8297                     Device (LCD0)
8298                     {
8299                         Name (_ADR, 0x0110)  // _ADR: Address
8300                         Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
8301                         {
8302                             \VUPS (0x00)
8303                             If (\VCDL)
8304                             {
8305                                 Return (0x1F)
8306                             }
8307                             Else
8308                             {
8309                                 Return (0x1D)
8310                             }
8311                         }
8312 
8313                         Method (_DDC, 1, NotSerialized)  // _DDC: Display Data Current
8314                         {
8315                             \VDDC ()
8316                             If (LEqual (Arg0, 0x01))
8317                             {
8318                                 Return (\DDC1)
8319                             }
8320                             Else
8321                             {
8322                                 If (LEqual (Arg0, 0x02))
8323                                 {
8324                                     Return (\DDC2)
8325                                 }
8326                                 Else
8327                                 {
8328                                     Return (0x00)
8329                                 }
8330                             }
8331                         }
8332 
8333                         Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
8334                         {
8335                             Return (VQDL)
8336                         }
8337 
8338                         Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
8339                         {
8340                             And (Arg0, 0x01, VSDL)
8341                             If (And (Arg0, 0x80000000))
8342                             {
8343                                 If (And (Arg0, 0x40000000))
8344                                 {
8345                                     DSWT (0x02)
8346                                 }
8347                                 Else
8348                                 {
8349                                     DSWT (0x01)
8350                                 }
8351                             }
8352                         }
8353                     }
8354 
8355                     Device (CRT0)
8356                     {
8357                         Name (_ADR, 0x0100)  // _ADR: Address
8358                         Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
8359                         {
8360                             \VUPS (0x01)
8361                             If (\VCSS)
8362                             {
8363                                 If (\VCDC)
8364                                 {
8365                                     Return (0x1F)
8366                                 }
8367                                 Else
8368                                 {
8369                                     Return (0x1D)
8370                                 }
8371                             }
8372                             Else
8373                             {
8374                                 If (\VCDC)
8375                                 {
8376                                     Return (0x0F)
8377                                 }
8378                                 Else
8379                                 {
8380                                     Return (0x0D)
8381                                 }
8382                             }
8383                         }
8384 
8385                         Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
8386                         {
8387                             Return (VQDC)
8388                         }
8389 
8390                         Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
8391                         {
8392                             And (Arg0, 0x01, VSDC)
8393                             If (And (Arg0, 0x80000000))
8394                             {
8395                                 If (And (Arg0, 0x40000000))
8396                                 {
8397                                     DSWT (0x02)
8398                                 }
8399                                 Else
8400                                 {
8401                                     DSWT (0x01)
8402                                 }
8403                             }
8404                         }
8405                     }
8406 
8407                     Device (DVI0)
8408                     {
8409                         Name (_ADR, 0x0210)  // _ADR: Address
8410                         Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
8411                         {
8412                             \VUPS (0x00)
8413                             If (\VCDD)
8414                             {
8415                                 Return (0x1F)
8416                             }
8417                             Else
8418                             {
8419                                 Return (0x1D)
8420                             }
8421                         }
8422 
8423                         Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
8424                         {
8425                             Return (VQDD)
8426                         }
8427 
8428                         Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
8429                         {
8430                             And (Arg0, 0x01, VSDD)
8431                             If (And (Arg0, 0x80000000))
8432                             {
8433                                 If (And (Arg0, 0x40000000))
8434                                 {
8435                                     DSWT (0x02)
8436                                 }
8437                                 Else
8438                                 {
8439                                     DSWT (0x01)
8440                                 }
8441                             }
8442                         }
8443                     }
8444 
8445                     Method (DSWT, 1, NotSerialized)
8446                     {
8447                         If (VSDL)
8448                         {
8449                             Store (0x01, Local0)
8450                         }
8451                         Else
8452                         {
8453                             Store (0x00, Local0)
8454                         }
8455 
8456                         If (VSDC)
8457                         {
8458                             Or (0x02, Local0, Local0)
8459                         }
8460 
8461                         If (VSDD)
8462                         {
8463                             Or (0x08, Local0, Local0)
8464                         }
8465 
8466                         If (Local0)
8467                         {
8468                             If (VUPC)
8469                             {
8470                                 \VSDS (Local0, Arg0)
8471                             }
8472                         }
8473                         Else
8474                         {
8475                             Noop
8476                         }
8477                     }
8478                 }
8479 
8480                 OperationRegion (PEGC, PCI_Config, 0x00, 0x0100)
8481                 Field (PEGC, DWordAcc, NoLock, Preserve)
8482                 {
8483                     Offset (0xEC), 
8484                     GMGP,   1, 
8485                     HPGP,   1, 
8486                     PMGP,   1
8487                 }
8488             }
8489 
8490             Device (IGBE)
8491             {
8492                 Name (_ADR, 0x00190000)  // _ADR: Address
8493                 Name (_S3D, 0x03)  // _S3D: S3 Device State
8494                 Name (RID, 0x00)
8495                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8496                 {
8497                     0x0D, 
8498                     0x04
8499                 })
8500                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
8501                 {
8502                     ABWA (0x00)
8503                 }
8504 
8505                 Method (ABWA, 1, NotSerialized)
8506                 {
8507                     Store (\ACBS (Arg0), Local0)
8508                 }
8509             }
8510 
8511             Device (EXP0)
8512             {
8513                 Name (_ADR, 0x001C0000)  // _ADR: Address
8514                 Name (RID, 0x00)
8515                 OperationRegion (P0CS, PCI_Config, 0x00, 0x0100)
8516                 Field (P0CS, DWordAcc, NoLock, Preserve)
8517                 {
8518                     Offset (0x60), 
8519                     RID0,   16, 
8520                     PSP0,   1, 
8521                     PPP0,   1
8522                 }
8523 
8524                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8525                 {
8526                     0x09, 
8527                     0x04
8528                 })
8529                 Name (LPRT, Package (0x04)
8530                 {
8531                     Package (0x04)
8532                     {
8533                         0xFFFF, 
8534                         0x00, 
8535                         \_SB.LNKA, 
8536                         0x00
8537                     }, 
8538 
8539                     Package (0x04)
8540                     {
8541                         0xFFFF, 
8542                         0x01, 
8543                         \_SB.LNKB, 
8544                         0x00
8545                     }, 
8546 
8547                     Package (0x04)
8548                     {
8549                         0xFFFF, 
8550                         0x02, 
8551                         \_SB.LNKC, 
8552                         0x00
8553                     }, 
8554 
8555                     Package (0x04)
8556                     {
8557                         0xFFFF, 
8558                         0x03, 
8559                         \_SB.LNKD, 
8560                         0x00
8561                     }
8562                 })
8563                 Name (APRT, Package (0x04)
8564                 {
8565                     Package (0x04)
8566                     {
8567                         0xFFFF, 
8568                         0x00, 
8569                         0x00, 
8570                         0x10
8571                     }, 
8572 
8573                     Package (0x04)
8574                     {
8575                         0xFFFF, 
8576                         0x01, 
8577                         0x00, 
8578                         0x11
8579                     }, 
8580 
8581                     Package (0x04)
8582                     {
8583                         0xFFFF, 
8584                         0x02, 
8585                         0x00, 
8586                         0x12
8587                     }, 
8588 
8589                     Package (0x04)
8590                     {
8591                         0xFFFF, 
8592                         0x03, 
8593                         0x00, 
8594                         0x13
8595                     }
8596                 })
8597                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
8598                 {
8599                     If (\GPIC)
8600                     {
8601                         Return (APRT)
8602                     }
8603                     Else
8604                     {
8605                         Return (LPRT)
8606                     }
8607                 }
8608             }
8609 
8610             Device (EXP1)
8611             {
8612                 Name (_ADR, 0x001C0001)  // _ADR: Address
8613                 Name (RID, 0x00)
8614                 OperationRegion (P1CS, PCI_Config, 0x00, 0x0100)
8615                 Field (P1CS, DWordAcc, NoLock, Preserve)
8616                 {
8617                     Offset (0x60), 
8618                     RID1,   16, 
8619                     PSP1,   1, 
8620                     PPP1,   1
8621                 }
8622 
8623                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8624                 {
8625                     0x09, 
8626                     0x04
8627                 })
8628                 Name (LPRT, Package (0x04)
8629                 {
8630                     Package (0x04)
8631                     {
8632                         0xFFFF, 
8633                         0x00, 
8634                         \_SB.LNKB, 
8635                         0x00
8636                     }, 
8637 
8638                     Package (0x04)
8639                     {
8640                         0xFFFF, 
8641                         0x01, 
8642                         \_SB.LNKC, 
8643                         0x00
8644                     }, 
8645 
8646                     Package (0x04)
8647                     {
8648                         0xFFFF, 
8649                         0x02, 
8650                         \_SB.LNKD, 
8651                         0x00
8652                     }, 
8653 
8654                     Package (0x04)
8655                     {
8656                         0xFFFF, 
8657                         0x03, 
8658                         \_SB.LNKA, 
8659                         0x00
8660                     }
8661                 })
8662                 Name (APRT, Package (0x04)
8663                 {
8664                     Package (0x04)
8665                     {
8666                         0xFFFF, 
8667                         0x00, 
8668                         0x00, 
8669                         0x11
8670                     }, 
8671 
8672                     Package (0x04)
8673                     {
8674                         0xFFFF, 
8675                         0x01, 
8676                         0x00, 
8677                         0x12
8678                     }, 
8679 
8680                     Package (0x04)
8681                     {
8682                         0xFFFF, 
8683                         0x02, 
8684                         0x00, 
8685                         0x13
8686                     }, 
8687 
8688                     Package (0x04)
8689                     {
8690                         0xFFFF, 
8691                         0x03, 
8692                         0x00, 
8693                         0x10
8694                     }
8695                 })
8696                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
8697                 {
8698                     If (\GPIC)
8699                     {
8700                         Return (APRT)
8701                     }
8702                     Else
8703                     {
8704                         Return (LPRT)
8705                     }
8706                 }
8707             }
8708 
8709             Device (EXP2)
8710             {
8711                 Name (_ADR, 0x001C0002)  // _ADR: Address
8712                 Name (RID, 0x00)
8713                 OperationRegion (P2CS, PCI_Config, 0x00, 0x0100)
8714                 Field (P2CS, DWordAcc, NoLock, Preserve)
8715                 {
8716                     Offset (0x60), 
8717                     RID2,   16, 
8718                     PSP2,   1, 
8719                     PPP2,   1
8720                 }
8721 
8722                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8723                 {
8724                     0x09, 
8725                     0x04
8726                 })
8727                 Name (LPRT, Package (0x04)
8728                 {
8729                     Package (0x04)
8730                     {
8731                         0xFFFF, 
8732                         0x00, 
8733                         \_SB.LNKC, 
8734                         0x00
8735                     }, 
8736 
8737                     Package (0x04)
8738                     {
8739                         0xFFFF, 
8740                         0x01, 
8741                         \_SB.LNKD, 
8742                         0x00
8743                     }, 
8744 
8745                     Package (0x04)
8746                     {
8747                         0xFFFF, 
8748                         0x02, 
8749                         \_SB.LNKA, 
8750                         0x00
8751                     }, 
8752 
8753                     Package (0x04)
8754                     {
8755                         0xFFFF, 
8756                         0x03, 
8757                         \_SB.LNKB, 
8758                         0x00
8759                     }
8760                 })
8761                 Name (APRT, Package (0x04)
8762                 {
8763                     Package (0x04)
8764                     {
8765                         0xFFFF, 
8766                         0x00, 
8767                         0x00, 
8768                         0x12
8769                     }, 
8770 
8771                     Package (0x04)
8772                     {
8773                         0xFFFF, 
8774                         0x01, 
8775                         0x00, 
8776                         0x13
8777                     }, 
8778 
8779                     Package (0x04)
8780                     {
8781                         0xFFFF, 
8782                         0x02, 
8783                         0x00, 
8784                         0x10
8785                     }, 
8786 
8787                     Package (0x04)
8788                     {
8789                         0xFFFF, 
8790                         0x03, 
8791                         0x00, 
8792                         0x11
8793                     }
8794                 })
8795                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
8796                 {
8797                     If (\GPIC)
8798                     {
8799                         Return (APRT)
8800                     }
8801                     Else
8802                     {
8803                         Return (LPRT)
8804                     }
8805                 }
8806             }
8807 
8808             Device (EXP3)
8809             {
8810                 Name (_ADR, 0x001C0003)  // _ADR: Address
8811                 Name (RID, 0x00)
8812                 Name (XCPF, 0x00)
8813                 OperationRegion (P3CS, PCI_Config, 0x00, 0x0100)
8814                 Field (P3CS, DWordAcc, NoLock, Preserve)
8815                 {
8816                     Offset (0x5A), 
8817                     ABP,    1, 
8818                         ,   2, 
8819                     PDC,    1, 
8820                         ,   2, 
8821                     PDS,    1, 
8822                     Offset (0x5B), 
8823                     Offset (0x60), 
8824                     RID3,   16, 
8825                     PSP3,   1, 
8826                     PPP3,   1, 
8827                     Offset (0xDB), 
8828                         ,   6, 
8829                     HPCE,   1, 
8830                     PMCE,   1, 
8831                     Offset (0xDF), 
8832                         ,   6, 
8833                     HPCS,   1, 
8834                     PMCS,   1
8835                 }
8836 
8837                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8838                 {
8839                     0x09, 
8840                     0x04
8841                 })
8842                 Name (LPRT, Package (0x04)
8843                 {
8844                     Package (0x04)
8845                     {
8846                         0xFFFF, 
8847                         0x00, 
8848                         \_SB.LNKD, 
8849                         0x00
8850                     }, 
8851 
8852                     Package (0x04)
8853                     {
8854                         0xFFFF, 
8855                         0x01, 
8856                         \_SB.LNKA, 
8857                         0x00
8858                     }, 
8859 
8860                     Package (0x04)
8861                     {
8862                         0xFFFF, 
8863                         0x02, 
8864                         \_SB.LNKB, 
8865                         0x00
8866                     }, 
8867 
8868                     Package (0x04)
8869                     {
8870                         0xFFFF, 
8871                         0x03, 
8872                         \_SB.LNKC, 
8873                         0x00
8874                     }
8875                 })
8876                 Name (APRT, Package (0x04)
8877                 {
8878                     Package (0x04)
8879                     {
8880                         0xFFFF, 
8881                         0x00, 
8882                         0x00, 
8883                         0x13
8884                     }, 
8885 
8886                     Package (0x04)
8887                     {
8888                         0xFFFF, 
8889                         0x01, 
8890                         0x00, 
8891                         0x10
8892                     }, 
8893 
8894                     Package (0x04)
8895                     {
8896                         0xFFFF, 
8897                         0x02, 
8898                         0x00, 
8899                         0x11
8900                     }, 
8901 
8902                     Package (0x04)
8903                     {
8904                         0xFFFF, 
8905                         0x03, 
8906                         0x00, 
8907                         0x12
8908                     }
8909                 })
8910                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
8911                 {
8912                     If (\GPIC)
8913                     {
8914                         Return (APRT)
8915                     }
8916                     Else
8917                     {
8918                         Return (LPRT)
8919                     }
8920                 }
8921 
8922                 Device (EXUP)
8923                 {
8924                     Name (_ADR, 0x00)  // _ADR: Address
8925                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8926                     {
8927                         Return (0x01)
8928                     }
8929                 }
8930             }
8931 
8932             Device (EXP4)
8933             {
8934                 Name (_ADR, 0x001C0004)  // _ADR: Address
8935                 Name (RID, 0x00)
8936                 OperationRegion (P4CS, PCI_Config, 0x00, 0x0100)
8937                 Field (P4CS, DWordAcc, NoLock, Preserve)
8938                 {
8939                     Offset (0x60), 
8940                     RID4,   16, 
8941                     PSP4,   1, 
8942                     PPP4,   1, 
8943                     Offset (0xDF), 
8944                         ,   6, 
8945                     HPS4,   1, 
8946                     PMS4,   1
8947                 }
8948 
8949                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8950                 {
8951                     0x09, 
8952                     0x04
8953                 })
8954                 Name (LPRT, Package (0x04)
8955                 {
8956                     Package (0x04)
8957                     {
8958                         0xFFFF, 
8959                         0x00, 
8960                         \_SB.LNKA, 
8961                         0x00
8962                     }, 
8963 
8964                     Package (0x04)
8965                     {
8966                         0xFFFF, 
8967                         0x01, 
8968                         \_SB.LNKB, 
8969                         0x00
8970                     }, 
8971 
8972                     Package (0x04)
8973                     {
8974                         0xFFFF, 
8975                         0x02, 
8976                         \_SB.LNKC, 
8977                         0x00
8978                     }, 
8979 
8980                     Package (0x04)
8981                     {
8982                         0xFFFF, 
8983                         0x03, 
8984                         \_SB.LNKD, 
8985                         0x00
8986                     }
8987                 })
8988                 Name (APRT, Package (0x04)
8989                 {
8990                     Package (0x04)
8991                     {
8992                         0xFFFF, 
8993                         0x00, 
8994                         0x00, 
8995                         0x10
8996                     }, 
8997 
8998                     Package (0x04)
8999                     {
9000                         0xFFFF, 
9001                         0x01, 
9002                         0x00, 
9003                         0x11
9004                     }, 
9005 
9006                     Package (0x04)
9007                     {
9008                         0xFFFF, 
9009                         0x02, 
9010                         0x00, 
9011                         0x12
9012                     }, 
9013 
9014                     Package (0x04)
9015                     {
9016                         0xFFFF, 
9017                         0x03, 
9018                         0x00, 
9019                         0x13
9020                     }
9021                 })
9022                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
9023                 {
9024                     If (\GPIC)
9025                     {
9026                         Return (APRT)
9027                     }
9028                     Else
9029                     {
9030                         Return (LPRT)
9031                     }
9032                 }
9033 
9034                 Device (EXPD)
9035                 {
9036                     Name (_ADR, 0x00)  // _ADR: Address
9037                 }
9038             }
9039 
9040             Device (PCI1)
9041             {
9042                 Name (_ADR, 0x001E0000)  // _ADR: Address
9043                 Name (_S3D, 0x02)  // _S3D: S3 Device State
9044                 Name (RID, 0x00)
9045                 Name (LPRT, Package (0x08)
9046                 {
9047                     Package (0x04)
9048                     {
9049                         0xFFFF, 
9050                         0x00, 
9051                         \_SB.LNKA, 
9052                         0x00
9053                     }, 
9054 
9055                     Package (0x04)
9056                     {
9057                         0xFFFF, 
9058                         0x01, 
9059                         \_SB.LNKB, 
9060                         0x00
9061                     }, 
9062 
9063                     Package (0x04)
9064                     {
9065                         0xFFFF, 
9066                         0x02, 
9067                         \_SB.LNKC, 
9068                         0x00
9069                     }, 
9070 
9071                     Package (0x04)
9072                     {
9073                         0xFFFF, 
9074                         0x03, 
9075                         \_SB.LNKD, 
9076                         0x00
9077                     }, 
9078 
9079                     Package (0x04)
9080                     {
9081                         0x0001FFFF, 
9082                         0x00, 
9083                         \_SB.LNKA, 
9084                         0x00
9085                     }, 
9086 
9087                     Package (0x04)
9088                     {
9089                         0x0002FFFF, 
9090                         0x00, 
9091                         \_SB.LNKF, 
9092                         0x00
9093                     }, 
9094 
9095                     Package (0x04)
9096                     {
9097                         0x0002FFFF, 
9098                         0x01, 
9099                         \_SB.LNKG, 
9100                         0x00
9101                     }, 
9102 
9103                     Package (0x04)
9104                     {
9105                         0x0008FFFF, 
9106                         0x00, 
9107                         \_SB.LNKE, 
9108                         0x00
9109                     }
9110                 })
9111                 Name (APRT, Package (0x08)
9112                 {
9113                     Package (0x04)
9114                     {
9115                         0xFFFF, 
9116                         0x00, 
9117                         0x00, 
9118                         0x10
9119                     }, 
9120 
9121                     Package (0x04)
9122                     {
9123                         0xFFFF, 
9124                         0x01, 
9125                         0x00, 
9126                         0x11
9127                     }, 
9128 
9129                     Package (0x04)
9130                     {
9131                         0xFFFF, 
9132                         0x02, 
9133                         0x00, 
9134                         0x12
9135                     }, 
9136 
9137                     Package (0x04)
9138                     {
9139                         0xFFFF, 
9140                         0x03, 
9141                         0x00, 
9142                         0x13
9143                     }, 
9144 
9145                     Package (0x04)
9146                     {
9147                         0x0001FFFF, 
9148                         0x00, 
9149                         0x00, 
9150                         0x10
9151                     }, 
9152 
9153                     Package (0x04)
9154                     {
9155                         0x0002FFFF, 
9156                         0x00, 
9157                         0x00, 
9158                         0x15
9159                     }, 
9160 
9161                     Package (0x04)
9162                     {
9163                         0x0002FFFF, 
9164                         0x01, 
9165                         0x00, 
9166                         0x16
9167                     }, 
9168 
9169                     Package (0x04)
9170                     {
9171                         0x0008FFFF, 
9172                         0x00, 
9173                         0x00, 
9174                         0x14
9175                     }
9176                 })
9177                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
9178                 {
9179                     If (\GPIC)
9180                     {
9181                         Return (APRT)
9182                     }
9183                     Else
9184                     {
9185                         Return (LPRT)
9186                     }
9187                 }
9188 
9189                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
9190                 {
9191                     0x0B, 
9192                     0x04
9193                 })
9194                 Device (CDBS)
9195                 {
9196                     Name (_ADR, 0x00)  // _ADR: Address
9197                     Method (_S3D, 0, NotSerialized)  // _S3D: S3 Device State
9198                     {
9199                         If (\WMEF)
9200                         {
9201                             Return (0x02)
9202                         }
9203 
9204                         Return (0x03)
9205                     }
9206 
9207                     Name (_SUN, 0x01)  // _SUN: Slot User Number
9208                 }
9209             }
9210 
9211             Device (IDE0)
9212             {
9213                 Name (_ADR, 0x001F0001)  // _ADR: Address
9214                 Name (_S3D, 0x03)  // _S3D: S3 Device State
9215                 Name (RID, 0x00)
9216                 OperationRegion (IDCS, PCI_Config, 0x00, 0x0100)
9217                 Field (IDCS, DWordAcc, NoLock, Preserve)
9218                 {
9219                     Offset (0x40), 
9220                     PFT0,   1, 
9221                     PIE0,   1, 
9222                     PPE0,   1, 
9223                     PDT0,   1, 
9224                     PFT1,   1, 
9225                     PIE1,   1, 
9226                     PPE1,   1, 
9227                     PDT1,   1, 
9228                     PRC0,   2, 
9229                         ,   2, 
9230                     PIS0,   2, 
9231                     PSIE,   1, 
9232                     PIDE,   1, 
9233                     SFT0,   1, 
9234                     SIE0,   1, 
9235                     SPE0,   1, 
9236                     SDT0,   1, 
9237                     SFT1,   1, 
9238                     SIE1,   1, 
9239                     SPE1,   1, 
9240                     SDT1,   1, 
9241                     SRC0,   2, 
9242                         ,   2, 
9243                     SIS0,   2, 
9244                     SSIE,   1, 
9245                     SIDE,   1, 
9246                     PRC1,   2, 
9247                     PIS1,   2, 
9248                     SRC1,   2, 
9249                     SIS1,   2, 
9250                     Offset (0x48), 
9251                     PSD0,   1, 
9252                     PSD1,   1, 
9253                     SSD0,   1, 
9254                     SSD1,   1, 
9255                     Offset (0x4A), 
9256                     PCT0,   2, 
9257                         ,   2, 
9258                     PCT1,   2, 
9259                     Offset (0x4B), 
9260                     SCT0,   2, 
9261                         ,   2, 
9262                     SCT1,   2, 
9263                     Offset (0x4C), 
9264                     Offset (0x54), 
9265                     PCB0,   1, 
9266                     PCB1,   1, 
9267                     SCB0,   1, 
9268                     SCB1,   1, 
9269                     PCR0,   1, 
9270                     PCR1,   1, 
9271                     SCR0,   1, 
9272                     SCR1,   1, 
9273                         ,   2, 
9274                     WRPP,   1, 
9275                         ,   1, 
9276                     FPB0,   1, 
9277                     FPB1,   1, 
9278                     FSB0,   1, 
9279                     FSB1,   1, 
9280                     PSIG,   2, 
9281                     SSIG,   2
9282                 }
9283 
9284                 Field (IDCS, DWordAcc, NoLock, Preserve)
9285                 {
9286                     Offset (0x40), 
9287                     PTI0,   4, 
9288                     PTI1,   4, 
9289                     Offset (0x42), 
9290                     STI0,   4, 
9291                     STI1,   4
9292                 }
9293 
9294                 Method (GPCT, 4, NotSerialized)
9295                 {
9296                     If (LNot (Or (Arg0, Arg1)))
9297                     {
9298                         Return (0x00)
9299                     }
9300 
9301                     If (LAnd (LNot (Arg0), Arg1))
9302                     {
9303                         Return (0x0384)
9304                     }
9305 
9306                     Return (Multiply (Subtract (0x09, Add (Arg2, Arg3)), 0x1E
9307                         ))
9308                 }
9309 
9310                 Method (GDCT, 4, NotSerialized)
9311                 {
9312                     If (LNot (Arg0))
9313                     {
9314                         Return (0x00)
9315                     }
9316 
9317                     If (Arg1)
9318                     {
9319                         Return (0x14)
9320                     }
9321 
9322                     If (Arg2)
9323                     {
9324                         Return (Multiply (Subtract (0x04, Arg3), 0x0F))
9325                     }
9326 
9327                     Return (Multiply (Subtract (0x04, Arg3), 0x1E))
9328                 }
9329 
9330                 Method (MTIM, 2, NotSerialized)
9331                 {
9332                     Store (0x00, Local0)
9333                     If (Arg0)
9334                     {
9335                         Or (Local0, 0x01, Local0)
9336                     }
9337 
9338                     If (LGreaterEqual (Arg0, 0x02))
9339                     {
9340                         Or (Local0, 0x02, Local0)
9341                     }
9342 
9343                     If (LNot (Arg1))
9344                     {
9345                         Or (Local0, 0x04, Local0)
9346                     }
9347 
9348                     If (LNot (Arg0))
9349                     {
9350                         Or (Local0, 0x08, Local0)
9351                     }
9352 
9353                     Return (Local0)
9354                 }
9355 
9356                 Method (MISP, 1, NotSerialized)
9357                 {
9358                     If (LNot (Arg0))
9359                     {
9360                         Return (0x00)
9361                     }
9362 
9363                     If (LLessEqual (Arg0, 0x02))
9364                     {
9365                         Return (0x01)
9366                     }
9367 
9368                     Return (0x02)
9369                 }
9370 
9371                 Method (MRCT, 1, NotSerialized)
9372                 {
9373                     If (LLessEqual (Arg0, 0x02))
9374                     {
9375                         Return (0x00)
9376                     }
9377 
9378                     If (LEqual (Arg0, 0x03))
9379                     {
9380                         Return (0x01)
9381                     }
9382 
9383                     Return (0x03)
9384                 }
9385 
9386                 Device (PRIM)
9387                 {
9388                     Name (_ADR, 0x00)  // _ADR: Address
9389                     Name (BGTM, Buffer (0x14) {})
9390                     CreateDWordField (BGTM, 0x00, GTP0)
9391                     CreateDWordField (BGTM, 0x04, GTD0)
9392                     CreateDWordField (BGTM, 0x08, GTP1)
9393                     CreateDWordField (BGTM, 0x0C, GTD1)
9394                     CreateDWordField (BGTM, 0x10, GTMF)
9395                     Name (BPI0, 0x00)
9396                     Name (BDM0, 0x00)
9397                     Name (BPI1, 0x00)
9398                     Name (BDM1, 0x00)
9399                     Name (DRE0, 0x00)
9400                     Name (DRE1, 0x00)
9401                     Name (DIP0, 0x00)
9402                     Name (DIP1, 0x00)
9403                     Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
9404                     {
9405                         Store (GPCT (PFT0, PDT0, PIS0, PRC0), GTP0)
9406                         Store (GDCT (PSD0, FPB0, PCB0, PCT0), GTD0)
9407                         If (LNot (GTD0))
9408                         {
9409                             Store (GTP0, GTD0)
9410                         }
9411 
9412                         If (PSIE)
9413                         {
9414                             Store (GPCT (PFT1, PDT1, PIS1, PRC1), GTP1)
9415                             Store (GDCT (PSD1, FPB1, PCB1, PCT1), GTD1)
9416                             If (LNot (GTD1))
9417                             {
9418                                 Store (GTP1, GTD1)
9419                             }
9420                         }
9421                         Else
9422                         {
9423                             Store (0x00, GTP1)
9424                             Store (0x00, GTD1)
9425                         }
9426 
9427                         Store (0x00, GTMF)
9428                         If (PSD0)
9429                         {
9430                             Or (GTMF, 0x01, GTMF)
9431                         }
9432 
9433                         If (LNot (GTP0))
9434                         {
9435                             Or (GTMF, 0x01, GTMF)
9436                             Store (0x78, GTP0)
9437                             Store (0x14, GTD0)
9438                         }
9439 
9440                         If (PIE0)
9441                         {
9442                             Or (GTMF, 0x02, GTMF)
9443                         }
9444 
9445                         If (PSD1)
9446                         {
9447                             Or (GTMF, 0x04, GTMF)
9448                         }
9449 
9450                         If (PIE1)
9451                         {
9452                             Or (GTMF, 0x08, GTMF)
9453                         }
9454 
9455                         Or (GTMF, 0x10, GTMF)
9456                         Return (BGTM)
9457                     }
9458 
9459                     Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
9460                     {
9461                         CreateDWordField (Arg0, 0x00, STP0)
9462                         CreateDWordField (Arg0, 0x04, STD0)
9463                         CreateDWordField (Arg0, 0x08, STP1)
9464                         CreateDWordField (Arg0, 0x0C, STD1)
9465                         CreateDWordField (Arg0, 0x10, STMF)
9466                         Store (0x00, DRE0)
9467                         Store (0x00, DIP0)
9468                         If (LEqual (SizeOf (Arg1), 0x0200))
9469                         {
9470                             CreateWordField (Arg1, 0x00, M000)
9471                             CreateWordField (Arg1, 0x62, M049)
9472                             CreateWordField (Arg1, 0x66, M051)
9473                             CreateWordField (Arg1, 0x6A, M053)
9474                             CreateWordField (Arg1, 0x7C, M062)
9475                             CreateWordField (Arg1, 0x7E, M063)
9476                             CreateWordField (Arg1, 0x80, M064)
9477                             CreateWordField (Arg1, 0x82, M065)
9478                             CreateWordField (Arg1, 0x88, M068)
9479                             CreateWordField (Arg1, 0x9C, M078)
9480                             CreateWordField (Arg1, 0xAC, M086)
9481                             CreateWordField (Arg1, 0xB0, M088)
9482                             CreateWordField (Arg1, 0xEE, M119)
9483                             CreateWordField (Arg1, 0x0128, M148)
9484                             If (LEqual (And (M148, 0xC000), 0x4000))
9485                             {
9486                                 If (And (M148, 0x04))
9487                                 {
9488                                     Store (0x01, DRE0)
9489                                 }
9490                             }
9491 
9492                             If (And (M086, 0x8000))
9493                             {
9494                                 If (And (M119, 0x01))
9495                                 {
9496                                     Store (0x01, DRE0)
9497                                 }
9498                             }
9499 
9500                             If (\W98F)
9501                             {
9502                                 Store (\UUDM (M053, M088), STD0)
9503                                 If (STD0)
9504                                 {
9505                                     Or (STMF, 0x01, STMF)
9506                                 }
9507                                 Else
9508                                 {
9509                                     And (STMF, 0xFE, STMF)
9510                                 }
9511 
9512                                 Store (\UMDM (M053, M063, M062, M065), STP0)
9513                                 If (LNot (STP0))
9514                                 {
9515                                     Store (\UPIO (M053, M064, M051, M068), STP0)
9516                                 }
9517 
9518                                 If (And (M049, 0x0800))
9519                                 {
9520                                     Or (STMF, 0x02, STMF)
9521                                 }
9522                                 Else
9523                                 {
9524                                     And (STMF, 0xFD, STMF)
9525                                 }
9526                             }
9527 
9528                             Store (\DPIO (STP0, And (STMF, 0x02)), Local0)
9529                             Store (\DUDM (STD0, And (STMF, 0x01)), Local1)
9530                             If (LGreaterEqual (\_SB.PCI0.LPC.EC.BGID (0x00), 0x0C))
9531                             {
9532                                 Store (0x00, Local0)
9533                                 Store (0xFF, Local1)
9534                             }
9535 
9536                             Store (MTIM (Local0, And (M000, 0x8000)), PTI0)
9537                             Store (MISP (Local0), PIS0)
9538                             Store (MRCT (Local0), PRC0)
9539                             If (LEqual (Local1, 0xFF))
9540                             {
9541                                 Store (0x00, PSD0)
9542                             }
9543                             Else
9544                             {
9545                                 Store (0x01, PSD0)
9546                                 If (LLessEqual (Local1, 0x02))
9547                                 {
9548                                     Store (Local1, PCT0)
9549                                 }
9550                                 Else
9551                                 {
9552                                     If (And (Local1, 0x01))
9553                                     {
9554                                         Store (0x01, PCT0)
9555                                     }
9556                                     Else
9557                                     {
9558                                         Store (0x02, PCT0)
9559                                     }
9560                                 }
9561 
9562                                 If (LGreaterEqual (Local1, 0x03))
9563                                 {
9564                                     Store (0x01, PCB0)
9565                                 }
9566                                 Else
9567                                 {
9568                                     Store (0x00, PCB0)
9569                                 }
9570 
9571                                 If (LEqual (Local1, 0x05))
9572                                 {
9573                                     Store (0x01, FPB0)
9574                                 }
9575                                 Else
9576                                 {
9577                                     Store (0x00, FPB0)
9578                                 }
9579 
9580                                 Store (0x01, PCR0)
9581                             }
9582 
9583                             Store (\FDMA (Local0, Local1), BDM0)
9584                             Store (\FPIO (Local0), BPI0)
9585                         }
9586 
9587                         If (LEqual (SizeOf (Arg2), 0x0200))
9588                         {
9589                             CreateWordField (Arg2, 0x00, S000)
9590                             CreateWordField (Arg2, 0x62, S049)
9591                             CreateWordField (Arg2, 0x66, S051)
9592                             CreateWordField (Arg2, 0x6A, S053)
9593                             CreateWordField (Arg2, 0x7C, S062)
9594                             CreateWordField (Arg2, 0x7E, S063)
9595                             CreateWordField (Arg2, 0x80, S064)
9596                             CreateWordField (Arg2, 0x82, S065)
9597                             CreateWordField (Arg2, 0x88, S068)
9598                             CreateWordField (Arg2, 0xB0, S088)
9599                             If (\W98F)
9600                             {
9601                                 Store (\UUDM (S053, S088), STD1)
9602                                 If (STD1)
9603                                 {
9604                                     Or (STMF, 0x04, STMF)
9605                                 }
9606                                 Else
9607                                 {
9608                                     And (STMF, 0xFB, STMF)
9609                                 }
9610 
9611                                 Store (\UMDM (S053, S063, S062, S065), STP1)
9612                                 If (LNot (STP1))
9613                                 {
9614                                     Store (\UPIO (S053, S064, S051, S068), STP1)
9615                                 }
9616 
9617                                 If (And (S049, 0x0800))
9618                                 {
9619                                     Or (STMF, 0x08, STMF)
9620                                 }
9621                                 Else
9622                                 {
9623                                     And (STMF, 0xF7, STMF)
9624                                 }
9625                             }
9626 
9627                             Store (\DPIO (STP1, And (STMF, 0x08)), Local0)
9628                             Store (\DUDM (STD1, And (STMF, 0x04)), Local1)
9629                             If (STP1)
9630                             {
9631                                 Store (MTIM (Local0, And (S000, 0x8000)), PTI1)
9632                                 If (And (STMF, 0x10))
9633                                 {
9634                                     Store (MISP (Local0), PIS1)
9635                                     Store (MRCT (Local0), PRC1)
9636                                     Store (0x01, PSIE)
9637                                 }
9638                             }
9639                             Else
9640                             {
9641                                 Store (0x00, PTI1)
9642                                 Store (0x00, PSIE)
9643                             }
9644 
9645                             If (LEqual (Local1, 0xFF))
9646                             {
9647                                 Store (0x00, PSD1)
9648                             }
9649                             Else
9650                             {
9651                                 Store (0x01, PSD1)
9652                                 If (LLessEqual (Local1, 0x02))
9653                                 {
9654                                     Store (Local1, PCT1)
9655                                 }
9656                                 Else
9657                                 {
9658                                     If (And (Local1, 0x01))
9659                                     {
9660                                         Store (0x01, PCT1)
9661                                     }
9662                                     Else
9663                                     {
9664                                         Store (0x02, PCT1)
9665                                     }
9666                                 }
9667 
9668                                 If (LGreaterEqual (Local1, 0x03))
9669                                 {
9670                                     Store (0x01, PCB1)
9671                                 }
9672                                 Else
9673                                 {
9674                                     Store (0x00, PCB1)
9675                                 }
9676 
9677                                 If (LEqual (Local1, 0x05))
9678                                 {
9679                                     Store (0x01, FPB1)
9680                                 }
9681                                 Else
9682                                 {
9683                                     Store (0x00, FPB1)
9684                                 }
9685 
9686                                 Store (0x01, PCR1)
9687                             }
9688 
9689                             Store (\FDMA (Local0, Local1), BDM1)
9690                             Store (\FPIO (Local0), BPI1)
9691                         }
9692                     }
9693 
9694                     Device (MSTR)
9695                     {
9696                         Name (_ADR, 0x00)  // _ADR: Address
9697                         Name (HDTF, Buffer (0x1C)
9698                         {
9699                             /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9700                             /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9701                             /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9702                             /* 0018 */   0x00, 0x00, 0xA0, 0xEF
9703                         })
9704                         CreateByteField (HDTF, 0x0F, HDMA)
9705                         CreateByteField (HDTF, 0x16, HPIO)
9706                         CreateByteField (HDTF, 0x0D, HFLC)
9707                         Name (ERTF, Buffer (0x23)
9708                         {
9709                             /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9710                             /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9711                             /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9712                             /* 0018 */   0x00, 0x00, 0xA0, 0xEF, 0x5F, 0x00, 0x00, 0x00,
9713                             /* 0020 */   0x00, 0xA0, 0xEF
9714                         })
9715                         CreateByteField (ERTF, 0x0F, EDMA)
9716                         CreateByteField (ERTF, 0x16, EPIO)
9717                         CreateByteField (ERTF, 0x0D, EFLC)
9718                         Name (HPTF, Buffer (0x23)
9719                         {
9720                             /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9721                             /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9722                             /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9723                             /* 0018 */   0x00, 0x00, 0xA0, 0xEF, 0x10, 0x03, 0x00, 0x00,
9724                             /* 0020 */   0x00, 0xA0, 0xEF
9725                         })
9726                         CreateByteField (HPTF, 0x0F, PDMA)
9727                         CreateByteField (HPTF, 0x16, PPIO)
9728                         CreateByteField (HPTF, 0x0D, PFLC)
9729                         Name (HXTF, Buffer (0x2A)
9730                         {
9731                             /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
9732                             /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x03, 0x00,
9733                             /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 0x00, 0x00,
9734                             /* 0018 */   0x00, 0x00, 0xA0, 0xEF, 0x5F, 0x00, 0x00, 0x00,
9735                             /* 0020 */   0x00, 0xA0, 0xEF, 0x10, 0x03, 0x00, 0x00, 0x00,
9736                             /* 0028 */   0xA0, 0xEF
9737                         })
9738                         CreateByteField (HXTF, 0x0F, XDMA)
9739                         CreateByteField (HXTF, 0x16, XPIO)
9740                         CreateByteField (HXTF, 0x0D, XFLC)
9741                         Name (IDTF, Buffer (0x0E)
9742                         {
9743                             /* 0000 */   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
9744                             /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
9745                         })
9746                         CreateByteField (IDTF, 0x01, IDMA)
9747                         CreateByteField (IDTF, 0x08, IPIO)
9748                         Name (DDTF, Buffer (0x1C)
9749                         {
9750                             /* 0000 */   0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,
9751                             /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00,
9752                             /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00,
9753                             /* 0018 */   0x00, 0x00, 0xA0, 0xE3
9754                         })
9755                         CreateByteField (DDTF, 0x01, DDMA)
9756                         CreateByteField (DDTF, 0x08, DPIO)
9757                         CreateByteField (DDTF, 0x0F, DTAT)
9758                         CreateByteField (DDTF, 0x16, DTFT)
9759                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
9760                         {
9761                             Store (\_SB.PCI0.LPC.EC.BGID (0x00), Local0)
9762                             If (\OSSS)
9763                             {
9764                                 Store (0xE1, HFLC)
9765                                 Store (0xE1, EFLC)
9766                                 Store (0xE1, PFLC)
9767                                 Store (0xE1, XFLC)
9768                             }
9769 
9770                             If (LEqual (Local0, 0x06))
9771                             {
9772                                 If (^^DRE0)
9773                                 {
9774                                     If (^^DIP0)
9775                                     {
9776                                         Store (^^BDM0, XDMA)
9777                                         Store (^^BPI0, XPIO)
9778                                         Return (HXTF)
9779                                     }
9780                                     Else
9781                                     {
9782                                         Store (^^BDM0, EDMA)
9783                                         Store (^^BPI0, EPIO)
9784                                         Return (ERTF)
9785                                     }
9786                                 }
9787 
9788                                 If (^^DIP0)
9789                                 {
9790                                     Store (^^BDM0, PDMA)
9791                                     Store (^^BPI0, PPIO)
9792                                     Return (HPTF)
9793                                 }
9794 
9795                                 Store (^^BDM0, HDMA)
9796                                 Store (^^BPI0, HPIO)
9797                                 Return (HDTF)
9798                             }
9799 
9800                             Store (Zero, Local1)
9801                             If (LEqual (Local0, 0x03))
9802                             {
9803                                 Store (One, Local1)
9804                             }
9805 
9806                             If (LEqual (Local0, 0x0A))
9807                             {
9808                                 Store (One, Local1)
9809                             }
9810 
9811                             If (LEqual (Local0, 0x0B))
9812                             {
9813                                 Store (One, Local1)
9814                             }
9815 
9816                             If (Local1)
9817                             {
9818                                 Store (\CDFL, DTFT)
9819                                 Store (\CDAH, DTAT)
9820                                 Store (^^BDM0, DDMA)
9821                                 Store (^^BPI0, DPIO)
9822                                 Return (DDTF)
9823                             }
9824                             Else
9825                             {
9826                                 Store (^^BDM0, IDMA)
9827                                 Store (^^BPI0, IPIO)
9828                                 Return (IDTF)
9829                             }
9830                         }
9831 
9832                         Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
9833                         {
9834                             \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
9835                         }
9836 
9837                         Method (_STA, 0, NotSerialized)  // _STA: Status
9838                         {
9839                             If (\_SB.PCI0.LPC.EC.BSTA (0x01))
9840                             {
9841                                 Return (0x0F)
9842                             }
9843                             Else
9844                             {
9845                                 Return (0x00)
9846                             }
9847                         }
9848                     }
9849                 }
9850             }
9851 
9852             Device (SATA)
9853             {
9854                 Name (_ADR, 0x001F0002)  // _ADR: Address
9855                 Name (_S3D, 0x03)  // _S3D: S3 Device State
9856                 Name (RID, 0x00)
9857                 OperationRegion (IDCS, PCI_Config, 0x00, 0x0100)
9858                 Field (IDCS, DWordAcc, NoLock, Preserve)
9859                 {
9860                     Offset (0x40), 
9861                     PFT0,   1, 
9862                     PIE0,   1, 
9863                     PPE0,   1, 
9864                     PDT0,   1, 
9865                     PFT1,   1, 
9866                     PIE1,   1, 
9867                     PPE1,   1, 
9868                     PDT1,   1, 
9869                     PRC0,   2, 
9870                         ,   2, 
9871                     PIS0,   2, 
9872                     PSIE,   1, 
9873                     PIDE,   1, 
9874                     SFT0,   1, 
9875                     SIE0,   1, 
9876                     SPE0,   1, 
9877                     SDT0,   1, 
9878                     SFT1,   1, 
9879                     SIE1,   1, 
9880                     SPE1,   1, 
9881                     SDT1,   1, 
9882                     SRC0,   2, 
9883                         ,   2, 
9884                     SIS0,   2, 
9885                     SSIE,   1, 
9886                     SIDE,   1, 
9887                     PRC1,   2, 
9888                     PIS1,   2, 
9889                     SRC1,   2, 
9890                     SIS1,   2, 
9891                     Offset (0x48), 
9892                     PSD0,   1, 
9893                     PSD1,   1, 
9894                     SSD0,   1, 
9895                     SSD1,   1, 
9896                     Offset (0x4A), 
9897                     PCT0,   2, 
9898                         ,   2, 
9899                     PCT1,   2, 
9900                     Offset (0x4B), 
9901                     SCT0,   2, 
9902                         ,   2, 
9903                     SCT1,   2, 
9904                     Offset (0x4C), 
9905                     Offset (0x54), 
9906                     PCB0,   1, 
9907                     PCB1,   1, 
9908                     SCB0,   1, 
9909                     SCB1,   1, 
9910                     PCR0,   1, 
9911                     PCR1,   1, 
9912                     SCR0,   1, 
9913                     SCR1,   1, 
9914                         ,   2, 
9915                     WRPP,   1, 
9916                         ,   1, 
9917                     FPB0,   1, 
9918                     FPB1,   1, 
9919                     FSB0,   1, 
9920                     FSB1,   1, 
9921                     PSIG,   2, 
9922                     SSIG,   2
9923                 }
9924 
9925                 Field (IDCS, DWordAcc, NoLock, Preserve)
9926                 {
9927                     Offset (0x40), 
9928                     PTI0,   4, 
9929                     PTI1,   4, 
9930                     Offset (0x42), 
9931                     STI0,   4, 
9932                     STI1,   4
9933                 }
9934 
9935                 Method (GPCT, 4, NotSerialized)
9936                 {
9937                     If (LNot (Or (Arg0, Arg1)))
9938                     {
9939                         Return (0x00)
9940                     }
9941 
9942                     If (LAnd (LNot (Arg0), Arg1))
9943                     {
9944                         Return (0x0384)
9945                     }
9946 
9947                     Return (Multiply (Subtract (0x09, Add (Arg2, Arg3)), 0x1E
9948                         ))
9949                 }
9950 
9951                 Method (GDCT, 4, NotSerialized)
9952                 {
9953                     If (LNot (Arg0))
9954                     {
9955                         Return (0x00)
9956                     }
9957 
9958                     If (Arg1)
9959                     {
9960                         Return (0x14)
9961                     }
9962 
9963                     If (Arg2)
9964                     {
9965                         Return (Multiply (Subtract (0x04, Arg3), 0x0F))
9966                     }
9967 
9968                     Return (Multiply (Subtract (0x04, Arg3), 0x1E))
9969                 }
9970 
9971                 Method (MTIM, 2, NotSerialized)
9972                 {
9973                     Store (0x00, Local0)
9974                     If (Arg0)
9975                     {
9976                         Or (Local0, 0x01, Local0)
9977                     }
9978 
9979                     If (LGreaterEqual (Arg0, 0x02))
9980                     {
9981                         Or (Local0, 0x02, Local0)
9982                     }
9983 
9984                     If (LNot (Arg1))
9985                     {
9986                         Or (Local0, 0x04, Local0)
9987                     }
9988 
9989                     If (LNot (Arg0))
9990                     {
9991                         Or (Local0, 0x08, Local0)
9992                     }
9993 
9994                     Return (Local0)
9995                 }
9996 
9997                 Method (MISP, 1, NotSerialized)
9998                 {
9999                     If (LNot (Arg0))
10000                     {
10001                         Return (0x00)
10002                     }
10003 
10004                     If (LLessEqual (Arg0, 0x02))
10005                     {
10006                         Return (0x01)
10007                     }
10008 
10009                     Return (0x02)
10010                 }
10011 
10012                 Method (MRCT, 1, NotSerialized)
10013                 {
10014                     If (LLessEqual (Arg0, 0x02))
10015                     {
10016                         Return (0x00)
10017                     }
10018 
10019                     If (LEqual (Arg0, 0x03))
10020                     {
10021                         Return (0x01)
10022                     }
10023 
10024                     Return (0x03)
10025                 }
10026             }
10027 
10028             Device (SMBU)
10029             {
10030                 Name (_ADR, 0x001F0003)  // _ADR: Address
10031                 Name (_S3D, 0x03)  // _S3D: S3 Device State
10032                 Name (RID, 0x00)
10033             }
10034 
10035             Device (USB0)
10036             {
10037                 Name (_ADR, 0x001D0000)  // _ADR: Address
10038                 Name (_S3D, 0x02)  // _S3D: S3 Device State
10039                 Name (RID, 0x00)
10040                 OperationRegion (U0CS, PCI_Config, 0xC4, 0x04)
10041                 Field (U0CS, DWordAcc, NoLock, Preserve)
10042                 {
10043                     U0EN,   2, 
10044                     Offset (0x04)
10045                 }
10046 
10047                 Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
10048                 {
10049                     \_SB.PCI0.LPC.EC.PUBS
10050                 })
10051                 Name (_PR1, Package (0x01)  // _PR1: Power Resources for D1
10052                 {
10053                     \_SB.PCI0.LPC.EC.PUBS
10054                 })
10055                 Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
10056                 {
10057                     \_SB.PCI0.LPC.EC.PUBS
10058                 })
10059                 Name (_PRW, Package (0x03)  // _PRW: Power Resources for Wake
10060                 {
10061                     0x03, 
10062                     0x03, 
10063                     \_SB.PCI0.LPC.EC.PUBS
10064                 })
10065                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
10066                 {
10067                     If (Arg0)
10068                     {
10069                         Store (0x03, U0EN)
10070                     }
10071                     Else
10072                     {
10073                         Store (0x00, U0EN)
10074                     }
10075 
10076                     \_SB.PCI0.LPC.EC.PNST (Arg0)
10077                 }
10078             }
10079 
10080             Device (USB1)
10081             {
10082                 Name (_ADR, 0x001D0001)  // _ADR: Address
10083                 Name (_S3D, 0x02)  // _S3D: S3 Device State
10084                 Name (RID, 0x00)
10085                 OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
10086                 Field (U1CS, DWordAcc, NoLock, Preserve)
10087                 {
10088                     U1EN,   2, 
10089                     Offset (0x04)
10090                 }
10091 
10092                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
10093                 {
10094                     0x04, 
10095                     0x03
10096                 })
10097                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
10098                 {
10099                     If (Arg0)
10100                     {
10101                         Store (0x03, U1EN)
10102                     }
10103                     Else
10104                     {
10105                         Store (0x00, U1EN)
10106                     }
10107                 }
10108 
10109                 Device (URTH)
10110                 {
10111                     Name (_ADR, 0x00)  // _ADR: Address
10112                     Device (UPEX)
10113                     {
10114                         Name (_ADR, 0x02)  // _ADR: Address
10115                     }
10116                 }
10117             }
10118 
10119             Device (USB2)
10120             {
10121                 Name (_ADR, 0x001D0002)  // _ADR: Address
10122                 Name (_S3D, 0x02)  // _S3D: S3 Device State
10123                 Name (RID, 0x00)
10124                 OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
10125                 Field (U2CS, DWordAcc, NoLock, Preserve)
10126                 {
10127                     U2EN,   2, 
10128                     Offset (0x04)
10129                 }
10130 
10131                 Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
10132                 {
10133                     \_SB.PCI0.LPC.EC.PUBS
10134                 })
10135                 Name (_PR1, Package (0x01)  // _PR1: Power Resources for D1
10136                 {
10137                     \_SB.PCI0.LPC.EC.PUBS
10138                 })
10139                 Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
10140                 {
10141                     \_SB.PCI0.LPC.EC.PUBS
10142                 })
10143                 Name (_PRW, Package (0x03)  // _PRW: Power Resources for Wake
10144                 {
10145                     0x0C, 
10146                     0x03, 
10147                     \_SB.PCI0.LPC.EC.PUBS
10148                 })
10149                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
10150                 {
10151                     If (Arg0)
10152                     {
10153                         Store (0x03, U2EN)
10154                     }
10155                     Else
10156                     {
10157                         Store (0x00, U2EN)
10158                     }
10159                 }
10160             }
10161 
10162             Device (USB3)
10163             {
10164                 Name (_ADR, 0x001A0000)  // _ADR: Address
10165                 Name (_S3D, 0x02)  // _S3D: S3 Device State
10166                 Name (RID, 0x00)
10167                 OperationRegion (U3CS, PCI_Config, 0xC4, 0x04)
10168                 Field (U3CS, DWordAcc, NoLock, Preserve)
10169                 {
10170                     U3EN,   2, 
10171                     Offset (0x04)
10172                 }
10173 
10174                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
10175                 {
10176                     0x0E, 
10177                     0x03
10178                 })
10179                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
10180                 {
10181                     If (Arg0)
10182                     {
10183                         Store (0x03, U3EN)
10184                     }
10185                     Else
10186                     {
10187                         Store (0x00, U3EN)
10188                     }
10189                 }
10190             }
10191 
10192             Device (USB4)
10193             {
10194                 Name (_ADR, 0x001A0001)  // _ADR: Address
10195                 Name (_S3D, 0x02)  // _S3D: S3 Device State
10196                 Name (RID, 0x00)
10197                 OperationRegion (U4CS, PCI_Config, 0xC4, 0x04)
10198                 Field (U4CS, DWordAcc, NoLock, Preserve)
10199                 {
10200                     U4EN,   2, 
10201                     Offset (0x04)
10202                 }
10203 
10204                 Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
10205                 {
10206                     \_SB.PCI0.LPC.EC.PUBS
10207                 })
10208                 Name (_PR1, Package (0x01)  // _PR1: Power Resources for D1
10209                 {
10210                     \_SB.PCI0.LPC.EC.PUBS
10211                 })
10212                 Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
10213                 {
10214                     \_SB.PCI0.LPC.EC.PUBS
10215                 })
10216                 Name (_PRW, Package (0x03)  // _PRW: Power Resources for Wake
10217                 {
10218                     0x05, 
10219                     0x03, 
10220                     \_SB.PCI0.LPC.EC.PUBS
10221                 })
10222                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
10223                 {
10224                     If (Arg0)
10225                     {
10226                         Store (0x03, U4EN)
10227                     }
10228                     Else
10229                     {
10230                         Store (0x00, U4EN)
10231                     }
10232                 }
10233 
10234                 Device (URTH)
10235                 {
10236                     Name (_ADR, 0x00)  // _ADR: Address
10237                     Device (UPDK)
10238                     {
10239                         Name (_ADR, 0x02)  // _ADR: Address
10240                     }
10241                 }
10242             }
10243 
10244             Device (EHC0)
10245             {
10246                 Name (_ADR, 0x001D0007)  // _ADR: Address
10247                 Name (_S3D, 0x03)  // _S3D: S3 Device State
10248                 Name (RID, 0x00)
10249                 OperationRegion (U7CS, PCI_Config, 0x60, 0x04)
10250                 Field (U7CS, DWordAcc, NoLock, Preserve)
10251                 {
10252                     Offset (0x02), 
10253                     PWKI,   1, 
10254                     PWUC,   6, 
10255                     Offset (0x04)
10256                 }
10257 
10258                 Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
10259                 {
10260                     \_SB.PCI0.LPC.EC.PUBS
10261                 })
10262                 Name (_PR1, Package (0x01)  // _PR1: Power Resources for D1
10263                 {
10264                     \_SB.PCI0.LPC.EC.PUBS
10265                 })
10266                 Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
10267                 {
10268                     \_SB.PCI0.LPC.EC.PUBS
10269                 })
10270                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
10271                 {
10272                     Store (0x01, PWKI)
10273                     Store (0x0F, PWUC)
10274                 }
10275 
10276                 Name (_PRW, Package (0x03)  // _PRW: Power Resources for Wake
10277                 {
10278                     0x0D, 
10279                     0x03, 
10280                     \_SB.PCI0.LPC.EC.PUBS
10281                 })
10282                 Device (URTH)
10283                 {
10284                     Name (_ADR, 0x00)  // _ADR: Address
10285                     Device (UPEX)
10286                     {
10287                         Name (_ADR, 0x04)  // _ADR: Address
10288                     }
10289                 }
10290             }
10291 
10292             Device (EHC1)
10293             {
10294                 Name (_ADR, 0x001A0007)  // _ADR: Address
10295                 Name (_S3D, 0x03)  // _S3D: S3 Device State
10296                 Name (RID, 0x00)
10297                 OperationRegion (U8CS, PCI_Config, 0x60, 0x04)
10298                 Field (U8CS, DWordAcc, NoLock, Preserve)
10299                 {
10300                     Offset (0x02), 
10301                     PWKI,   1, 
10302                     PWUC,   4, 
10303                     Offset (0x04)
10304                 }
10305 
10306                 Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
10307                 {
10308                     \_SB.PCI0.LPC.EC.PUBS
10309                 })
10310                 Name (_PR1, Package (0x01)  // _PR1: Power Resources for D1
10311                 {
10312                     \_SB.PCI0.LPC.EC.PUBS
10313                 })
10314                 Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
10315                 {
10316                     \_SB.PCI0.LPC.EC.PUBS
10317                 })
10318                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
10319                 {
10320                     Store (0x01, PWKI)
10321                     Store (0x0F, PWUC)
10322                 }
10323 
10324                 Name (_PRW, Package (0x03)  // _PRW: Power Resources for Wake
10325                 {
10326                     0x0D, 
10327                     0x03, 
10328                     \_SB.PCI0.LPC.EC.PUBS
10329                 })
10330                 Device (URTH)
10331                 {
10332                     Name (_ADR, 0x00)  // _ADR: Address
10333                     Device (UPDK)
10334                     {
10335                         Name (_ADR, 0x04)  // _ADR: Address
10336                     }
10337                 }
10338             }
10339 
10340             Device (HDEF)
10341             {
10342                 Name (_ADR, 0x001B0000)  // _ADR: Address
10343                 Name (_S3D, 0x03)  // _S3D: S3 Device State
10344                 Name (RID, 0x00)
10345                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
10346                 {
10347                     0x0D, 
10348                     0x04
10349                 })
10350                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
10351                 {
10352                     Noop
10353                 }
10354             }
10355         }
10356 
10357         Scope (\_SB.PCI0.LPC.EC)
10358         {
10359             Name (BDEV, 0xFF)
10360             Name (BSTS, 0x00)
10361             Name (BHKE, 0x00)
10362             Name (BXCN, 0x00)
10363             Method (_Q2C, 0, NotSerialized)  // _Qxx: EC Query
10364             {
10365                 If (And (SFLG, 0x0400))
10366                 {
10367                     If (LEqual (BSTS, 0x00))
10368                     {
10369                         Store (BGID (0x00), BDEV)
10370                         If (BXCN)
10371                         {
10372                             NXRE (BDEV)
10373                         }
10374                         Else
10375                         {
10376                             NBRE (BDEV)
10377                         }
10378                     }
10379                 }
10380             }
10381 
10382             Method (_Q2D, 0, NotSerialized)  // _Qxx: EC Query
10383             {
10384                 If (And (SFLG, 0x0400))
10385                 {
10386                     Store (BGID (0x00), BDEV)
10387                     If (BXCN)
10388                     {
10389                         NXRC (BDEV)
10390                     }
10391                     Else
10392                     {
10393                         NBIN (BDEV)
10394                     }
10395                 }
10396             }
10397 
10398             Method (_Q38, 0, NotSerialized)  // _Qxx: EC Query
10399             {
10400                 If (And (SFLG, 0x0400))
10401                 {
10402                     Store (BGID (0x00), Local0)
10403                     If (LNotEqual (Local0, BDEV))
10404                     {
10405                         If (LEqual (Local0, 0x0F))
10406                         {
10407                             BDIS ()
10408                             If (BXCN)
10409                             {
10410                                 Store (BDEV, Local0)
10411                                 Store (0x0F, BDEV)
10412                                 NXEJ (Local0)
10413                             }
10414                             Else
10415                             {
10416                                 NBEJ (BDEV)
10417                                 Store (Local0, BDEV)
10418                             }
10419                         }
10420                         Else
10421                         {
10422                             If (HPBU)
10423                             {
10424                                 If (BXCN)
10425                                 {
10426                                     Store (Local0, BDEV)
10427                                     NXIN (Local0)
10428                                 }
10429                             }
10430                             Else
10431                             {
10432                                 Store (Local0, BDEV)
10433                                 If (BXCN)
10434                                 {
10435                                     NXRC (Local0)
10436                                 }
10437                                 Else
10438                                 {
10439                                     NBIN (Local0)
10440                                 }
10441                             }
10442                         }
10443                     }
10444                 }
10445             }
10446 
10447             Method (NBRE, 1, NotSerialized)
10448             {
10449                 If (LLess (Arg0, 0x0C))
10450                 {
10451                     If (LEqual (\BIDE, 0x03))
10452                     {
10453                         Notify (\_SB.PCI0.SATA.SCND.MSTR, 0x03)
10454                     }
10455                     Else
10456                     {
10457                         Notify (\_SB.PCI0.IDE0.PRIM.MSTR, 0x03)
10458                     }
10459                 }
10460 
10461                 If (LEqual (Arg0, 0x10))
10462                 {
10463                     If (LOr (HPAC, HB0A))
10464                     {
10465                         If (\WNTF)
10466                         {
10467                             Notify (\_SB.PCI0.LPC.EC.BAT1, 0x03)
10468                         }
10469                     }
10470                     Else
10471                     {
10472                         LED (0x04, 0xC0)
10473                         BEEP (0x0F)
10474                         Store (0x02, BSTS)
10475                     }
10476                 }
10477             }
10478 
10479             Method (NBEJ, 1, NotSerialized)
10480             {
10481                 If (LEqual (BSTS, 0x00))
10482                 {
10483                     If (LLess (Arg0, 0x0C))
10484                     {
10485                         If (LEqual (\BIDE, 0x03))
10486                         {
10487                             Notify (\_SB.PCI0.SATA.SCND.MSTR, 0x01)
10488                         }
10489                         Else
10490                         {
10491                             Notify (\_SB.PCI0.IDE0.PRIM.MSTR, 0x01)
10492                         }
10493                     }
10494 
10495                     If (LEqual (Arg0, 0x10))
10496                     {
10497                         If (\WNTF)
10498                         {
10499                             Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01)
10500                         }
10501                         Else
10502                         {
10503                             Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
10504                         }
10505                     }
10506                 }
10507 
10508                 LED (0x04, 0x00)
10509                 BEEP (0x00)
10510                 Store (0x00, BSTS)
10511             }
10512 
10513             Method (NBIN, 1, NotSerialized)
10514             {
10515                 If (LLess (Arg0, 0x0C))
10516                 {
10517                     If (LEqual (Arg0, 0x06))
10518                     {
10519                         BEN (0x02)
10520                     }
10521                     Else
10522                     {
10523                         BEN (0x01)
10524                     }
10525 
10526                     LED (0x04, 0x80)
10527                     If (LEqual (\BIDE, 0x03))
10528                     {
10529                         Notify (\_SB.PCI0.SATA.SCND.MSTR, 0x01)
10530                     }
10531                     Else
10532                     {
10533                         Notify (\_SB.PCI0.IDE0.PRIM.MSTR, 0x01)
10534                     }
10535                 }
10536 
10537                 If (LEqual (Arg0, 0x10))
10538                 {
10539                     LED (0x04, 0x80)
10540                     If (\WNTF)
10541                     {
10542                         Store (0x01, \_SB.PCI0.LPC.EC.BAT1.XB1S)
10543                         Notify (\_SB.PCI0.LPC.EC.BAT1, 0x01)
10544                     }
10545                     Else
10546                     {
10547                         Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
10548                     }
10549                 }
10550 
10551                 BEEP (0x00)
10552                 Store (0x00, BSTS)
10553             }
10554 
10555             Method (BSCN, 0, NotSerialized)
10556             {
10557                 If (LNot (HPBU))
10558                 {
10559                     Store (BGID (0x00), Local0)
10560                     Store (Local0, BDEV)
10561                     If (LLess (Local0, 0x0C))
10562                     {
10563                         If (LEqual (Local0, 0x06))
10564                         {
10565                             BEN (0x02)
10566                         }
10567                         Else
10568                         {
10569                             BEN (0x01)
10570                         }
10571 
10572                         LED (0x04, 0x80)
10573                     }
10574 
10575                     If (LEqual (Local0, 0x0E))
10576                     {
10577                         BEN (0x00)
10578                         LED (0x04, 0x80)
10579                     }
10580 
10581                     If (LEqual (Local0, 0x10))
10582                     {
10583                         LED (0x04, 0x80)
10584                         Store (0x01, \_SB.PCI0.LPC.EC.BAT1.XB1S)
10585                     }
10586 
10587                     BEEP (0x00)
10588                     Store (0x00, BSTS)
10589                 }
10590             }
10591 
10592             Method (BEJ0, 1, NotSerialized)
10593             {
10594                 If (Arg0)
10595                 {
10596                     BDIS ()
10597                     LED (0x04, 0x00)
10598                     \BHDP (0x01, 0x00)
10599                     Store (0x0F, BDEV)
10600                     Store (0x01, BSTS)
10601                     If (BHKE)
10602                     {
10603                         Store (0x00, BHKE)
10604                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x3003)
10605                     }
10606                 }
10607                 Else
10608                 {
10609                     LED (0x04, 0x80)
10610                     Store (0x00, BSTS)
10611                 }
10612             }
10613 
10614             Method (BEJ3, 1, NotSerialized)
10615             {
10616                 If (Arg0)
10617                 {
10618                     BDIS ()
10619                     Store (0x01, BSTS)
10620                 }
10621                 Else
10622                 {
10623                     Store (0x00, BSTS)
10624                 }
10625             }
10626 
10627             Method (BPTS, 1, NotSerialized)
10628             {
10629                 Store (0x01, HDBM)
10630                 If (LNotEqual (BSTS, 0x00))
10631                 {
10632                     Store (0x0F, BDEV)
10633                     Store (0x00, BSTS)
10634                 }
10635 
10636                 Store (0x00, BHKE)
10637                 Store (0x01, Local0)
10638                 If (LNotEqual (BDEV, 0x0F))
10639                 {
10640                     If (LAnd (LNot (\LFDC), LEqual (BDEV, 0x0D)))
10641                     {
10642                         Store (0x00, Local0)
10643                     }
10644                 }
10645                 Else
10646                 {
10647                     Store (0x00, Local0)
10648                 }
10649 
10650                 If (LGreaterEqual (Arg0, 0x04))
10651                 {
10652                     Store (0x00, Local0)
10653                 }
10654 
10655                 If (Local0)
10656                 {
10657                     BUWK (0x01)
10658                 }
10659                 Else
10660                 {
10661                     LED (0x04, 0x00)
10662                     BUWK (0x00)
10663                 }
10664             }
10665 
10666             Method (BWAK, 1, NotSerialized)
10667             {
10668                 BUWK (0x00)
10669                 Store (BGID (0x00), Local0)
10670                 If (LEqual (BSTS, 0x00))
10671                 {
10672                     If (LOr (\_SB.PCI0.LPC.EC.BAT2.XB2S, LEqual (HBCS, 0x02))) {}
10673                     Else
10674                     {
10675                         If (HB1A)
10676                         {
10677                             Store (0x01, \_SB.PCI0.LPC.EC.BAT2.XB2S)
10678                             Notify (\_SB.PCI0.LPC.EC.BAT2, 0x01)
10679                         }
10680                     }
10681 
10682                     If (And (SFLG, 0x0400))
10683                     {
10684                         If (LEqual (BSTS, 0x00))
10685                         {
10686                             If (LNotEqual (Local0, BDEV))
10687                             {
10688                                 If (LNotEqual (Local0, 0x10))
10689                                 {
10690                                     Store (0x00, \_SB.PCI0.LPC.EC.BAT1.XB1S)
10691                                 }
10692 
10693                                 If (BXCN)
10694                                 {
10695                                     Store (Local0, BDEV)
10696                                     NXRC (Local0)
10697                                 }
10698                                 Else
10699                                 {
10700                                     NBEJ (BDEV)
10701                                     Store (Local0, BDEV)
10702                                     NBIN (Local0)
10703                                 }
10704                             }
10705                             Else
10706                             {
10707                                 If (LOr (\LFDC, LNotEqual (BDEV, 0x0D)))
10708                                 {
10709                                     If (LNotEqual (Local0, 0x0F))
10710                                     {
10711                                         LED (0x04, 0x80)
10712                                         If (HPBU)
10713                                         {
10714                                             Or (ShiftLeft (Arg0, 0x08), 0x2005, BHKE)
10715                                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (BHKE)
10716                                             If (LLessEqual (Arg0, 0x02)) {}
10717                                             Else
10718                                             {
10719                                                 If (BXCN)
10720                                                 {
10721                                                     NXRE (Local0)
10722                                                 }
10723                                                 Else
10724                                                 {
10725                                                     NBRE (Local0)
10726                                                 }
10727                                             }
10728                                         }
10729                                     }
10730                                 }
10731                             }
10732                         }
10733                     }
10734                 }
10735             }
10736 
10737             Method (BDIS, 0, NotSerialized)
10738             {
10739                 If (\_SB.PCI0.LPC.BPRS)
10740                 {
10741                     If (LEqual (\BIDE, 0x03))
10742                     {
10743                         Store (0x00, \_SB.PCI0.SATA.SIE0)
10744                         Store (0x00, \_SB.PCI0.SATA.STI0)
10745                         Store (0x00, \_SB.PCI0.LPC.URST)
10746                         Stall (0x0F)
10747                         Store (0x01, \_SB.PCI0.SATA.SSIG)
10748                     }
10749                     Else
10750                     {
10751                         Store (0x00, \_SB.PCI0.IDE0.PIE0)
10752                         Store (0x00, \_SB.PCI0.IDE0.PTI0)
10753                         Store (0x00, \_SB.PCI0.LPC.URST)
10754                         Stall (0x0F)
10755                         Store (0x01, \_SB.PCI0.IDE0.PSIG)
10756                     }
10757 
10758                     Store (0x00, \_SB.PCI0.LPC.UBPW)
10759                 }
10760             }
10761 
10762             Method (BEN, 1, NotSerialized)
10763             {
10764                 Store (0x00, \_SB.PCI0.LPC.URST)
10765                 Store (0x01, \_SB.PCI0.LPC.UBPW)
10766                 Sleep (0x0F)
10767                 If (Arg0)
10768                 {
10769                     If (LEqual (\BIDE, 0x03))
10770                     {
10771                         Store (0x00, \_SB.PCI0.SATA.SSIG)
10772                         Store (0x01, \_SB.PCI0.SATA.SIDE)
10773                     }
10774                     Else
10775                     {
10776                         Store (0x00, \_SB.PCI0.IDE0.PSIG)
10777                         Store (0x01, \_SB.PCI0.IDE0.PIDE)
10778                     }
10779 
10780                     Stall (0x2D)
10781                     Store (0x01, \_SB.PCI0.LPC.URST)
10782                     If (LNot (\WVIS))
10783                     {
10784                         If (LEqual (Arg0, 0x02))
10785                         {
10786                             Sleep (0x07D0)
10787                         }
10788                         Else
10789                         {
10790                             Sleep (0x0190)
10791                         }
10792                     }
10793                 }
10794 
10795                 If (\WVIS)
10796                 {
10797                     Store (0x3C, Local0)
10798                     Store (0x00, Local1)
10799                     If (LEqual (\BIDE, 0x03))
10800                     {
10801                         Store (0x01, Local1)
10802                     }
10803 
10804                     While (Local0)
10805                     {
10806                         Sleep (0x01F4)
10807                         If (HSWA (Local1))
10808                         {
10809                             Break
10810                         }
10811 
10812                         Decrement (Local0)
10813                     }
10814                 }
10815             }
10816 
10817             Method (BSTA, 1, NotSerialized)
10818             {
10819                 If (LNot (\_SB.PCI0.LPC.BPRS))
10820                 {
10821                     Return (0x00)
10822                 }
10823 
10824                 BINI ()
10825                 If (LEqual (Arg0, 0x00))
10826                 {
10827                     Return (LEqual (BDEV, 0x0D))
10828                 }
10829 
10830                 If (LEqual (Arg0, 0x01))
10831                 {
10832                     Return (LLess (BDEV, 0x0C))
10833                 }
10834 
10835                 If (LEqual (Arg0, 0x02))
10836                 {
10837                     Return (LEqual (BDEV, 0x0E))
10838                 }
10839 
10840                 Return (0x00)
10841             }
10842 
10843             Method (BUWK, 1, NotSerialized)
10844             {
10845                 If (\H8DR)
10846                 {
10847                     If (Arg0)
10848                     {
10849                         Store (0x01, \_SB.PCI0.LPC.EC.HWBU)
10850                     }
10851                     Else
10852                     {
10853                         Store (0x00, \_SB.PCI0.LPC.EC.HWBU)
10854                     }
10855                 }
10856                 Else
10857                 {
10858                     If (Arg0)
10859                     {
10860                         \MBEC (0x32, 0xFF, 0x80)
10861                     }
10862                     Else
10863                     {
10864                         \MBEC (0x32, 0x7F, 0x00)
10865                     }
10866                 }
10867             }
10868 
10869             Method (BINI, 0, NotSerialized)
10870             {
10871                 If (LEqual (BDEV, 0xFF))
10872                 {
10873                     Store (BGID (0x00), BDEV)
10874                 }
10875             }
10876 
10877             Method (BGID, 1, NotSerialized)
10878             {
10879                 Store (0x0F, Local0)
10880                 If (Arg0)
10881                 {
10882                     Store (0xFF, Local0)
10883                 }
10884                 Else
10885                 {
10886                     If (LEqual (\_SB.PCI0.LPC.EC.GSID (), 0x03))
10887                     {
10888                         Store (BAID (), Local0)
10889                     }
10890 
10891                     If (LEqual (Local0, 0x0F))
10892                     {
10893                         If (\H8DR)
10894                         {
10895                             If (LEqual (HBCS, 0x02))
10896                             {
10897                                 Store (0x10, Local0)
10898                             }
10899                         }
10900                         Else
10901                         {
10902                             If (And (\RBEC (0xCE), 0x02))
10903                             {
10904                                 Store (0x10, Local0)
10905                             }
10906                         }
10907                     }
10908                 }
10909 
10910                 If (LAnd (\HDUB, LLess (Local0, 0x0C)))
10911                 {
10912                     Store (0x0F, Local0)
10913                 }
10914 
10915                 Return (Local0)
10916             }
10917 
10918             Method (BAID, 0, NotSerialized)
10919             {
10920                 If (LAnd (LEqual (BAHD, 0x00), LEqual (BAAT, 0x00)))
10921                 {
10922                     Return (0x0B)
10923                 }
10924                 Else
10925                 {
10926                     If (LAnd (LEqual (BAHD, 0x01), LEqual (BAAT, 0x00)))
10927                     {
10928                         Return (0x06)
10929                     }
10930                     Else
10931                     {
10932                         Return (0x0F)
10933                     }
10934                 }
10935             }
10936 
10937             Method (NXRE, 1, NotSerialized)
10938             {
10939                 If (LEqual (Arg0, 0x0F))
10940                 {
10941                     LED (0x04, 0x00)
10942                     Store (0x00, BSTS)
10943                 }
10944 
10945                 If (LLess (Arg0, 0x0C))
10946                 {
10947                     LED (0x04, 0xC0)
10948                     Notify (\_SB.SWAP, 0x83)
10949                 }
10950 
10951                 If (LEqual (Arg0, 0x0E))
10952                 {
10953                     LED (0x04, 0xC0)
10954                     Notify (\_SB.SWAP, 0x83)
10955                 }
10956 
10957                 If (LEqual (Arg0, 0x10))
10958                 {
10959                     If (LOr (HPAC, HB0A))
10960                     {
10961                         LED (0x04, 0xC0)
10962                         Notify (\_SB.SWAP, 0x83)
10963                     }
10964                     Else
10965                     {
10966                         LED (0x04, 0xC0)
10967                         BEEP (0x0F)
10968                         Store (0x02, BSTS)
10969                     }
10970                 }
10971             }
10972 
10973             Method (NXRC, 1, NotSerialized)
10974             {
10975                 If (LLess (Arg0, 0x0C))
10976                 {
10977                     LED (0x04, 0x80)
10978                     If (LEqual (Arg0, 0x06))
10979                     {
10980                         BEN (0x02)
10981                     }
10982                     Else
10983                     {
10984                         BEN (0x01)
10985                     }
10986 
10987                     Notify (\_SB.SWAP, 0x80)
10988                 }
10989 
10990                 If (LEqual (Arg0, 0x0E))
10991                 {
10992                     LED (0x04, 0x80)
10993                     BEN (0x00)
10994                     Notify (\_SB.SWAP, 0x80)
10995                 }
10996 
10997                 If (LEqual (Arg0, 0x10))
10998                 {
10999                     Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
11000                     LED (0x04, 0x80)
11001                     Notify (\_SB.SWAP, 0x80)
11002                 }
11003 
11004                 BEEP (0x00)
11005                 Store (0x00, BSTS)
11006             }
11007 
11008             Method (NXEJ, 1, NotSerialized)
11009             {
11010                 If (LEqual (Arg0, 0x10))
11011                 {
11012                     Notify (\_SB.PCI0.LPC.EC.BAT1, 0x81)
11013                 }
11014 
11015                 Notify (\_SB.SWAP, 0x82)
11016                 LED (0x04, 0x00)
11017                 BEEP (0x00)
11018                 Store (0x00, BSTS)
11019             }
11020 
11021             Method (NXIN, 1, NotSerialized)
11022             {
11023                 Notify (\_SB.SWAP, 0x81)
11024             }
11025         }
11026 
11027         Scope (\_SB.PCI0.LPC.EC.BAT1)
11028         {
11029             Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
11030             {
11031                 Store (0x00, B1ST)
11032                 Store (0x00, XB1S)
11033                 \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
11034             }
11035         }
11036 
11037         Scope (\_SB)
11038         {
11039             Device (SWAP)
11040             {
11041                 Name (_HID, EisaId ("IBM0069"))  // _HID: Hardware ID
11042                 Method (_STA, 0, NotSerialized)  // _STA: Status
11043                 {
11044                     If (\WMEF)
11045                     {
11046                         Return (0x0F)
11047                     }
11048                     Else
11049                     {
11050                         Return (0x00)
11051                     }
11052                 }
11053 
11054                 Method (XCNN, 1, NotSerialized)
11055                 {
11056                     Store (Arg0, \_SB.PCI0.LPC.EC.BXCN)
11057                     Return (0x09)
11058                 }
11059 
11060                 Method (XSWP, 0, NotSerialized)
11061                 {
11062                     Return (0x01)
11063                 }
11064 
11065                 Method (XEJ0, 1, NotSerialized)
11066                 {
11067                     \_SB.PCI0.LPC.EC.BEJ0 (Arg0)
11068                 }
11069 
11070                 Method (XEJ3, 1, NotSerialized)
11071                 {
11072                     \_SB.PCI0.LPC.EC.BEJ3 (Arg0)
11073                 }
11074 
11075                 Method (XDID, 0, NotSerialized)
11076                 {
11077                     Name (XPCK, Package (0x06)
11078                     {
11079                         0x00, 
11080                         0x00, 
11081                         0xFFFFFFFF, 
11082                         0xFFFFFFFF, 
11083                         0xFFFFFFFF, 
11084                         0x00
11085                     })
11086                     Store (\_SB.PCI0.LPC.EC.BDEV, Local0)
11087                     Store (Local0, Index (XPCK, 0x00))
11088                     If (LLess (Local0, 0x0C))
11089                     {
11090                         If (LEqual (\BIDE, 0x03))
11091                         {
11092                             Store (\_SB.PCI0.SATA._ADR, Index (XPCK, 0x02))
11093                             Store (\_SB.PCI0.SATA.SCND._ADR, Index (XPCK, 0x03))
11094                             Store (\_SB.PCI0.SATA.SCND.MSTR._ADR, Index (XPCK, 0x04))
11095                         }
11096                         Else
11097                         {
11098                             Store (\_SB.PCI0.IDE0._ADR, Index (XPCK, 0x02))
11099                             Store (\_SB.PCI0.IDE0.PRIM._ADR, Index (XPCK, 0x03))
11100                             Store (\_SB.PCI0.IDE0.PRIM.MSTR._ADR, Index (XPCK, 0x04))
11101                         }
11102                     }
11103 
11104                     If (LEqual (Local0, 0x10))
11105                     {
11106                         Store (\_SB.PCI0.LPC.EC.BAT1._HID, Index (XPCK, 0x02))
11107                         Store (\_SB.PCI0.LPC.EC.BAT1._UID, Index (XPCK, 0x04))
11108                     }
11109 
11110                     Store (XOr (\_SB.PCI0.LPC.BPRS, 0x00), Index (XPCK, 0x05))
11111                     Return (XPCK)
11112                 }
11113 
11114                 Method (XSTM, 1, NotSerialized)
11115                 {
11116                     Name (XDMY, Buffer (0x14) {})
11117                     If (LEqual (\BIDE, 0x03))
11118                     {
11119                         \_SB.PCI0.SATA.SCND._STM (XDMY, Arg0, 0x00)
11120                     }
11121                     Else
11122                     {
11123                         \_SB.PCI0.IDE0.PRIM._STM (XDMY, Arg0, 0x00)
11124                     }
11125                 }
11126 
11127                 Method (XGTF, 0, NotSerialized)
11128                 {
11129                     If (LEqual (\BIDE, 0x03))
11130                     {
11131                         Return (\_SB.PCI0.SATA.SCND.MSTR._GTF)
11132                     }
11133                     Else
11134                     {
11135                         Return (\_SB.PCI0.IDE0.PRIM.MSTR._GTF ())
11136                     }
11137                 }
11138             }
11139         }
11140 
11141         Scope (\_SB)
11142         {
11143             Device (GDCK)
11144             {
11145                 Name (_HID, EisaId ("IBM0079"))  // _HID: Hardware ID
11146                 Name (_CID, EisaId ("PNP0C15"))  // _CID: Compatible ID
11147                 Name (DOID, 0xFFFFFFFF)
11148                 Name (DIDB, 0xFFFFFFFF)
11149                 Name (FLAG, 0x00)
11150                 Name (WUCT, 0x00)
11151                 Name (DHKE, 0x00)
11152                 Event (DEVT)
11153                 Method (DSTA, 0, NotSerialized)
11154                 {
11155                     UDCK ()
11156                     UDKT ()
11157                     If (LOr (LEqual (GDID (), 0x4C004D24), LEqual (GDID (), 0x44004D24)))
11158                     {
11159                         Store (0x0F, Local0)
11160                     }
11161                     Else
11162                     {
11163                         If (LNot (\W98F))
11164                         {
11165                             Store (0x00, Local0)
11166                         }
11167                         Else
11168                         {
11169                             Store (0x0C, Local0)
11170                         }
11171                     }
11172 
11173                     Return (Local0)
11174                 }
11175 
11176                 Method (DPTS, 1, NotSerialized)
11177                 {
11178                     If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
11179                     {
11180                         Store (0x00, DHKE)
11181                         If (DFLG (0x02, 0x02))
11182                         {
11183                             Store (0x00, DOID)
11184                             DFLG (0x01, 0x02)
11185                         }
11186 
11187                         If (LOr (LEqual (GDID (), 0x4C004D24), LEqual (GDID (), 0x44004D24)))
11188                         {
11189                             \_SB.PCI0.LPC.EC.DDWK (0x01)
11190                         }
11191 
11192                         Store (GDID (), DIDB)
11193                         DFLG (0x00, 0x0100)
11194                     }
11195                 }
11196 
11197                 Name (DDTM, 0x00)
11198                 Method (DWAK, 1, NotSerialized)
11199                 {
11200                     Store (0xFFFFFFFF, DOID)
11201                     If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
11202                     {
11203                         Store (0x00, DDTM)
11204                         If (LOr (LEqual (DIDB, 0x4C004D24), LEqual (DIDB, 0x44004D24)))
11205                         {
11206                             Store (0x01, DDTM)
11207                         }
11208 
11209                         If (DDTM)
11210                         {
11211                             Store (0x00, DDTM)
11212                             If (LEqual (GDID (), 0x4C004D24))
11213                             {
11214                                 Store (0x01, DDTM)
11215                             }
11216 
11217                             If (LEqual (GDID (), 0x44004D24))
11218                             {
11219                                 Store (0x01, DDTM)
11220                             }
11221 
11222                             If (DDTM)
11223                             {
11224                                 If (LEqual (Arg0, 0x04))
11225                                 {
11226                                     If (And (\_SB.PCI0.LPC.WAKR, 0x08))
11227                                     {
11228                                         DGPE ()
11229                                     }
11230                                 }
11231 
11232                                 ShiftLeft (Arg0, 0x08, DHKE)
11233                                 If (LNot (DFLG (0x02, 0x08))) {}
11234                             }
11235                             Else
11236                             {
11237                                 Store (0x01, \_SB.PCI0.LPC.BUSD)
11238                                 \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11239                                 \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
11240                                 Notify (\_SB.GDCK, 0x00)
11241                                 \DHDP (0x00)
11242                             }
11243                         }
11244                         Else
11245                         {
11246                             Store (0x00, DDTM)
11247                             If (LEqual (GDID (), 0x4C004D24))
11248                             {
11249                                 Store (0x01, DDTM)
11250                             }
11251 
11252                             If (LEqual (GDID (), 0x44004D24))
11253                             {
11254                                 Store (0x01, DDTM)
11255                             }
11256 
11257                             If (DDTM)
11258                             {
11259                                 WDCK ()
11260                             }
11261                             Else
11262                             {
11263                                 Noop
11264                             }
11265                         }
11266 
11267                         DFLG (0x01, 0x0100)
11268                         DFLG (0x01, 0x02)
11269                         DFLG (0x01, 0x10)
11270                         DFLG (0x01, 0x20)
11271                         Store (0x01, \_SB.PCI0.LPC.DSCI)
11272                     }
11273                 }
11274 
11275                 Method (DGPE, 0, NotSerialized)
11276                 {
11277                     DFLG (0x00, 0x08)
11278                 }
11279 
11280                 Method (DDCK, 1, NotSerialized)
11281                 {
11282                     If (Arg0)
11283                     {
11284                         \_SB.PCI0.LPC.EC.LED (0x08, 0x00)
11285                         \_SB.PCI0.LPC.EC.LED (0x09, 0x80)
11286                         \_SB.PCI0.LPC.LCON (0x01)
11287                         BCON (0x01)
11288                         \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
11289                         \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
11290                     }
11291                     Else
11292                     {
11293                         \_SB.PCI0.LPC.EC.LED (0x08, 0x80)
11294                         \_SB.PCI0.LPC.EC.LED (0x09, 0xC0)
11295                         DFLG (0x00, 0x02)
11296                         \DHDP (0x00)
11297                         BCON (0x00)
11298                         \_SB.PCI0.LPC.LCON (0x00)
11299                         \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11300                         \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
11301                     }
11302 
11303                     Return (0x01)
11304                 }
11305 
11306                 Method (DEJ0, 1, NotSerialized)
11307                 {
11308                     If (Arg0)
11309                     {
11310                         Store (0x00, DOID)
11311                         UDKI ()
11312                     }
11313 
11314                     DFLG (0x01, 0x02)
11315                     \_SB.PCI0.LPC.EC.LED (0x08, 0x00)
11316                     \_SB.PCI0.LPC.EC.LED (0x09, 0x00)
11317                 }
11318 
11319                 Method (DEJ3, 1, NotSerialized)
11320                 {
11321                     If (Arg0)
11322                     {
11323                         DFLG (0x00, 0x10)
11324                         If (LEqual (\SPS, 0x03))
11325                         {
11326                             PDE3 ()
11327                         }
11328                     }
11329                 }
11330 
11331                 Method (DEJ4, 1, NotSerialized)
11332                 {
11333                     If (Arg0)
11334                     {
11335                         DFLG (0x00, 0x20)
11336                     }
11337                 }
11338 
11339                 Method (PDE3, 0, NotSerialized)
11340                 {
11341                     Noop
11342                 }
11343 
11344                 Name (HIDE, 0x00)
11345                 Method (WDCK, 0, NotSerialized)
11346                 {
11347                     If (LOr (DFLG (0x02, 0x10), DFLG (0x02, 0x20)))
11348                     {
11349                         DDCK (0x01)
11350                         If (\W98F)
11351                         {
11352                             DFLG (0x00, 0x0200)
11353                             Store (0x05, HIDE)
11354                         }
11355                     }
11356                     Else
11357                     {
11358                         Notify (\_SB.GDCK, 0x00)
11359                     }
11360                 }
11361 
11362                 Method (UDCK, 0, NotSerialized)
11363                 {
11364                     If (DFLG (0x02, 0x08))
11365                     {
11366                         If (LNot (DFLG (0x02, 0x0100)))
11367                         {
11368                             \_SB.PCI0.LPC.EC.LED (0x08, 0x80)
11369                             \_SB.PCI0.LPC.EC.LED (0x09, 0xC0)
11370                             Or (DHKE, 0x2004, DHKE)
11371                             If (LEqual (\UOPT, 0x00))
11372                             {
11373                                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (DHKE)
11374                             }
11375 
11376                             If (\W98F)
11377                             {
11378                                 Notify (\_SB.GDCK, 0x01)
11379                             }
11380                             Else
11381                             {
11382                                 Notify (\_SB.GDCK, 0x03)
11383                             }
11384 
11385                             DFLG (0x01, 0x08)
11386                         }
11387                     }
11388                 }
11389 
11390                 Method (UDKI, 0, NotSerialized)
11391                 {
11392                     If (\WNTF)
11393                     {
11394                         Store (0x01, WUCT)
11395                     }
11396                     Else
11397                     {
11398                         Store (0x05, WUCT)
11399                     }
11400                 }
11401 
11402                 Method (UDKT, 0, NotSerialized)
11403                 {
11404                     If (And (DHKE, 0x2004))
11405                     {
11406                         If (LEqual (GDID (), 0x00))
11407                         {
11408                             If (LNot (Decrement (WUCT)))
11409                             {
11410                                 Store (0x00, DHKE)
11411                                 If (LEqual (\UOPT, 0x00))
11412                                 {
11413                                     \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x4003)
11414                                 }
11415                             }
11416                         }
11417                     }
11418                 }
11419 
11420                 Method (GDID, 0, NotSerialized)
11421                 {
11422                     If (LEqual (DOID, 0xFFFFFFFF))
11423                     {
11424                         Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11425                         Store (RDID (), DOID)
11426                     }
11427 
11428                     Return (DOID)
11429                 }
11430 
11431                 Method (RDID, 0, NotSerialized)
11432                 {
11433                     Store (0x00, Local0)
11434                     If (\_SB.PCI0.LPC.EPWG)
11435                     {
11436                         If (LEqual (\_SB.GDCK.GGID (), 0x00))
11437                         {
11438                             If (\H8DR)
11439                             {
11440                                 If (\_SB.PCI0.LPC.EC.EEPR ())
11441                                 {
11442                                     Store (\_SB.PCI0.LPC.EC.HDEP, Local0)
11443                                 }
11444                                 Else
11445                                 {
11446                                     Store (0x4C004D24, Local0)
11447                                 }
11448                             }
11449                             Else
11450                             {
11451                                 Store (\DCKI, Local0)
11452                             }
11453                         }
11454 
11455                         If (LEqual (\_SB.GDCK.GGID (), 0x01))
11456                         {
11457                             Store (0x44004D24, Local0)
11458                         }
11459 
11460                         If (LEqual (\_SB.GDCK.GGID (), 0x03))
11461                         {
11462                             Store (0x0200AE30, Local0)
11463                         }
11464                     }
11465 
11466                     Return (Local0)
11467                 }
11468 
11469                 Method (RDSR, 0, NotSerialized)
11470                 {
11471                     Store (0x00, Local0)
11472                     If (LNotEqual (GDID (), 0x00))
11473                     {
11474                         If (LEqual (\_SB.GDCK.GGID (), 0x00))
11475                         {
11476                             If (\H8DR)
11477                             {
11478                                 If (\_SB.PCI0.LPC.EC.EEPR ())
11479                                 {
11480                                     Store (\_SB.PCI0.LPC.EC.HDEN, Local0)
11481                                 }
11482                             }
11483                             Else
11484                             {
11485                                 Store (\DCKS, Local0)
11486                             }
11487                         }
11488 
11489                         If (LEqual (\_SB.GDCK.GGID (), 0x01))
11490                         {
11491                             Store (0x00, Local0)
11492                         }
11493                     }
11494 
11495                     Return (Local0)
11496                 }
11497 
11498                 Method (BCON, 1, NotSerialized)
11499                 {
11500                     Store (\_SB.PCI0.LPC.EC.DATT (0x00, 0x02), Local0)
11501                     \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11502                     Or (\_SB.PCI0.LPC.SERQ, 0x40, \_SB.PCI0.LPC.SERQ)
11503                     And (\_SB.PCI0.LPC.SERQ, 0x7F, \_SB.PCI0.LPC.SERQ)
11504                     Store (\_SB.PCI0.LPC.CLKR, Local1)
11505                     If (Arg0)
11506                     {
11507                         Store (0x00, \_SB.PCI0.LPC.CLKR)
11508                         Store (0x01, \_SB.PCI0.LPC.BUSC)
11509                     }
11510                     Else
11511                     {
11512                         Store (0x01, \_SB.PCI0.LPC.BUSD)
11513                     }
11514 
11515                     Store (Local1, \_SB.PCI0.LPC.CLKR)
11516                     Or (\_SB.PCI0.LPC.SERQ, 0xC0, \_SB.PCI0.LPC.SERQ)
11517                     And (\_SB.PCI0.LPC.SERQ, 0xBF, \_SB.PCI0.LPC.SERQ)
11518                     If (LEqual (Local0, 0x00))
11519                     {
11520                         \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
11521                     }
11522                 }
11523 
11524                 Method (DFLG, 2, NotSerialized)
11525                 {
11526                     If (LEqual (Arg0, 0x00))
11527                     {
11528                         Or (FLAG, Arg1, FLAG)
11529                     }
11530 
11531                     If (LEqual (Arg0, 0x01))
11532                     {
11533                         And (FLAG, Not (Arg1), FLAG)
11534                     }
11535 
11536                     If (And (FLAG, Arg1))
11537                     {
11538                         Return (0x01)
11539                     }
11540                     Else
11541                     {
11542                         Return (0x00)
11543                     }
11544                 }
11545 
11546                 Scope (\_SB.PCI0.LPC.EC)
11547                 {
11548                     Method (_Q37, 0, NotSerialized)  // _Qxx: EC Query
11549                     {
11550                         If (\_SB.PCI0.LPC.EPWG)
11551                         {
11552                             Store (0x07D0, Local0)
11553                             Sleep (0x64)
11554                             Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11555                             While (LAnd (LEqual (\_SB.GDCK.GGID (), 0x07), Local0))
11556                             {
11557                                 Sleep (0x01)
11558                                 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11559                                 Decrement (Local0)
11560                             }
11561 
11562                             Store (0xFFFFFFFF, \_SB.GDCK.DOID)
11563                             If (LOr (LEqual (\_SB.GDCK.GDID (), 0x4C004D24), LEqual (\_SB.GDCK.GDID (), 0x44004D24)))
11564                             {
11565                                 If (HPAC)
11566                                 {
11567                                     Store (0x00, \_SB.PCI0.LPC.DRST)
11568                                     Notify (\_SB.GDCK, 0x00)
11569                                 }
11570                             }
11571                         }
11572                     }
11573 
11574                     Method (EEPR, 0, NotSerialized)
11575                     {
11576                         Store (0x00, Local0)
11577                         If (\H8DR)
11578                         {
11579                             Store (0x00, HDEO)
11580                             Store (0x0A, HDEC)
11581                             While (LNot (And (HDEC, 0xC0)))
11582                             {
11583                                 Sleep (0x01)
11584                             }
11585 
11586                             If (LNot (And (HDEC, 0x40)))
11587                             {
11588                                 Store (0x00, Local1)
11589                                 Store (HDEN, Local2)
11590                                 Store (0x04, Local3)
11591                                 While (Local3)
11592                                 {
11593                                     Add (Local1, And (Local2, 0xFF), Local1)
11594                                     ShiftRight (Local2, 0x08, Local2)
11595                                     Decrement (Local3)
11596                                 }
11597 
11598                                 Store (HDEP, Local2)
11599                                 Store (0x04, Local3)
11600                                 While (Local3)
11601                                 {
11602                                     Add (Local1, And (Local2, 0xFF), Local1)
11603                                     ShiftRight (Local2, 0x08, Local2)
11604                                     Decrement (Local3)
11605                                 }
11606 
11607                                 Add (Local1, HDEM, Local1)
11608                                 Add (Local1, HDES, Local1)
11609                                 If (LNot (And (Local1, 0xFF)))
11610                                 {
11611                                     Store (0x01, Local0)
11612                                 }
11613                             }
11614                         }
11615 
11616                         Return (Local0)
11617                     }
11618                 }
11619 
11620                 Method (_STA, 0, NotSerialized)  // _STA: Status
11621                 {
11622                     Store (GGID (), Local0)
11623                     If (LNot (\W98F))
11624                     {
11625                         Store (0x00, Local1)
11626                     }
11627                     Else
11628                     {
11629                         Store (0x0C, Local1)
11630                     }
11631 
11632                     If (LEqual (Local0, 0x03))
11633                     {
11634                         Store (\_SB.PCI0.LPC.EC.SSTA (), Local1)
11635                     }
11636 
11637                     Return (Local1)
11638                 }
11639 
11640                 Method (_INI, 0, NotSerialized)  // _INI: Initialize
11641                 {
11642                     \_SB.PCI0.LPC.EC.SINI ()
11643                     \_SB.PCI0.LPC.EC.DATT (0x02, 0x01)
11644                     If (LEqual (GGID (), 0x07))
11645                     {
11646                         \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
11647                         \_SB.PCI0.LPC.EC.DATT (0x00, 0x01)
11648                     }
11649                     Else
11650                     {
11651                         \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
11652                         \_SB.PCI0.LPC.EC.DATT (0x00, 0x00)
11653                     }
11654 
11655                     \_SB.PCI0.LPC.EC.DDWK (0x00)
11656                     Store (0x01, \_SB.PCI0.LPC.DSCI)
11657                 }
11658 
11659                 Method (_DCK, 1, NotSerialized)  // _DCK: Dock Present
11660                 {
11661                     Store (0x00, Local0)
11662                     If (LEqual (GGID (), 0x03))
11663                     {
11664                         Store (\_SB.PCI0.LPC.EC.SDCK (Arg0), Local0)
11665                     }
11666 
11667                     If (\VIGD)
11668                     {
11669                         \_SB.PCI0.VID.VDSW (Arg0)
11670                     }
11671 
11672                     Return (Local0)
11673                 }
11674 
11675                 Name (UDOP, 0x00)
11676                 Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
11677                 {
11678                     If (LEqual (GGID (), 0x03))
11679                     {
11680                         \_SB.PCI0.LPC.EC.SEJ0 (Arg0)
11681                     }
11682                 }
11683 
11684                 Method (XEJ3, 1, NotSerialized)
11685                 {
11686                     If (LEqual (GGID (), 0x03))
11687                     {
11688                         \_SB.PCI0.LPC.EC.SEJ3 (Arg0)
11689                     }
11690                 }
11691 
11692                 Method (_EJ4, 1, NotSerialized)  // _EJx: Eject Device
11693                 {
11694                     If (LEqual (GGID (), 0x03))
11695                     {
11696                         \_SB.PCI0.LPC.EC.SEJ4 (Arg0)
11697                     }
11698                 }
11699 
11700                 Method (PEJ3, 0, NotSerialized)
11701                 {
11702                     If (LEqual (GGID (), 0x03))
11703                     {
11704                         \_SB.PCI0.LPC.EC.PSE3 ()
11705                     }
11706                 }
11707 
11708                 Method (_BDN, 0, NotSerialized)  // _BDN: BIOS Dock Name
11709                 {
11710                     Store (0x00, Local0)
11711                     If (LEqual (GGID (), 0x03))
11712                     {
11713                         Store (\_SB.PCI0.LPC.EC.SLBN (), Local0)
11714                     }
11715 
11716                     Return (Local0)
11717                 }
11718 
11719                 Method (_UID, 0, NotSerialized)  // _UID: Unique ID
11720                 {
11721                     Store (0x00, Local0)
11722                     If (LEqual (GGID (), 0x03))
11723                     {
11724                         Store (\_SB.PCI0.LPC.EC.SLUD (), Local0)
11725                     }
11726 
11727                     Return (Local0)
11728                 }
11729 
11730                 Method (GPTS, 1, NotSerialized)
11731                 {
11732                     \_SB.PCI0.LPC.EC.SPTS (Arg0)
11733                 }
11734 
11735                 Method (GWAK, 1, NotSerialized)
11736                 {
11737                     \_SB.PCI0.LPC.EC.SWAK (Arg0)
11738                     \_SB.PCI0.LPC.EC.DDWK (0x00)
11739                 }
11740 
11741                 Method (GGPE, 0, NotSerialized)
11742                 {
11743                     If (LEqual (GGID (), 0x03))
11744                     {
11745                         \_SB.PCI0.LPC.EC.SGPE ()
11746                     }
11747                 }
11748 
11749                 Name (G_ID, 0xFFFFFFFF)
11750                 Method (GGID, 0, NotSerialized)
11751                 {
11752                     Store (G_ID, Local0)
11753                     If (LEqual (Local0, 0xFFFFFFFF))
11754                     {
11755                         Store (\_SB.PCI0.LPC.DKI0, Local0)
11756                         Store (\_SB.PCI0.LPC.DKI1, Local1)
11757                         Store (\_SB.PCI0.LPC.GL03, Local2)
11758                         And (Local2, 0x01, Local2)
11759                         Or (Local0, ShiftLeft (Local1, 0x01), Local0)
11760                         Or (Local0, ShiftLeft (Local2, 0x02), Local0)
11761                         Store (Local0, G_ID)
11762                     }
11763 
11764                     Return (Local0)
11765                 }
11766             }
11767         }
11768 
11769         Scope (\_SB.PCI0.LPC.EC)
11770         {
11771             Method (_Q50, 0, NotSerialized)  // _Qxx: EC Query
11772             {
11773                 Store (\_SB.GDCK.GGID (), Local0)
11774                 If (LNotEqual (Local0, 0x07))
11775                 {
11776                     \_SB.PCI0.LPC.EC.LED (0x08, 0x80)
11777                     If (LEqual (ES07, 0x01))
11778                     {
11779                         \_SB.PCI0.LPC.EC.LED (0x09, 0xC0)
11780                         If (LEqual (Local0, 0x03))
11781                         {
11782                             \_SB.PCI0.LPC.EC.SPEJ ()
11783                         }
11784 
11785                         If (\W98F)
11786                         {
11787                             Notify (\_SB.GDCK, 0x01)
11788                         }
11789                         Else
11790                         {
11791                             Notify (\_SB.GDCK, 0x03)
11792                         }
11793 
11794                         Store (0x01, ES07)
11795                     }
11796 
11797                     If (LEqual (ES01, 0x01))
11798                     {
11799                         If (LNot (HPBU))
11800                         {
11801                             If (And (SFLG, 0x0400))
11802                             {
11803                                 Store (BGID (0x00), BDEV)
11804                                 If (BXCN)
11805                                 {
11806                                     NXRC (BDEV)
11807                                 }
11808                                 Else
11809                                 {
11810                                     NBIN (BDEV)
11811                                 }
11812                             }
11813                         }
11814 
11815                         Store (One, ES01)
11816                     }
11817 
11818                     If (LEqual (ES10, 0x01))
11819                     {
11820                         Store (0x01, ES10)
11821                     }
11822                 }
11823             }
11824 
11825             Method (_Q58, 0, NotSerialized)  // _Qxx: EC Query
11826             {
11827                 Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
11828                 Store (0xFFFFFFFF, \_SB.PCI0.LPC.EC.SLID)
11829                 Store (\_SB.GDCK.GGID (), Local0)
11830                 If (LEqual (Local0, 0x03))
11831                 {
11832                     ASSI (0x00)
11833                     Sleep (0x64)
11834                     If (LNotEqual (\_SB.PCI0.LPC.SIOD, 0xFF))
11835                     {
11836                         Notify (\_SB.GDCK, 0x00)
11837                     }
11838                 }
11839 
11840                 \_SB.PCI0.IGBE.ABWA (0x00)
11841             }
11842 
11843             Method (GUSB, 1, NotSerialized)
11844             {
11845                 ShiftLeft (Arg0, 0x02, Local0)
11846                 If (\H8DR)
11847                 {
11848                     Store (Arg0, UHPW)
11849                     Store (Arg0, SLIS)
11850                 }
11851                 Else
11852                 {
11853                     Store (Arg0, UHPW)
11854                     \MBEC (0x03, 0xFB, Local0)
11855                 }
11856             }
11857 
11858             Method (DATT, 2, NotSerialized)
11859             {
11860                 Store (0x00, Local0)
11861                 If (LEqual (Arg0, 0x00))
11862                 {
11863                     If (LEqual (Arg1, 0x01))
11864                     {
11865                         If (\H8DR)
11866                         {
11867                             Or (HAM6, 0x80, HAM6)
11868                         }
11869                         Else
11870                         {
11871                             \MBEC (0x16, 0xFF, 0x80)
11872                         }
11873 
11874                         Store (0x01, Local0)
11875                     }
11876 
11877                     If (LEqual (Arg1, 0x00))
11878                     {
11879                         If (\H8DR)
11880                         {
11881                             And (HAM6, 0x7F, HAM6)
11882                         }
11883                         Else
11884                         {
11885                             \MBEC (0x16, 0x7F, 0x00)
11886                         }
11887                     }
11888 
11889                     If (LEqual (Arg1, 0x02))
11890                     {
11891                         If (\H8DR)
11892                         {
11893                             If (And (HAM6, 0x80))
11894                             {
11895                                 Store (0x01, Local0)
11896                             }
11897                         }
11898                         Else
11899                         {
11900                             If (And (\RBEC (0x16), 0x80))
11901                             {
11902                                 Store (0x01, Local0)
11903                             }
11904                         }
11905                     }
11906                 }
11907 
11908                 If (LEqual (Arg0, 0x01))
11909                 {
11910                     If (LEqual (Arg1, 0x01))
11911                     {
11912                         If (\H8DR)
11913                         {
11914                             Or (HAMA, 0x01, HAMA)
11915                         }
11916                         Else
11917                         {
11918                             \MBEC (0x1A, 0xFF, 0x01)
11919                         }
11920 
11921                         Store (0x01, Local0)
11922                     }
11923 
11924                     If (LEqual (Arg1, 0x00))
11925                     {
11926                         If (\H8DR)
11927                         {
11928                             And (HAMA, 0xFE, HAMA)
11929                         }
11930                         Else
11931                         {
11932                             \MBEC (0x1A, 0xFE, 0x00)
11933                         }
11934                     }
11935 
11936                     If (LEqual (Arg1, 0x02))
11937                     {
11938                         If (\H8DR)
11939                         {
11940                             If (And (HAMA, 0x01))
11941                             {
11942                                 Store (0x01, Local0)
11943                             }
11944                         }
11945                         Else
11946                         {
11947                             If (And (\RBEC (0x1A), 0x01))
11948                             {
11949                                 Store (0x01, Local0)
11950                             }
11951                         }
11952                     }
11953                 }
11954 
11955                 If (LEqual (Arg0, 0x02))
11956                 {
11957                     If (LEqual (Arg1, 0x01))
11958                     {
11959                         If (\H8DR)
11960                         {
11961                             Or (HAMB, 0x01, HAMB)
11962                         }
11963                         Else
11964                         {
11965                             \MBEC (0x1B, 0xFF, 0x01)
11966                         }
11967 
11968                         Store (0x01, Local0)
11969                     }
11970 
11971                     If (LEqual (Arg1, 0x00))
11972                     {
11973                         If (\H8DR)
11974                         {
11975                             And (HAMB, 0xFE, HAMB)
11976                         }
11977                         Else
11978                         {
11979                             \MBEC (0x1B, 0xFE, 0x00)
11980                         }
11981                     }
11982 
11983                     If (LEqual (Arg1, 0x02))
11984                     {
11985                         If (\H8DR)
11986                         {
11987                             If (And (HAMB, 0x01))
11988                             {
11989                                 Store (0x01, Local0)
11990                             }
11991                         }
11992                         Else
11993                         {
11994                             If (And (\RBEC (0x1B), 0x01))
11995                             {
11996                                 Store (0x01, Local0)
11997                             }
11998                         }
11999                     }
12000                 }
12001 
12002                 Return (Local0)
12003             }
12004 
12005             Method (DDWK, 1, NotSerialized)
12006             {
12007                 Store (0x00, Local0)
12008                 If (LEqual (Arg0, 0x01))
12009                 {
12010                     If (\H8DR)
12011                     {
12012                         Store (One, HWDK)
12013                     }
12014                     Else
12015                     {
12016                         \MBEC (0x32, 0xFF, 0x08)
12017                     }
12018 
12019                     Store (0x01, Local0)
12020                 }
12021 
12022                 If (LEqual (Arg0, 0x00))
12023                 {
12024                     If (\H8DR)
12025                     {
12026                         Store (Zero, HWDK)
12027                     }
12028                     Else
12029                     {
12030                         \MBEC (0x32, 0xF7, 0x00)
12031                     }
12032                 }
12033 
12034                 If (LEqual (Arg0, 0x02))
12035                 {
12036                     If (\H8DR)
12037                     {
12038                         If (HWDK)
12039                         {
12040                             Store (0x01, Local0)
12041                         }
12042                     }
12043                     Else
12044                     {
12045                         If (And (\RBEC (0x32), 0x08))
12046                         {
12047                             Store (0x01, Local0)
12048                         }
12049                     }
12050                 }
12051 
12052                 Return (Local0)
12053             }
12054         }
12055 
12056         Scope (\_SB.PCI0.LPC.EC)
12057         {
12058             Name (SLID, 0xFFFFFFFF)
12059             Name (SIDB, 0xFFFFFFFF)
12060             Name (SFLG, 0x00)
12061             Name (SUCT, 0x00)
12062             Name (SHKE, 0x00)
12063             Name (IFLG, 0x00)
12064             Method (SLBN, 0, NotSerialized)
12065             {
12066                 Return (0x03)
12067             }
12068 
12069             Method (SLUD, 0, NotSerialized)
12070             {
12071                 Return (0x00)
12072             }
12073 
12074             Method (SSTA, 0, NotSerialized)
12075             {
12076                 SUDK ()
12077                 SUDT ()
12078                 If (LEqual (GSID (), 0x03))
12079                 {
12080                     Store (0x0F, Local0)
12081                 }
12082                 Else
12083                 {
12084                     If (LNot (\W98F))
12085                     {
12086                         Store (0x00, Local0)
12087                     }
12088                     Else
12089                     {
12090                         Store (0x0C, Local0)
12091                     }
12092                 }
12093 
12094                 If (\W98F)
12095                 {
12096                     Store (HIDS (Local0), Local0)
12097                 }
12098 
12099                 Return (Local0)
12100             }
12101 
12102             Method (SINI, 0, NotSerialized)
12103             {
12104                 If (LEqual (GSID (), 0x03))
12105                 {
12106                     If (LNot (IFLG))
12107                     {
12108                         Store (0x01, ES07)
12109                     }
12110 
12111                     Or (SFLG, 0x0400, SFLG)
12112                 }
12113                 Else
12114                 {
12115                     And (SFLG, Not (0x0400), SFLG)
12116                 }
12117 
12118                 Store (0x01, IFLG)
12119             }
12120 
12121             Method (SPTS, 1, NotSerialized)
12122             {
12123                 If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
12124                 {
12125                     Store (0x00, SHKE)
12126                     Store (0x00, SIDB)
12127                     Store (Zero, \_SB.PCI0.LPC.GO16)
12128                     If (LEqual (Arg0, 0x03))
12129                     {
12130                         Store (0x80, \_SB.PCI0.LPC.GER0)
12131                     }
12132 
12133                     If (And (SFLG, 0x02))
12134                     {
12135                         Store (0x00, SLID)
12136                         And (SFLG, Not (0x02), SFLG)
12137                     }
12138 
12139                     If (LEqual (GSID (), 0x03))
12140                     {
12141                         If (LEqual (Arg0, 0x03))
12142                         {
12143                             \_SB.PCI0.LPC.EC.DDWK (0x01)
12144                         }
12145 
12146                         Store (0x03, SIDB)
12147                     }
12148 
12149                     Or (SFLG, 0x0100, SFLG)
12150                 }
12151             }
12152 
12153             Method (SWAK, 1, NotSerialized)
12154             {
12155                 Store (0xFFFFFFFF, SLID)
12156                 If (LAnd (LGreaterEqual (Arg0, 0x01), LLessEqual (Arg0, 0x04)))
12157                 {
12158                     If (LEqual (SIDB, 0x03))
12159                     {
12160                         If (LEqual (GSID (), 0x03))
12161                         {
12162                             LED (0x03, 0x80)
12163                             ShiftLeft (Arg0, 0x08, SHKE)
12164                             If (LEqual (Arg0, 0x03))
12165                             {
12166                                 Store (One, \_SB.PCI0.LPC.GO16)
12167                                 Store (0x82, \_SB.PCI0.LPC.GER0)
12168                             }
12169 
12170                             If (LEqual (Arg0, 0x04))
12171                             {
12172                                 Store (0x01, ES07)
12173                             }
12174                         }
12175                         Else
12176                         {
12177                             GUSB (0x00)
12178                             Notify (\_SB.GDCK, 0x00)
12179                             And (SFLG, Not (0x0400), SFLG)
12180                         }
12181                     }
12182                     Else
12183                     {
12184                         If (LEqual (GSID (), 0x03))
12185                         {
12186                             ASSI (0x00)
12187                             Sleep (0x64)
12188                             If (LNotEqual (\_SB.PCI0.LPC.SIOD, 0xFF))
12189                             {
12190                                 WSDK ()
12191                             }
12192                         }
12193                         Else
12194                         {
12195                             Noop
12196                         }
12197                     }
12198 
12199                     Store (THRI, Local1)
12200                     Store (0xF0, Local2)
12201                     Store (Or (Local2, Local1), ATMX)
12202                     Sleep (0x64)
12203                     And (SFLG, Not (0x0100), SFLG)
12204                     And (SFLG, Not (0x02), SFLG)
12205                     And (SFLG, Not (0x10), SFLG)
12206                     And (SFLG, Not (0x20), SFLG)
12207                 }
12208 
12209                 Store (0x00, HB1I)
12210             }
12211 
12212             Method (SGPE, 0, NotSerialized)
12213             {
12214                 Or (SFLG, 0x08, SFLG)
12215             }
12216 
12217             Method (SDCK, 1, NotSerialized)
12218             {
12219                 If (\H8DR)
12220                 {
12221                     If (Arg0)
12222                     {
12223                         Sleep (0x64)
12224                         If (LNot (BXCN))
12225                         {
12226                             BSCN ()
12227                         }
12228 
12229                         \_SB.PCI0.LPC.EC.DATT (0x01, 0x01)
12230                         Store (0x00, HB1I)
12231                         Or (SFLG, 0x0400, SFLG)
12232                     }
12233                     Else
12234                     {
12235                         Or (SFLG, 0x02, SFLG)
12236                         GUSB (0x00)
12237                         Store (0x01, HB1I)
12238                         If (\WNTF)
12239                         {
12240                             Store (0x00, \_SB.PCI0.LPC.EC.BAT1.B1ST)
12241                             Store (0x00, \_SB.PCI0.LPC.EC.BAT1.XB1S)
12242                             Store (0x00, \_SB.PCI0.LPC.EC.BAT2.B2ST)
12243                             Store (0x00, \_SB.PCI0.LPC.EC.BAT2.XB2S)
12244                         }
12245 
12246                         BEJ0 (0x01)
12247                         If (BXCN)
12248                         {
12249                             Notify (\_SB.SWAP, 0x82)
12250                         }
12251 
12252                         \_SB.PCI0.LPC.EC.DATT (0x01, 0x00)
12253                         And (SFLG, Not (0x0400), SFLG)
12254                     }
12255                 }
12256 
12257                 Return (0x01)
12258             }
12259 
12260             Method (SEJ0, 1, NotSerialized)
12261             {
12262                 Store (0x00, SLID)
12263                 If (Arg0)
12264                 {
12265                     ASSI (0x01)
12266                 }
12267 
12268                 LED (0x03, 0x00)
12269                 SUDI ()
12270                 And (SFLG, Not (0x02), SFLG)
12271             }
12272 
12273             Method (SEJ3, 1, NotSerialized)
12274             {
12275                 Or (SFLG, 0x10, SFLG)
12276                 If (LEqual (\SPS, 0x03))
12277                 {
12278                     PSE3 ()
12279                 }
12280             }
12281 
12282             Method (SEJ4, 1, NotSerialized)
12283             {
12284                 Or (SFLG, 0x20, SFLG)
12285             }
12286 
12287             Method (PSE3, 0, NotSerialized)
12288             {
12289                 If (And (SFLG, 0x10))
12290                 {
12291                     LED (0x03, 0x00)
12292                 }
12293             }
12294 
12295             Name (SHDE, 0x00)
12296             Method (WSDK, 0, NotSerialized)
12297             {
12298                 If (And (SFLG, Or (0x10, 0x20)))
12299                 {
12300                     SDCK (0x01)
12301                     If (\W98F)
12302                     {
12303                         Or (SFLG, 0x0200, SFLG)
12304                         Store (0x05, SHDE)
12305                     }
12306                 }
12307                 Else
12308                 {
12309                     Notify (\_SB.GDCK, 0x00)
12310                 }
12311             }
12312 
12313             Method (HIDS, 1, NotSerialized)
12314             {
12315                 Store (Arg0, Local0)
12316                 If (And (SFLG, 0x0200))
12317                 {
12318                     If (LEqual (Arg0, 0x0F))
12319                     {
12320                         If (\W98F)
12321                         {
12322                             Store (0x0C, Local0)
12323                         }
12324 
12325                         Decrement (SHDE)
12326                         If (LNot (SHDE))
12327                         {
12328                             And (SFLG, Not (0x0200), SFLG)
12329                             Notify (\_SB.GDCK, 0x00)
12330                         }
12331                     }
12332                     Else
12333                     {
12334                         And (SFLG, Not (0x0200), SFLG)
12335                     }
12336                 }
12337 
12338                 Return (Local0)
12339             }
12340 
12341             Method (SUDK, 0, NotSerialized)
12342             {
12343                 If (And (SFLG, 0x08))
12344                 {
12345                     If (LNot (And (SFLG, 0x0100)))
12346                     {
12347                         Or (SHKE, 0x2004, SHKE)
12348                         If (LEqual (\UOPT, 0x00))
12349                         {
12350                             \_SB.PCI0.LPC.EC.HKEY.MHKQ (SHKE)
12351                         }
12352 
12353                         If (\W98F)
12354                         {
12355                             Notify (\_SB.GDCK, 0x01)
12356                         }
12357                         Else
12358                         {
12359                             Notify (\_SB.GDCK, 0x03)
12360                         }
12361 
12362                         And (SFLG, Not (0x08), SFLG)
12363                     }
12364                 }
12365             }
12366 
12367             Method (SUDI, 0, NotSerialized)
12368             {
12369                 If (\WNTF)
12370                 {
12371                     Store (0x01, SUCT)
12372                 }
12373                 Else
12374                 {
12375                     Store (0x05, SUCT)
12376                 }
12377             }
12378 
12379             Method (SUDT, 0, NotSerialized)
12380             {
12381                 If (And (SHKE, 0x2004))
12382                 {
12383                     If (LEqual (GSID (), 0x00))
12384                     {
12385                         If (LNot (Decrement (SUCT)))
12386                         {
12387                             Store (0x00, SHKE)
12388                             If (LEqual (\UOPT, 0x00))
12389                             {
12390                                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x4003)
12391                             }
12392                         }
12393                     }
12394                 }
12395             }
12396 
12397             Method (GSID, 0, NotSerialized)
12398             {
12399                 If (LEqual (SLID, 0xFFFFFFFF))
12400                 {
12401                     Store (0xFFFFFFFF, \_SB.GDCK.G_ID)
12402                     If (LEqual (\_SB.GDCK.GGID (), 0x03))
12403                     {
12404                         Store (0x03, SLID)
12405                     }
12406                     Else
12407                     {
12408                         Store (0x00, SLID)
12409                     }
12410                 }
12411 
12412                 Return (SLID)
12413             }
12414 
12415             Method (SPEJ, 0, NotSerialized)
12416             {
12417                 LED (0x03, 0x00)
12418                 Sleep (0xC8)
12419                 LED (0x03, 0x80)
12420                 Sleep (0xC8)
12421                 LED (0x03, 0x00)
12422                 Sleep (0xC8)
12423                 LED (0x03, 0x80)
12424                 Sleep (0xC8)
12425                 LED (0x03, 0x00)
12426                 Sleep (0xC8)
12427                 LED (0x03, 0x80)
12428             }
12429         }
12430 
12431         Scope (\_SB.PCI0.LPC.EC)
12432         {
12433             Method (RPTS, 1, NotSerialized)
12434             {
12435                 Noop
12436             }
12437 
12438             Method (RWAK, 1, NotSerialized)
12439             {
12440             }
12441         }
12442 
12443         Scope (\_SB.PCI0.LPC.EC)
12444         {
12445             Method (_Q43, 0, NotSerialized)  // _Qxx: EC Query
12446             {
12447                 \UCMS (0x18)
12448             }
12449 
12450             Method (SAUM, 1, NotSerialized)
12451             {
12452                 If (LGreater (Arg0, 0x03))
12453                 {
12454                     Noop
12455                 }
12456                 Else
12457                 {
12458                     If (\H8DR)
12459                     {
12460                         Store (Arg0, HAUM)
12461                     }
12462                     Else
12463                     {
12464                         \MBEC (0x03, 0x9F, ShiftLeft (Arg0, 0x05))
12465                     }
12466                 }
12467             }
12468         }
12469 
12470         Scope (\_SB.PCI0.LPC.EC)
12471         {
12472             Name (BRTB, Package (0x02)
12473             {
12474                 Package (0x10)
12475                 {
12476                     0x27, 
12477                     0x36, 
12478                     0x48, 
12479                     0x56, 
12480                     0x64, 
12481                     0x70, 
12482                     0x7C, 
12483                     0x87, 
12484                     0x93, 
12485                     0x9F, 
12486                     0xAB, 
12487                     0xBA, 
12488                     0xC9, 
12489                     0xD9, 
12490                     0xEE, 
12491                     0xFF
12492                 }, 
12493 
12494                 Package (0x10)
12495                 {
12496                     0x27, 
12497                     0x34, 
12498                     0x3E, 
12499                     0x48, 
12500                     0x52, 
12501                     0x5B, 
12502                     0x64, 
12503                     0x6D, 
12504                     0x77, 
12505                     0x7F, 
12506                     0x88, 
12507                     0x90, 
12508                     0x98, 
12509                     0xA0, 
12510                     0xA9, 
12511                     0xB2
12512                 }
12513             })
12514             Name (BRTF, 0x01)
12515             Method (_Q14, 0, NotSerialized)  // _Qxx: EC Query
12516             {
12517                 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x8000))
12518                 {
12519                     \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1010)
12520                 }
12521 
12522                 If (\NBCF)
12523                 {
12524                     If (\VIGD)
12525                     {
12526                         Notify (\_SB.PCI0.VID.LCD0, 0x86)
12527                     }
12528                     Else
12529                     {
12530                         Notify (\_SB.PCI0.AGP.VID.LCD0, 0x86)
12531                     }
12532                 }
12533                 Else
12534                 {
12535                     If (\VIGD)
12536                     {
12537                         Store (\UCMS (0x15), \BRLV)
12538                         Store (\BRLV, Local0)
12539                         If (LNotEqual (Local0, 0x0F))
12540                         {
12541                             Increment (Local0)
12542                             Store (Local0, \BRLV)
12543                         }
12544 
12545                         \_SB.PCI0.LPC.EC.BRNS ()
12546                         \UCMS (0x16)
12547                     }
12548                     Else
12549                     {
12550                         \UCMS (0x04)
12551                     }
12552                 }
12553             }
12554 
12555             Method (_Q15, 0, NotSerialized)  // _Qxx: EC Query
12556             {
12557                 If (\VCDB)
12558                 {
12559                     Store (0x00, \VCDB)
12560                     Store (\UCMS (0x15), \BRLV)
12561                     \_SB.PCI0.LPC.EC.BRNS ()
12562                     \UCMS (0x16)
12563                     Return (0x00)
12564                 }
12565 
12566                 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00010000))
12567                 {
12568                     \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1011)
12569                 }
12570 
12571                 If (\NBCF)
12572                 {
12573                     If (\VIGD)
12574                     {
12575                         Notify (\_SB.PCI0.VID.LCD0, 0x87)
12576                     }
12577                     Else
12578                     {
12579                         Notify (\_SB.PCI0.AGP.VID.LCD0, 0x87)
12580                     }
12581                 }
12582                 Else
12583                 {
12584                     If (\VIGD)
12585                     {
12586                         Store (\UCMS (0x15), \BRLV)
12587                         Store (\BRLV, Local0)
12588                         If (Local0)
12589                         {
12590                             Decrement (Local0)
12591                             Store (Local0, \BRLV)
12592                         }
12593 
12594                         \_SB.PCI0.LPC.EC.BRNS ()
12595                         \UCMS (0x16)
12596                     }
12597                     Else
12598                     {
12599                         \UCMS (0x05)
12600                     }
12601                 }
12602             }
12603 
12604             Method (BRNS, 0, NotSerialized)
12605             {
12606                 Store (\BRLV, Local0)
12607                 Store (0x00, Local1)
12608                 If (\BRHB)
12609                 {
12610                     If (LNot (\_SB.PCI0.LPC.EC.AC._PSR ()))
12611                     {
12612                         Store (0x01, Local1)
12613                     }
12614                 }
12615 
12616                 Store (DerefOf (Index (DerefOf (Index (BRTB, Local1)), Local0)), 
12617                     Local2)
12618                 \_SB.PCI0.VID.AINT (0x01, Local2)
12619             }
12620 
12621             Method (BRTO, 1, NotSerialized)
12622             {
12623                 If (BRTF)
12624                 {
12625                     Store (Arg0, Local0)
12626                     While (LGreater (Local0, 0x01))
12627                     {
12628                         If (LEqual (\BRFQ, 0x01))
12629                         {
12630                             Sleep (0x64)
12631                             Decrement (Local0)
12632                         }
12633                         Else
12634                         {
12635                             If (LEqual (\BRFQ, 0x03))
12636                             {
12637                                 Sleep (0x64)
12638                                 Decrement (Local0)
12639                             }
12640                             Else
12641                             {
12642                                 Store (0x00, Local0)
12643                             }
12644                         }
12645                     }
12646                 }
12647             }
12648 
12649             Method (BRTT, 0, NotSerialized)
12650             {
12651                 If (\VIGD)
12652                 {
12653                     Store (\BRLV, Local0)
12654                     If (LEqual (Local0, 0x00))
12655                     {
12656                         If (LNotEqual (\BRFQ, 0x02))
12657                         {
12658                             If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x080C))
12659                             {
12660                                 Store (0x01, \BRFQ)
12661                                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5010)
12662                             }
12663                         }
12664                     }
12665                     Else
12666                     {
12667                         If (LNotEqual (\BRFQ, 0x00))
12668                         {
12669                             If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x080C))
12670                             {
12671                                 Store (0x03, \BRFQ)
12672                                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x5010)
12673                             }
12674                         }
12675                     }
12676                 }
12677             }
12678         }
12679 
12680         Scope (\_SB.PCI0.LPC.EC)
12681         {
12682             Method (_Q19, 0, NotSerialized)  // _Qxx: EC Query
12683             {
12684                 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00800000))
12685                 {
12686                     \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1018)
12687                 }
12688 
12689                 \UCMS (0x03)
12690             }
12691         }
12692 
12693         Scope (\_SB.PCI0.LPC.EC)
12694         {
12695             Method (_Q63, 0, NotSerialized)  // _Qxx: EC Query
12696             {
12697                 If (\_SB.PCI0.LPC.EC.HKEY.MHKK (0x00080000))
12698                 {
12699                     \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x1014)
12700                 }
12701 
12702                 \UCMS (0x0B)
12703             }
12704         }
12705 
12706         Scope (\_SB.PCI0.LPC.EC)
12707         {
12708             Method (_Q70, 0, NotSerialized)  // _Qxx: EC Query
12709             {
12710                 FNST ()
12711             }
12712 
12713             Method (_Q72, 0, NotSerialized)  // _Qxx: EC Query
12714             {
12715                 FNST ()
12716             }
12717 
12718             Method (_Q73, 0, NotSerialized)  // _Qxx: EC Query
12719             {
12720                 FNST ()
12721             }
12722 
12723             Method (FNST, 0, NotSerialized)
12724             {
12725                 If (\H8DR)
12726                 {
12727                     Store (HFNS, Local0)
12728                     Store (HFNE, Local1)
12729                 }
12730                 Else
12731                 {
12732                     And (\RBEC (0x0E), 0x03, Local0)
12733                     And (\RBEC (0x00), 0x08, Local1)
12734                 }
12735 
12736                 If (Local1)
12737                 {
12738                     If (LEqual (Local0, 0x00))
12739                     {
12740                         \UCMS (0x11)
12741                     }
12742 
12743                     If (LEqual (Local0, 0x01))
12744                     {
12745                         \UCMS (0x0F)
12746                     }
12747 
12748                     If (LEqual (Local0, 0x02))
12749                     {
12750                         \UCMS (0x10)
12751                     }
12752                 }
12753             }
12754         }
12755 
12756         Scope (\_SB.PCI0.LPC.EC.HKEY)
12757         {
12758             Name (WGFL, 0x00)
12759             Method (WLSW, 0, NotSerialized)
12760             {
12761                 Return (\_SB.PCI0.LPC.EC.GSTS)
12762             }
12763 
12764             Method (GWAN, 0, NotSerialized)
12765             {
12766                 Store (0x00, Local0)
12767                 If (And (WGFL, 0x01))
12768                 {
12769                     Or (Local0, 0x01, Local0)
12770                 }
12771 
12772                 If (And (WGFL, 0x08))
12773                 {
12774                     Return (Local0)
12775                 }
12776 
12777                 If (WPWS ())
12778                 {
12779                     Or (Local0, 0x02, Local0)
12780                 }
12781 
12782                 If (And (WGFL, 0x04))
12783                 {
12784                     Or (Local0, 0x04, Local0)
12785                 }
12786 
12787                 Return (Local0)
12788             }
12789 
12790             Method (SWAN, 1, NotSerialized)
12791             {
12792                 If (And (Arg0, 0x02))
12793                 {
12794                     WPWC (0x01)
12795                 }
12796                 Else
12797                 {
12798                     WPWC (0x00)
12799                 }
12800 
12801                 If (And (Arg0, 0x04))
12802                 {
12803                     Or (WGFL, 0x04, WGFL)
12804                     \WGSV (0x02)
12805                 }
12806                 Else
12807                 {
12808                     And (WGFL, Not (0x04), WGFL)
12809                     \WGSV (0x03)
12810                 }
12811             }
12812 
12813             Method (GBDC, 0, NotSerialized)
12814             {
12815                 Store (0x00, Local0)
12816                 If (And (WGFL, 0x10))
12817                 {
12818                     Or (Local0, 0x01, Local0)
12819                 }
12820 
12821                 If (And (WGFL, 0x80))
12822                 {
12823                     Return (Local0)
12824                 }
12825 
12826                 If (BPWS ())
12827                 {
12828                     Or (Local0, 0x02, Local0)
12829                 }
12830 
12831                 If (And (WGFL, 0x40))
12832                 {
12833                     Or (Local0, 0x04, Local0)
12834                 }
12835 
12836                 Return (Local0)
12837             }
12838 
12839             Method (SBDC, 1, NotSerialized)
12840             {
12841                 If (And (Arg0, 0x02))
12842                 {
12843                     BPWC (0x01)
12844                 }
12845                 Else
12846                 {
12847                     BPWC (0x00)
12848                 }
12849 
12850                 If (And (Arg0, 0x04))
12851                 {
12852                     Or (WGFL, 0x40, WGFL)
12853                     \BLTH (0x02)
12854                 }
12855                 Else
12856                 {
12857                     And (WGFL, Not (0x40), WGFL)
12858                     \BLTH (0x03)
12859                 }
12860             }
12861 
12862             Method (WPWS, 0, NotSerialized)
12863             {
12864                 If (\H8DR)
12865                 {
12866                     Store (\_SB.PCI0.LPC.EC.DCWW, Local0)
12867                 }
12868                 Else
12869                 {
12870                     Store (ShiftRight (And (\RBEC (0x3A), 0x40), 0x06), Local0)
12871                 }
12872 
12873                 Return (Local0)
12874             }
12875 
12876             Method (WTGL, 0, NotSerialized)
12877             {
12878                 If (And (WGFL, 0x01))
12879                 {
12880                     WPWC (LNot (WPWS ()))
12881                 }
12882             }
12883 
12884             Method (WPWC, 1, NotSerialized)
12885             {
12886                 If (LAnd (Arg0, LAnd (And (WGFL, 0x01), LNot (And (
12887                     WGFL, 0x08)))))
12888                 {
12889                     If (\H8DR)
12890                     {
12891                         Store (One, \_SB.PCI0.LPC.EC.DCWW)
12892                     }
12893                     Else
12894                     {
12895                         \MBEC (0x3A, 0xFF, 0x40)
12896                     }
12897 
12898                     Or (WGFL, 0x02, WGFL)
12899                 }
12900                 Else
12901                 {
12902                     If (\H8DR)
12903                     {
12904                         Store (Zero, \_SB.PCI0.LPC.EC.DCWW)
12905                     }
12906                     Else
12907                     {
12908                         \MBEC (0x3A, 0xBF, 0x00)
12909                     }
12910 
12911                     And (WGFL, Not (0x02), WGFL)
12912                 }
12913             }
12914 
12915             Method (BPWS, 0, NotSerialized)
12916             {
12917                 If (\H8DR)
12918                 {
12919                     Store (\_SB.PCI0.LPC.EC.DCBD, Local0)
12920                 }
12921                 Else
12922                 {
12923                     Store (ShiftRight (And (\RBEC (0x3A), 0x10), 0x04), Local0)
12924                 }
12925 
12926                 Return (Local0)
12927             }
12928 
12929             Method (BTGL, 0, NotSerialized)
12930             {
12931                 If (And (WGFL, 0x10))
12932                 {
12933                     BPWC (LNot (BPWS ()))
12934                 }
12935             }
12936 
12937             Method (BPWC, 1, NotSerialized)
12938             {
12939                 If (LAnd (Arg0, LAnd (And (WGFL, 0x10), LNot (And (
12940                     WGFL, 0x80)))))
12941                 {
12942                     If (\H8DR)
12943                     {
12944                         Store (One, \_SB.PCI0.LPC.EC.DCBD)
12945                     }
12946                     Else
12947                     {
12948                         \MBEC (0x3A, 0xFF, 0x10)
12949                     }
12950 
12951                     Or (WGFL, 0x20, WGFL)
12952                 }
12953                 Else
12954                 {
12955                     If (\H8DR)
12956                     {
12957                         Store (Zero, \_SB.PCI0.LPC.EC.DCBD)
12958                     }
12959                     Else
12960                     {
12961                         \MBEC (0x3A, 0xEF, 0x00)
12962                     }
12963 
12964                     And (WGFL, Not (0x20), WGFL)
12965                 }
12966             }
12967 
12968             Method (WGIN, 0, NotSerialized)
12969             {
12970                 Store (0x00, WGFL)
12971                 Store (\WGSV (0x01), WGFL)
12972                 If (WPWS ())
12973                 {
12974                     Or (WGFL, 0x02, WGFL)
12975                 }
12976 
12977                 If (BPWS ())
12978                 {
12979                     Or (WGFL, 0x20, WGFL)
12980                 }
12981             }
12982 
12983             Method (WGPS, 1, NotSerialized)
12984             {
12985                 If (LGreaterEqual (Arg0, 0x04))
12986                 {
12987                     \BLTH (0x05)
12988                 }
12989 
12990                 If (LNot (And (WGFL, 0x04)))
12991                 {
12992                     WPWC (0x00)
12993                 }
12994 
12995                 If (LNot (And (WGFL, 0x40)))
12996                 {
12997                     BPWC (0x00)
12998                 }
12999             }
13000 
13001             Method (WGWK, 1, NotSerialized)
13002             {
13003                 If (And (WGFL, 0x20))
13004                 {
13005                     BPWC (0x01)
13006                 }
13007 
13008                 If (And (WGFL, 0x02))
13009                 {
13010                     WPWC (0x01)
13011                 }
13012             }
13013         }
13014 
13015         Scope (\_SB.PCI0.LPC.EC)
13016         {
13017             Method (_Q41, 0, NotSerialized)  // _Qxx: EC Query
13018             {
13019                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x7000)
13020             }
13021         }
13022     }
13023 
13024     Scope (\_SB.PCI0.IDE0.PRIM)
13025     {
13026         Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
13027     }
13028 
13029     Scope (\_SB.PCI0.LPC.EC.BAT1)
13030     {
13031         Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
13032     }
13033 
13034     Scope (\_SB.PCI0.USB4.URTH.UPDK)
13035     {
13036         Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
13037     }
13038 
13039     Scope (\_SB.PCI0.EHC1.URTH.UPDK)
13040     {
13041         Name (_EJD, "_SB.GDCK")  // _EJD: Ejection Dependent Device
13042     }
13043 
13044     Name (\_S0, Package (0x04)  // _S0_: S0 System State
13045     {
13046         0x00, 
13047         0x00, 
13048         0x00, 
13049         0x00
13050     })
13051     Name (\_S3, Package (0x04)  // _S3_: S3 System State
13052     {
13053         0x05, 
13054         0x05, 
13055         0x00, 
13056         0x00
13057     })
13058     Name (\_S4, Package (0x04)  // _S4_: S4 System State
13059     {
13060         0x06, 
13061         0x06, 
13062         0x00, 
13063         0x00
13064     })
13065     Name (\_S5, Package (0x04)  // _S5_: S5 System State
13066     {
13067         0x07, 
13068         0x07, 
13069         0x00, 
13070         0x00
13071     })
13072     Method (\_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
13073     {
13074         Store (0x01, Local0)
13075         If (LEqual (Arg0, \SPS))
13076         {
13077             Store (0x00, Local0)
13078         }
13079 
13080         If (LOr (LEqual (Arg0, 0x00), LGreaterEqual (Arg0, 0x06)))
13081         {
13082             Store (0x00, Local0)
13083         }
13084 
13085         If (Local0)
13086         {
13087             Store (Arg0, \SPS)
13088             \_SB.PCI0.LPC.EC.HKEY.MHKE (0x00)
13089             If (\_SB.PCI0.LPC.EC.KBLT)
13090             {
13091                 \UCMS (0x0D)
13092             }
13093 
13094             If (LEqual (Arg0, 0x01))
13095             {
13096                 Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
13097                 Store (0x00, \_SB.PCI0.LPC.EC.HFNI)
13098                 Store (0x00, \_SB.PCI0.LPC.EC.HFSP)
13099             }
13100 
13101             If (LEqual (Arg0, 0x03))
13102             {
13103                 \VVPD (0x03)
13104                 \TRAP ()
13105                 Store (\_SB.PCI0.LPC.EC.AC._PSR (), \ACST)
13106             }
13107 
13108             If (LEqual (Arg0, 0x04))
13109             {
13110                 \_SB.SLPB._PSW (0x00)
13111                 If (\SPEN)
13112                 {
13113                     \STEP (0x07)
13114                 }
13115 
13116                 \TRAP ()
13117             }
13118 
13119             If (LEqual (Arg0, 0x05))
13120             {
13121                 \TRAP ()
13122             }
13123 
13124             \_SB.PCI0.LPC.EC.BPTS (Arg0)
13125             If (LGreaterEqual (Arg0, 0x04))
13126             {
13127                 Store (0x00, \_SB.PCI0.LPC.EC.HWLB)
13128             }
13129             Else
13130             {
13131                 Store (0x01, \_SB.PCI0.LPC.EC.HWLB)
13132             }
13133 
13134             If (LNotEqual (Arg0, 0x05))
13135             {
13136                 Store (0x01, \_SB.PCI0.LPC.EC.HCMU)
13137                 \_SB.GDCK.GPTS (Arg0)
13138                 If (\W98F)
13139                 {
13140                     \CBRI ()
13141                 }
13142             }
13143 
13144             \_SB.PCI0.LPC.EC.HKEY.WGPS (Arg0)
13145         }
13146     }
13147 
13148     Name (WAKI, Package (0x02)
13149     {
13150         0x00, 
13151         0x00
13152     })
13153     Method (\_WAK, 1, NotSerialized)  // _WAK: Wake
13154     {
13155         If (LOr (LEqual (Arg0, 0x00), LGreaterEqual (Arg0, 0x05)))
13156         {
13157             Return (WAKI)
13158         }
13159 
13160         Store (0x00, \SPS)
13161         Store (0x00, \_SB.PCI0.LPC.EC.HCMU)
13162         Store (0x80, \_SB.PCI0.LPC.EC.HFSP)
13163         \_SB.PCI0.LPC.EC.EVNT (0x01)
13164         \_SB.PCI0.LPC.EC.HKEY.MHKE (0x01)
13165         \_SB.PCI0.LPC.EC.FNST ()
13166         \UCMS (0x0D)
13167         Store (0x00, \LIDB)
13168         \_SB.PCI0.IGBE.ABWA (0x00)
13169         If (LEqual (Arg0, 0x01))
13170         {
13171             Store (\_SB.PCI0.LPC.EC.HFNI, \FNID)
13172         }
13173 
13174         If (LEqual (Arg0, 0x03))
13175         {
13176             THRM (0x00)
13177             If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
13178             {
13179                 If (\_SB.PCI0.LPC.EC.AC._PSR ())
13180                 {
13181                     Store (0x00, \C4AC)
13182                 }
13183                 Else
13184                 {
13185                     Store (0x01, \C4AC)
13186                 }
13187             }
13188 
13189             If (\OSC4)
13190             {
13191                 Store (0x00, \_SB.PCI0.LPC.C4C3)
13192                 Notify (\_PR.CPU0, 0x81)
13193                 If (\MPEN)
13194                 {
13195                     Notify (\_PR.CPU1, 0x81)
13196                 }
13197             }
13198             Else
13199             {
13200                 If (\WNTF)
13201                 {
13202                     If (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00))
13203                     {
13204                         Store (0x00, \_SB.PCI0.LPC.C4C3)
13205                     }
13206                     Else
13207                     {
13208                         Store (0x01, \_SB.PCI0.LPC.C4C3)
13209                     }
13210                 }
13211             }
13212 
13213             If (LNotEqual (\ACST, \_SB.PCI0.LPC.EC.AC._PSR ()))
13214             {
13215                 \_SB.PCI0.LPC.EC.ATMC ()
13216             }
13217 
13218             If (LAnd (\WXPF, LGreaterEqual (\WSPV, 0x01)))
13219             {
13220                 PPMS (0x02)
13221             }
13222 
13223             If (LAnd (And (\CFGD, 0x01000000), LAnd (\WXPF, LLessEqual (
13224                 \WSPV, 0x01))))
13225             {
13226                 If (And (\CFGD, 0xF0))
13227                 {
13228                     PPMS (0x00)
13229                 }
13230             }
13231 
13232             If (\VIGD)
13233             {
13234                 \_SB.PCI0.VID.GLIS (\_SB.LID._LID ())
13235                 Store (\_SB.GDCK.GGID (), Local0)
13236                 If (LOr (LEqual (Local0, 0x00), LEqual (Local0, 0x01)))
13237                 {
13238                     \_SB.PCI0.VID.GDCS (0x01)
13239                 }
13240                 Else
13241                 {
13242                     \_SB.PCI0.VID.GDCS (0x00)
13243                 }
13244 
13245                 If (\WVIS)
13246                 {
13247                     \VBTD ()
13248                 }
13249             }
13250         }
13251 
13252         If (LEqual (Arg0, 0x04))
13253         {
13254             \NVSS (0x00)
13255             If (DTSE)
13256             {
13257                 THRM (0x02)
13258             }
13259 
13260             If (\W98F)
13261             {
13262                 Notify (\_SB.SLPB, 0x02)
13263             }
13264 
13265             If (\WMEF)
13266             {
13267                 \_SB.PCI0.LPC.EC.BEEP (0x05)
13268             }
13269 
13270             If (LNot (\W98F))
13271             {
13272                 Store (0x00, \_SB.PCI0.LPC.EC.HSPA)
13273             }
13274 
13275             If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHC4))
13276             {
13277                 If (\_SB.PCI0.LPC.EC.AC._PSR ())
13278                 {
13279                     Store (0x00, \C4AC)
13280                 }
13281                 Else
13282                 {
13283                     Store (0x01, \C4AC)
13284                 }
13285             }
13286 
13287             If (\OSC4)
13288             {
13289                 Notify (\_PR.CPU0, 0x81)
13290                 If (\MPEN)
13291                 {
13292                     Notify (\_PR.CPU1, 0x81)
13293                 }
13294             }
13295             Else
13296             {
13297                 If (\WNTF)
13298                 {
13299                     If (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00))
13300                     {
13301                         Store (0x00, \_SB.PCI0.LPC.C4C3)
13302                     }
13303                     Else
13304                     {
13305                         Store (0x01, \_SB.PCI0.LPC.C4C3)
13306                     }
13307                 }
13308             }
13309 
13310             If (\SPEN)
13311             {
13312                 \STEP (0x08)
13313             }
13314 
13315             \_SB.PCI0.LPC.EC.ATMC ()
13316             If (LAnd (And (\CFGD, 0x01000000), LAnd (\WXPF, LLessEqual (
13317                 \WSPV, 0x01))))
13318             {
13319                 If (And (\CFGD, 0xF0))
13320                 {
13321                     PPMS (0x00)
13322                 }
13323             }
13324         }
13325 
13326         If (XOr (\_SB.PCI0.EXP3.PDS, \_SB.PCI0.EXP3.XCPF))
13327         {
13328             If (\_SB.PCI0.EXP3.PDS)
13329             {
13330                 Store (0x01, \_SB.PCI0.EXP3.XCPF)
13331             }
13332             Else
13333             {
13334                 Store (0x00, \_SB.PCI0.EXP3.XCPF)
13335             }
13336 
13337             Notify (\_SB.PCI0.EXP3, 0x00)
13338         }
13339 
13340         \_SB.GDCK.GWAK (Arg0)
13341         If (LEqual (\_SB.PCI0.LPC.EC.GSID (), 0x03))
13342         {
13343             \_SB.PCI0.LPC.EC.BWAK (Arg0)
13344         }
13345 
13346         \_SB.PCI0.LPC.EC.HKEY.WGWK (Arg0)
13347         Notify (\_TZ.THM0, 0x80)
13348         Notify (\_TZ.THM1, 0x80)
13349         \VSLD (\_SB.LID._LID ())
13350         If (\VIGD)
13351         {
13352             \_SB.PCI0.VID.GLIS (\_SB.LID._LID ())
13353         }
13354 
13355         If (LAnd (\W98F, LNot (\WMEF)))
13356         {
13357             Notify (\_SB.PCI0.USB0, 0x00)
13358             Notify (\_SB.PCI0.USB1, 0x00)
13359         }
13360 
13361         If (LLess (Arg0, 0x04))
13362         {
13363             If (And (\RRBF, 0x02))
13364             {
13365                 ShiftLeft (Arg0, 0x08, Local0)
13366                 Store (Or (0x2013, Local0), Local0)
13367                 \_SB.PCI0.LPC.EC.HKEY.MHKQ (Local0)
13368             }
13369         }
13370 
13371         If (LEqual (Arg0, 0x04))
13372         {
13373             Store (0x00, Local0)
13374             Store (\CSUM (0x00), Local1)
13375             If (LNotEqual (Local1, \CHKC))
13376             {
13377                 Store (0x01, Local0)
13378                 Store (Local1, \CHKC)
13379             }
13380 
13381             Store (\CSUM (0x01), Local1)
13382             If (LNotEqual (Local1, \CHKE))
13383             {
13384                 Store (0x01, Local0)
13385                 Store (Local1, \CHKE)
13386             }
13387 
13388             If (Local0)
13389             {
13390                 Notify (\_SB, 0x00)
13391             }
13392         }
13393 
13394         Store (Zero, \RRBF)
13395         Return (WAKI)
13396     }
13397 
13398     Scope (\_SI)
13399     {
13400         Method (_SST, 1, NotSerialized)  // _SST: System Status
13401         {
13402             If (LEqual (Arg0, 0x00))
13403             {
13404                 \_SB.PCI0.LPC.EC.LED (0x00, 0x00)
13405                 \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
13406             }
13407 
13408             If (LEqual (Arg0, 0x01))
13409             {
13410                 If (LOr (\SPS, \WNTF))
13411                 {
13412                     \_SB.PCI0.LPC.EC.BEEP (0x05)
13413                 }
13414 
13415                 \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
13416                 \_SB.PCI0.LPC.EC.LED (0x07, 0x00)
13417             }
13418 
13419             If (LEqual (Arg0, 0x02))
13420             {
13421                 \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
13422                 \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
13423             }
13424 
13425             If (LEqual (Arg0, 0x03))
13426             {
13427                 If (LGreater (\SPS, 0x03))
13428                 {
13429                     \_SB.PCI0.LPC.EC.BEEP (0x07)
13430                 }
13431                 Else
13432                 {
13433                     If (LEqual (\SPS, 0x03))
13434                     {
13435                         \_SB.PCI0.LPC.EC.BEEP (0x03)
13436                         \_SB.GDCK.PEJ3 ()
13437                     }
13438                     Else
13439                     {
13440                         \_SB.PCI0.LPC.EC.BEEP (0x04)
13441                     }
13442                 }
13443 
13444                 If (LEqual (\SPS, 0x03)) {}
13445                 Else
13446                 {
13447                     \_SB.PCI0.LPC.EC.LED (0x00, 0x80)
13448                 }
13449 
13450                 \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
13451             }
13452 
13453             If (LEqual (Arg0, 0x04))
13454             {
13455                 \_SB.PCI0.LPC.EC.BEEP (0x03)
13456                 \_SB.PCI0.LPC.EC.LED (0x07, 0xC0)
13457             }
13458         }
13459     }
13460 
13461     Scope (\_GPE)
13462     {
13463         Method (_L18, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
13464         {
13465             Store (\_SB.PCI0.LPC.EC.HWAK, Local0)
13466             Store (Local0, \RRBF)
13467             Sleep (0x0A)
13468             If (And (Local0, 0x02)) {}
13469             If (And (Local0, 0x04))
13470             {
13471                 If (\W98F)
13472                 {
13473                     Notify (\_SB.SLPB, 0x02)
13474                 }
13475                 Else
13476                 {
13477                     Notify (\_SB.LID, 0x02)
13478                 }
13479             }
13480 
13481             If (And (Local0, 0x10))
13482             {
13483                 And (Local0, 0xF7, Local0)
13484                 Notify (\_SB.SLPB, 0x02)
13485             }
13486 
13487             If (And (Local0, 0x08))
13488             {
13489                 \_SB.GDCK.GGPE ()
13490                 Notify (\_SB.SLPB, 0x02)
13491             }
13492 
13493             If (And (Local0, 0x10))
13494             {
13495                 Notify (\_SB.SLPB, 0x02)
13496             }
13497 
13498             If (And (Local0, 0x40)) {}
13499             If (And (Local0, 0x80))
13500             {
13501                 Notify (\_SB.SLPB, 0x02)
13502             }
13503         }
13504 
13505         Method (_L09, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
13506         {
13507             If (\_SB.PCI0.EXP0.PSP0)
13508             {
13509                 Store (0x01, \_SB.PCI0.EXP0.PSP0)
13510                 Notify (\_SB.PCI0.EXP0, 0x02)
13511             }
13512 
13513             If (\_SB.PCI0.EXP1.PSP1)
13514             {
13515                 Store (0x01, \_SB.PCI0.EXP1.PSP1)
13516                 Notify (\_SB.PCI0.EXP1, 0x02)
13517             }
13518 
13519             If (\_SB.PCI0.EXP2.PSP2)
13520             {
13521                 Store (0x01, \_SB.PCI0.EXP2.PSP2)
13522                 Notify (\_SB.PCI0.EXP2, 0x02)
13523             }
13524 
13525             If (\_SB.PCI0.EXP3.PSP3)
13526             {
13527                 Store (0x01, \_SB.PCI0.EXP3.PSP3)
13528                 Store (0x01, \_SB.PCI0.EXP3.PMCS)
13529                 Notify (\_SB.PCI0.EXP3, 0x02)
13530             }
13531 
13532             If (\_SB.PCI0.EXP4.PSP4)
13533             {
13534                 Store (0x01, \_SB.PCI0.EXP4.PSP4)
13535                 Store (0x01, \_SB.PCI0.EXP4.PMS4)
13536                 Notify (\_SB.PCI0.EXP4, 0x02)
13537             }
13538         }
13539 
13540         Method (_L01, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
13541         {
13542             If (\_SB.PCI0.EXP3.HPCS)
13543             {
13544                 Store (0x01, \_SB.PCI0.EXP3.HPCS)
13545                 If (\_SB.PCI0.EXP3.ABP)
13546                 {
13547                     Store (0x01, \_SB.PCI0.EXP3.ABP)
13548                 }
13549 
13550                 If (\_SB.PCI0.EXP3.PDC)
13551                 {
13552                     Store (0x01, \_SB.PCI0.EXP3.PDC)
13553                     Store (0x00, \_SB.PCI0.EXP3.XCPF)
13554                     Notify (\_SB.PCI0.EXP3, 0x00)
13555                     If (\_SB.PCI0.EXP3.PDS)
13556                     {
13557                         Store (0x01, \_SB.PCI0.EXP3.XCPF)
13558                         Sleep (0x64)
13559                         Notify (\_SB.PCI0.EXP3.EXUP, 0x01)
13560                     }
13561                 }
13562             }
13563         }
13564 
13565         Method (_L02, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
13566         {
13567             Store (0x00, \_SB.PCI0.LPC.SWGE)
13568             If (And (\SWGP, 0x01))
13569             {
13570                 And (\SWGP, Not (0x01), \SWGP)
13571                 If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
13572                 {
13573                     If (DT02)
13574                     {
13575                         \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6022)
13576                     }
13577                 }
13578 
13579                 Notify (\_TZ.THM1, 0x80)
13580                 If (\SPEN)
13581                 {
13582                     If (\OSPX)
13583                     {
13584                         Notify (\_PR.CPU0, 0x80)
13585                         If (\MPEN)
13586                         {
13587                             Notify (\_PR.CPU1, 0x80)
13588                         }
13589                     }
13590                     Else
13591                     {
13592                         If (DT00)
13593                         {
13594                             \STEP (0x09)
13595                         }
13596                         Else
13597                         {
13598                             \STEP (0x0A)
13599                         }
13600                     }
13601                 }
13602             }
13603 
13604             If (LAnd (\CWUE, And (\SWGP, 0x02)))
13605             {
13606                 And (\SWGP, Not (0x02), \SWGP)
13607                 If (\OSC4)
13608                 {
13609                     Notify (\_PR.CPU0, 0x81)
13610                     If (\MPEN)
13611                     {
13612                         Notify (\_PR.CPU1, 0x81)
13613                     }
13614                 }
13615                 Else
13616                 {
13617                     If (\_SB.PCI0.LPC.EC.HKEY.CKC4 (0x00))
13618                     {
13619                         Store (0x00, \_SB.PCI0.LPC.C4C3)
13620                     }
13621                     Else
13622                     {
13623                         Store (0x01, \_SB.PCI0.LPC.C4C3)
13624                     }
13625                 }
13626             }
13627         }
13628 
13629         Method (_L06, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
13630         {
13631             If (\_SB.PCI0.VID.GSSE)
13632             {
13633                 \_SB.PCI0.VID.OPRN ()
13634             }
13635             Else
13636             {
13637                 Store (0x01, \_SB.PCI0.LPC.SCIS)
13638             }
13639         }
13640     }
13641 
13642     Scope (\_SB.PCI0.LPC.EC.HKEY)
13643     {
13644         Method (MHQT, 1, NotSerialized)
13645         {
13646             If (LAnd (\WNTF, \TATC))
13647             {
13648                 If (LEqual (Arg0, 0x00))
13649                 {
13650                     Store (\TATC, Local0)
13651                     Return (Local0)
13652                 }
13653                 Else
13654                 {
13655                     If (LEqual (Arg0, 0x01))
13656                     {
13657                         Store (\TDFA, Local0)
13658                         Add (Local0, ShiftLeft (\TDTA, 0x04), Local0)
13659                         Add (Local0, ShiftLeft (\TDFD, 0x08), Local0)
13660                         Add (Local0, ShiftLeft (\TDTD, 0x0C), Local0)
13661                         Add (Local0, ShiftLeft (\TNFT, 0x10), Local0)
13662                         Add (Local0, ShiftLeft (\TNTT, 0x14), Local0)
13663                         Return (Local0)
13664                     }
13665                     Else
13666                     {
13667                         If (LEqual (Arg0, 0x02))
13668                         {
13669                             Store (\TCFA, Local0)
13670                             Add (Local0, ShiftLeft (\TCTA, 0x04), Local0)
13671                             Add (Local0, ShiftLeft (\TCFD, 0x08), Local0)
13672                             Add (Local0, ShiftLeft (\TCTD, 0x0C), Local0)
13673                             Return (Local0)
13674                         }
13675                         Else
13676                         {
13677                             If (LEqual (Arg0, 0x03)) {}
13678                             Else
13679                             {
13680                                 If (LEqual (Arg0, 0x04))
13681                                 {
13682                                     Store (\TATW, Local0)
13683                                     Return (Local0)
13684                                 }
13685                                 Else
13686                                 {
13687                                     Noop
13688                                 }
13689                             }
13690                         }
13691                     }
13692                 }
13693             }
13694 
13695             Return (0x00)
13696         }
13697 
13698         Method (MHAT, 1, NotSerialized)
13699         {
13700             If (LAnd (\WNTF, \TATC))
13701             {
13702                 Store (And (Arg0, 0xFF), Local0)
13703                 If (LNot (ATMV (Local0)))
13704                 {
13705                     Return (0x00)
13706                 }
13707 
13708                 Store (And (ShiftRight (Arg0, 0x08), 0xFF), Local0)
13709                 If (LNot (ATMV (Local0)))
13710                 {
13711                     Return (0x00)
13712                 }
13713 
13714                 Store (And (Arg0, 0x0F), \TCFA)
13715                 Store (And (ShiftRight (Arg0, 0x04), 0x0F), \TCTA)
13716                 Store (And (ShiftRight (Arg0, 0x08), 0x0F), \TCFD)
13717                 Store (And (ShiftRight (Arg0, 0x0C), 0x0F), \TCTD)
13718                 ATMC ()
13719                 Return (0x01)
13720             }
13721 
13722             Return (0x00)
13723         }
13724 
13725         Method (MHGT, 1, NotSerialized)
13726         {
13727             If (LAnd (\WNTF, \TATC))
13728             {
13729                 Store (ShiftLeft (\TSFT, 0x10), Local0)
13730                 Add (Local0, ShiftLeft (\TSTT, 0x14), Local0)
13731                 Store (And (Arg0, 0xFF), Local1)
13732                 If (LNot (ATMV (Local1)))
13733                 {
13734                     Return (0xFFFF)
13735                 }
13736 
13737                 Store (And (Arg0, 0x0F), Local1)
13738                 If (LEqual (Local1, 0x00))
13739                 {
13740                     Add (Local0, \TIF0, Local0)
13741                 }
13742                 Else
13743                 {
13744                     If (LEqual (Local1, 0x01))
13745                     {
13746                         Add (Local0, \TIF1, Local0)
13747                     }
13748                     Else
13749                     {
13750                         If (LEqual (Local1, 0x02))
13751                         {
13752                             Add (Local0, \TIF2, Local0)
13753                         }
13754                         Else
13755                         {
13756                             Add (Local0, 0xFF, Local0)
13757                         }
13758                     }
13759                 }
13760 
13761                 Store (And (ShiftRight (Arg0, 0x04), 0x0F), Local1)
13762                 If (LEqual (Local1, 0x00))
13763                 {
13764                     Add (Local0, ShiftLeft (\TIT0, 0x08), Local0)
13765                 }
13766                 Else
13767                 {
13768                     If (LEqual (Local1, 0x01))
13769                     {
13770                         Add (Local0, ShiftLeft (\TIT1, 0x08), Local0)
13771                     }
13772                     Else
13773                     {
13774                         If (LEqual (Local1, 0x02))
13775                         {
13776                             Add (Local0, ShiftLeft (\TIT2, 0x08), Local0)
13777                         }
13778                         Else
13779                         {
13780                             Add (Local0, ShiftLeft (0xFF, 0x08), Local0)
13781                         }
13782                     }
13783                 }
13784 
13785                 Return (Local0)
13786             }
13787 
13788             Return (0x00)
13789         }
13790 
13791         Method (ATMV, 1, NotSerialized)
13792         {
13793             Store (And (Arg0, 0x0F), Local1)
13794             Store (\TNFT, Local0)
13795             If (LGreaterEqual (Local1, Local0))
13796             {
13797                 Return (0x00)
13798             }
13799 
13800             Store (And (ShiftRight (Arg0, 0x04), 0x0F), Local2)
13801             Store (\TNTT, Local0)
13802             If (LGreaterEqual (Local2, Local0))
13803             {
13804                 Return (0x00)
13805             }
13806 
13807             If (\TATL)
13808             {
13809                 If (XOr (Local1, Local2))
13810                 {
13811                     Return (0x00)
13812                 }
13813             }
13814 
13815             Return (0x01)
13816         }
13817     }
13818 
13819     Scope (\_SB.PCI0.LPC.EC)
13820     {
13821         Method (ATMC, 0, NotSerialized)
13822         {
13823             If (LAnd (\WNTF, \TATC))
13824             {
13825                 If (HPAC)
13826                 {
13827                     Store (\TCFA, Local0)
13828                     Store (\TCTA, Local1)
13829                     Store (Or (ShiftLeft (Local1, 0x04), Local0), ATMX)
13830                     If (LEqual (\TCTA, 0x00))
13831                     {
13832                         Store (\TCR0, \TCRT)
13833                         Store (\TPS0, \TPSV)
13834                     }
13835                     Else
13836                     {
13837                         If (LEqual (\TCTA, 0x01))
13838                         {
13839                             Store (\TCR1, \TCRT)
13840                             Store (\TPS1, \TPSV)
13841                         }
13842                         Else
13843                         {
13844                         }
13845                     }
13846                 }
13847                 Else
13848                 {
13849                     Store (\TCFD, Local0)
13850                     Store (\TCTD, Local1)
13851                     Store (Or (ShiftLeft (Local1, 0x04), Local0), ATMX)
13852                     If (LEqual (\TCTD, 0x00))
13853                     {
13854                         Store (\TCR0, \TCRT)
13855                         Store (\TPS0, \TPSV)
13856                     }
13857                     Else
13858                     {
13859                         If (LEqual (\TCTD, 0x01))
13860                         {
13861                             Store (\TCR1, \TCRT)
13862                             Store (\TPS1, \TPSV)
13863                         }
13864                         Else
13865                         {
13866                         }
13867                     }
13868                 }
13869 
13870                 Notify (\_TZ.THM0, 0x81)
13871                 THRM (0x01)
13872             }
13873         }
13874     }
13875 
13876     Scope (\_TZ)
13877     {
13878         ThermalZone (THM0)
13879         {
13880             Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
13881             {
13882                 Return (C2K (0x7F))
13883             }
13884 
13885             Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
13886             {
13887                 If (\H8DR)
13888                 {
13889                     Store (\_SB.PCI0.LPC.EC.TMP0, Local0)
13890                     Store (\_SB.PCI0.LPC.EC.HT12, Local1)
13891                     Store (\_SB.PCI0.LPC.EC.HT13, Local2)
13892                 }
13893                 Else
13894                 {
13895                     Store (\RBEC (0x78), Local0)
13896                     Store (And (\RBEC (0x20), 0x40), Local1)
13897                     Store (And (\RBEC (0x20), 0x80), Local2)
13898                 }
13899 
13900                 If (Local2)
13901                 {
13902                     Return (C2K (0x80))
13903                 }
13904 
13905                 If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHKC))
13906                 {
13907                     If (Local1)
13908                     {
13909                         Return (C2K (0x80))
13910                     }
13911                 }
13912 
13913                 Return (C2K (Local0))
13914             }
13915         }
13916 
13917         ThermalZone (THM1)
13918         {
13919             Method (_PSL, 0, NotSerialized)  // _PSL: Passive List
13920             {
13921                 If (\MPEN)
13922                 {
13923                     Return (Package (0x02)
13924                     {
13925                         \_PR.CPU0, 
13926                         \_PR.CPU1
13927                     })
13928                 }
13929 
13930                 Return (Package (0x01)
13931                 {
13932                     \_PR.CPU0
13933                 })
13934             }
13935 
13936             Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
13937             {
13938                 Return (\TCRT)
13939             }
13940 
13941             Method (_PSV, 0, NotSerialized)  // _PSV: Passive Temperature
13942             {
13943                 Return (\TPSV)
13944             }
13945 
13946             Method (_TC1, 0, NotSerialized)  // _TC1: Thermal Constant 1
13947             {
13948                 Return (\TTC1)
13949             }
13950 
13951             Method (_TC2, 0, NotSerialized)  // _TC2: Thermal Constant 2
13952             {
13953                 Return (\TTC2)
13954             }
13955 
13956             Method (_TSP, 0, NotSerialized)  // _TSP: Thermal Sampling Period
13957             {
13958                 Return (\TTSP)
13959             }
13960 
13961             Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
13962             {
13963                 If (\DTSE)
13964                 {
13965                     THRM (0x02)
13966                     Store (DTS1, Local0)
13967                     If (LGreaterEqual (DTS0, DTS1))
13968                     {
13969                         Store (DTS0, Local0)
13970                     }
13971 
13972                     If (LNot (\_SB.PCI0.LPC.EC.HKEY.DHKC))
13973                     {
13974                         If (DT02)
13975                         {
13976                             Add (\TCRT, 0x01, Local0)
13977                             Return (Local0)
13978                         }
13979                     }
13980 
13981                     Return (C2K (Local0))
13982                 }
13983                 Else
13984                 {
13985                     Return (\_TZ.THM0._TMP ())
13986                 }
13987             }
13988         }
13989 
13990         Method (C2K, 1, NotSerialized)
13991         {
13992             Add (Multiply (Arg0, 0x0A), 0x0AAC, Local0)
13993             If (LLessEqual (Local0, 0x0AAC))
13994             {
13995                 Store (0x0BB8, Local0)
13996             }
13997 
13998             If (LGreater (Local0, 0x0FAC))
13999             {
14000                 Store (0x0BB8, Local0)
14001             }
14002 
14003             Return (Local0)
14004         }
14005     }
14006 
14007     Scope (\_SB.PCI0.LPC.EC)
14008     {
14009         Method (_Q40, 0, NotSerialized)  // _Qxx: EC Query
14010         {
14011             Notify (\_TZ.THM0, 0x80)
14012             If (\H8DR)
14013             {
14014                 Store (\_SB.PCI0.LPC.EC.HT11, Local0)
14015                 Store (\_SB.PCI0.LPC.EC.HT12, Local1)
14016             }
14017             Else
14018             {
14019                 Store (And (\RBEC (0x20), 0x20), Local0)
14020                 Store (And (\RBEC (0x20), 0x40), Local1)
14021             }
14022 
14023             If (\_SB.PCI0.LPC.EC.HKEY.DHKC)
14024             {
14025                 If (Local1)
14026                 {
14027                     \_SB.PCI0.LPC.EC.HKEY.MHKQ (0x6022)
14028                 }
14029             }
14030 
14031             If (VIGD)
14032             {
14033                 Noop
14034             }
14035             Else
14036             {
14037                 \VTHR ()
14038             }
14039 
14040             If (\SPEN)
14041             {
14042                 If (\OSPX)
14043                 {
14044                     Notify (\_PR.CPU0, 0x80)
14045                     If (\MPEN)
14046                     {
14047                         Notify (\_PR.CPU1, 0x80)
14048                     }
14049                 }
14050                 Else
14051                 {
14052                     If (LOr (\_SB.PCI0.LPC.EC.HT00, \_SB.PCI0.LPC.EC.HT10))
14053                     {
14054                         \STEP (0x09)
14055                     }
14056                     Else
14057                     {
14058                         \STEP (0x0A)
14059                     }
14060                 }
14061             }
14062         }
14063     }
14064 
14065     Name (GPIC, 0x00)
14066     Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
14067     {
14068         Store (Arg0, \GPIC)
14069     }
14070 
14071     OperationRegion (SMI0, SystemIO, 0xB2, 0x01)
14072     Field (SMI0, ByteAcc, NoLock, Preserve)
14073     {
14074         APMC,   8
14075     }
14076 
14077     Field (MNVS, AnyAcc, NoLock, Preserve)
14078     {
14079         Offset (0xFC0), 
14080         CMD,    8, 
14081         ERR,    32, 
14082         PAR0,   32, 
14083         PAR1,   32, 
14084         PAR2,   32, 
14085         PAR3,   32
14086     }
14087 
14088     Mutex (MSMI, 0x07)
14089     Method (SMI, 5, NotSerialized)
14090     {
14091         Acquire (MSMI, 0xFFFF)
14092         Store (Arg0, CMD)
14093         Store (Arg1, PAR0)
14094         Store (Arg2, PAR1)
14095         Store (Arg3, PAR2)
14096         Store (Arg4, PAR3)
14097         Store (0xF5, APMC)
14098         While (LEqual (ERR, 0x01))
14099         {
14100             Sleep (0x64)
14101             Store (0xF5, APMC)
14102         }
14103 
14104         Store (PAR0, Local0)
14105         Release (MSMI)
14106         Return (Local0)
14107     }
14108 
14109     Method (RPCI, 1, NotSerialized)
14110     {
14111         Return (SMI (0x00, 0x00, Arg0, 0x00, 0x00))
14112     }
14113 
14114     Method (WPCI, 2, NotSerialized)
14115     {
14116         SMI (0x00, 0x01, Arg0, Arg1, 0x00)
14117     }
14118 
14119     Method (MPCI, 3, NotSerialized)
14120     {
14121         SMI (0x00, 0x02, Arg0, Arg1, Arg2)
14122     }
14123 
14124     Method (RBEC, 1, NotSerialized)
14125     {
14126         Return (SMI (0x00, 0x03, Arg0, 0x00, 0x00))
14127     }
14128 
14129     Method (WBEC, 2, NotSerialized)
14130     {
14131         SMI (0x00, 0x04, Arg0, Arg1, 0x00)
14132     }
14133 
14134     Method (MBEC, 3, NotSerialized)
14135     {
14136         SMI (0x00, 0x05, Arg0, Arg1, Arg2)
14137     }
14138 
14139     Method (RISA, 1, NotSerialized)
14140     {
14141         Return (SMI (0x00, 0x06, Arg0, 0x00, 0x00))
14142     }
14143 
14144     Method (WISA, 2, NotSerialized)
14145     {
14146         SMI (0x00, 0x07, Arg0, Arg1, 0x00)
14147     }
14148 
14149     Method (MISA, 3, NotSerialized)
14150     {
14151         SMI (0x00, 0x08, Arg0, Arg1, Arg2)
14152     }
14153 
14154     Method (VEXP, 0, NotSerialized)
14155     {
14156         SMI (0x01, 0x00, 0x00, 0x00, 0x00)
14157     }
14158 
14159     Method (VUPS, 1, NotSerialized)
14160     {
14161         SMI (0x01, 0x01, Arg0, 0x00, 0x00)
14162     }
14163 
14164     Method (VSDS, 2, NotSerialized)
14165     {
14166         SMI (0x01, 0x02, Arg0, Arg1, 0x00)
14167     }
14168 
14169     Method (VDDC, 0, NotSerialized)
14170     {
14171         SMI (0x01, 0x03, 0x00, 0x00, 0x00)
14172     }
14173 
14174     Method (VVPD, 1, NotSerialized)
14175     {
14176         SMI (0x01, 0x04, Arg0, 0x00, 0x00)
14177     }
14178 
14179     Method (VNRS, 1, NotSerialized)
14180     {
14181         SMI (0x01, 0x05, Arg0, 0x00, 0x00)
14182     }
14183 
14184     Method (GLPW, 0, NotSerialized)
14185     {
14186         Return (SMI (0x01, 0x06, 0x00, 0x00, 0x00))
14187     }
14188 
14189     Method (VSLD, 1, NotSerialized)
14190     {
14191         SMI (0x01, 0x07, Arg0, 0x00, 0x00)
14192     }
14193 
14194     Method (VEVT, 1, NotSerialized)
14195     {
14196         Return (SMI (0x01, 0x08, Arg0, 0x00, 0x00))
14197     }
14198 
14199     Method (VTHR, 0, NotSerialized)
14200     {
14201         Return (SMI (0x01, 0x09, 0x00, 0x00, 0x00))
14202     }
14203 
14204     Method (VBRC, 1, NotSerialized)
14205     {
14206         SMI (0x01, 0x0A, Arg0, 0x00, 0x00)
14207     }
14208 
14209     Method (VBRG, 0, NotSerialized)
14210     {
14211         Return (SMI (0x01, 0x0E, 0x00, 0x00, 0x00))
14212     }
14213 
14214     Method (VBTD, 0, NotSerialized)
14215     {
14216         Return (SMI (0x01, 0x0F, 0x00, 0x00, 0x00))
14217     }
14218 
14219     Method (UCMS, 1, NotSerialized)
14220     {
14221         Return (SMI (0x02, Arg0, 0x00, 0x00, 0x00))
14222     }
14223 
14224     Method (BHDP, 2, NotSerialized)
14225     {
14226         Return (SMI (0x03, 0x00, Arg0, Arg1, 0x00))
14227     }
14228 
14229     Method (DHDP, 1, NotSerialized)
14230     {
14231         Return (SMI (0x03, 0x01, Arg0, 0x00, 0x00))
14232     }
14233 
14234     Method (STEP, 1, NotSerialized)
14235     {
14236         SMI (0x04, Arg0, 0x00, 0x00, 0x00)
14237     }
14238 
14239     Method (TRAP, 0, NotSerialized)
14240     {
14241         SMI (0x05, 0x00, 0x00, 0x00, 0x00)
14242     }
14243 
14244     Method (CBRI, 0, NotSerialized)
14245     {
14246         SMI (0x05, 0x01, 0x00, 0x00, 0x00)
14247     }
14248 
14249     Method (ASSI, 1, NotSerialized)
14250     {
14251         SMI (0x05, 0x05, Arg0, 0x00, 0x00)
14252     }
14253 
14254     Method (HSWA, 1, NotSerialized)
14255     {
14256         If (LLessEqual (Arg0, 0x01))
14257         {
14258             Return (SMI (0x05, 0x04, Arg0, 0x00, 0x00))
14259         }
14260         Else
14261         {
14262             Return (0x01)
14263         }
14264     }
14265 
14266     Method (ACBS, 1, NotSerialized)
14267     {
14268         Return (SMI (0x05, 0x06, Arg0, 0x00, 0x00))
14269     }
14270 
14271     Method (BLTH, 1, NotSerialized)
14272     {
14273         Return (SMI (0x06, Arg0, 0x00, 0x00, 0x00))
14274     }
14275 
14276     Method (FISP, 0, NotSerialized)
14277     {
14278         SMI (0x07, 0x00, 0x00, 0x00, 0x00)
14279     }
14280 
14281     Method (ATCC, 1, NotSerialized)
14282     {
14283         SMI (0x08, Arg0, 0x00, 0x00, 0x00)
14284     }
14285 
14286     Method (WGSV, 1, NotSerialized)
14287     {
14288         Return (SMI (0x09, Arg0, 0x00, 0x00, 0x00))
14289     }
14290 
14291     Method (THRM, 1, NotSerialized)
14292     {
14293         Return (SMI (0x0A, Arg0, 0x00, 0x00, 0x00))
14294     }
14295 
14296     Method (PPMS, 1, NotSerialized)
14297     {
14298         Return (SMI (0x0B, Arg0, 0x00, 0x00, 0x00))
14299     }
14300 
14301     Method (TPHY, 1, NotSerialized)
14302     {
14303         SMI (0x0C, Arg0, 0x00, 0x00, 0x00)
14304     }
14305 
14306     Method (CSUM, 1, NotSerialized)
14307     {
14308         Return (SMI (0x0E, Arg0, 0x00, 0x00, 0x00))
14309     }
14310 
14311     Method (NVSS, 1, NotSerialized)
14312     {
14313         Return (SMI (0x0F, Arg0, 0x00, 0x00, 0x00))
14314     }
14315 
14316     Method (DPIO, 2, NotSerialized)
14317     {
14318         If (LNot (Arg0))
14319         {
14320             Return (0x00)
14321         }
14322 
14323         If (LGreater (Arg0, 0xF0))
14324         {
14325             Return (0x00)
14326         }
14327 
14328         If (LGreater (Arg0, 0xB4))
14329         {
14330             If (Arg1)
14331             {
14332                 Return (0x02)
14333             }
14334             Else
14335             {
14336                 Return (0x01)
14337             }
14338         }
14339 
14340         If (LGreater (Arg0, 0x78))
14341         {
14342             Return (0x03)
14343         }
14344 
14345         Return (0x04)
14346     }
14347 
14348     Method (DUDM, 2, NotSerialized)
14349     {
14350         If (LNot (Arg1))
14351         {
14352             Return (0xFF)
14353         }
14354 
14355         If (LGreater (Arg0, 0x5A))
14356         {
14357             Return (0x00)
14358         }
14359 
14360         If (LGreater (Arg0, 0x3C))
14361         {
14362             Return (0x01)
14363         }
14364 
14365         If (LGreater (Arg0, 0x2D))
14366         {
14367             Return (0x02)
14368         }
14369 
14370         If (LGreater (Arg0, 0x1E))
14371         {
14372             Return (0x03)
14373         }
14374 
14375         If (LGreater (Arg0, 0x14))
14376         {
14377             Return (0x04)
14378         }
14379 
14380         Return (0x05)
14381     }
14382 
14383     Method (DMDM, 2, NotSerialized)
14384     {
14385         If (Arg1)
14386         {
14387             Return (0x00)
14388         }
14389 
14390         If (LNot (Arg0))
14391         {
14392             Return (0x00)
14393         }
14394 
14395         If (LGreater (Arg0, 0x96))
14396         {
14397             Return (0x01)
14398         }
14399 
14400         If (LGreater (Arg0, 0x78))
14401         {
14402             Return (0x02)
14403         }
14404 
14405         Return (0x03)
14406     }
14407 
14408     Method (UUDM, 2, NotSerialized)
14409     {
14410         If (LNot (And (Arg0, 0x04)))
14411         {
14412             Return (0x00)
14413         }
14414 
14415         If (And (Arg1, 0x20))
14416         {
14417             Return (0x14)
14418         }
14419 
14420         If (And (Arg1, 0x10))
14421         {
14422             Return (0x1E)
14423         }
14424 
14425         If (And (Arg1, 0x08))
14426         {
14427             Return (0x2D)
14428         }
14429 
14430         If (And (Arg1, 0x04))
14431         {
14432             Return (0x3C)
14433         }
14434 
14435         If (And (Arg1, 0x02))
14436         {
14437             Return (0x5A)
14438         }
14439 
14440         If (And (Arg1, 0x01))
14441         {
14442             Return (0x78)
14443         }
14444 
14445         Return (0x00)
14446     }
14447 
14448     Method (UMDM, 4, NotSerialized)
14449     {
14450         If (LNot (And (Arg0, 0x02)))
14451         {
14452             Return (0x00)
14453         }
14454 
14455         If (And (Arg1, 0x04))
14456         {
14457             Return (Arg3)
14458         }
14459 
14460         If (And (Arg1, 0x02))
14461         {
14462             If (LLessEqual (Arg3, 0x78))
14463             {
14464                 Return (0xB4)
14465             }
14466             Else
14467             {
14468                 Return (Arg3)
14469             }
14470         }
14471 
14472         If (And (Arg2, 0x04))
14473         {
14474             If (LLessEqual (Arg3, 0xB4))
14475             {
14476                 Return (0xF0)
14477             }
14478             Else
14479             {
14480                 Return (Arg3)
14481             }
14482         }
14483 
14484         Return (0x00)
14485     }
14486 
14487     Method (UPIO, 4, NotSerialized)
14488     {
14489         If (LNot (And (Arg0, 0x02)))
14490         {
14491             If (LEqual (Arg2, 0x02))
14492             {
14493                 Return (0xF0)
14494             }
14495             Else
14496             {
14497                 Return (0x0384)
14498             }
14499         }
14500 
14501         If (And (Arg1, 0x02))
14502         {
14503             Return (Arg3)
14504         }
14505 
14506         If (And (Arg1, 0x01))
14507         {
14508             If (LLessEqual (Arg3, 0x78))
14509             {
14510                 Return (0xB4)
14511             }
14512             Else
14513             {
14514                 Return (Arg3)
14515             }
14516         }
14517 
14518         If (LEqual (Arg2, 0x02))
14519         {
14520             Return (0xF0)
14521         }
14522         Else
14523         {
14524             Return (0x0384)
14525         }
14526     }
14527 
14528     Method (FDMA, 2, NotSerialized)
14529     {
14530         If (LNotEqual (Arg1, 0xFF))
14531         {
14532             Return (Or (Arg1, 0x40))
14533         }
14534 
14535         If (LGreaterEqual (Arg0, 0x03))
14536         {
14537             Return (Or (Subtract (Arg0, 0x02), 0x20))
14538         }
14539 
14540         If (Arg0)
14541         {
14542             Return (0x12)
14543         }
14544 
14545         Return (0x00)
14546     }
14547 
14548     Method (FPIO, 1, NotSerialized)
14549     {
14550         If (LGreaterEqual (Arg0, 0x03))
14551         {
14552             Return (Or (Arg0, 0x08))
14553         }
14554 
14555         If (LEqual (Arg0, 0x01))
14556         {
14557             Return (0x01)
14558         }
14559 
14560         Return (0x00)
14561     }
14562 
14563     Method (SCMP, 2, NotSerialized)
14564     {
14565         Store (SizeOf (Arg0), Local0)
14566         If (LNotEqual (Local0, SizeOf (Arg1)))
14567         {
14568             Return (One)
14569         }
14570 
14571         Increment (Local0)
14572         Name (STR1, Buffer (Local0) {})
14573         Name (STR2, Buffer (Local0) {})
14574         Store (Arg0, STR1)
14575         Store (Arg1, STR2)
14576         Store (Zero, Local1)
14577         While (LLess (Local1, Local0))
14578         {
14579             Store (DerefOf (Index (STR1, Local1)), Local2)
14580             Store (DerefOf (Index (STR2, Local1)), Local3)
14581             If (LNotEqual (Local2, Local3))
14582             {
14583                 Return (One)
14584             }
14585 
14586             Increment (Local1)
14587         }
14588 
14589         Return (Zero)
14590     }
14591 
14592     Name (SPS, 0x00)
14593     Name (OSIF, 0x00)
14594     Name (W98F, 0x00)
14595     Name (WNTF, 0x00)
14596     Name (WMEF, 0x00)
14597     Name (WXPF, 0x00)
14598     Name (WVIS, 0x00)
14599     Name (WSPV, 0x00)
14600     Name (LNUX, 0x00)
14601     Name (H8DR, 0x00)
14602     Name (MEMX, 0x00)
14603     Name (ACST, 0x00)
14604     Name (FNID, 0x00)
14605     Name (RRBF, 0x00)
14606     Name (NBCF, 0x00)
14607     Scope (\)
14608     {
14609         Method (KOU2, 0, NotSerialized)
14610         {
14611             Stall (0x64)
14612         }
14613     }
14614 
14615     Scope (\_SB.PCI0.VID.LCD0)
14616     {
14617         Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
14618         {
14619             Store (0x01, \NBCF)
14620             Return (Package (0x12)
14621             {
14622                 0x64, 
14623                 0x64, 
14624                 0x14, 
14625                 0x19, 
14626                 0x1E, 
14627                 0x23, 
14628                 0x28, 
14629                 0x2D, 
14630                 0x32, 
14631                 0x37, 
14632                 0x3C, 
14633                 0x41, 
14634                 0x46, 
14635                 0x4B, 
14636                 0x50, 
14637                 0x55, 
14638                 0x5A, 
14639                 0x64
14640             })
14641         }
14642 
14643         Name (BCLP, Package (0x10)
14644         {
14645             0x14, 
14646             0x19, 
14647             0x1E, 
14648             0x23, 
14649             0x28, 
14650             0x2D, 
14651             0x32, 
14652             0x37, 
14653             0x3C, 
14654             0x41, 
14655             0x46, 
14656             0x4B, 
14657             0x50, 
14658             0x55, 
14659             0x5A, 
14660             0x64
14661         })
14662         Name (BCLL, Package (0x10)
14663         {
14664             0x00, 
14665             0x01, 
14666             0x02, 
14667             0x03, 
14668             0x04, 
14669             0x05, 
14670             0x06, 
14671             0x07, 
14672             0x08, 
14673             0x09, 
14674             0x0A, 
14675             0x0B, 
14676             0x0C, 
14677             0x0D, 
14678             0x0E, 
14679             0x0F
14680         })
14681         Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
14682         {
14683             Store (Match (BCLP, MEQ, Arg0, MTR, 0x00, 0x00), Local0)
14684             If (LNotEqual (Local0, Ones))
14685             {
14686                 Store (DerefOf (Index (BCLL, Local0)), \BRLV)
14687                 \_SB.PCI0.LPC.EC.BRNS ()
14688                 \UCMS (0x16)
14689             }
14690         }
14691 
14692         Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
14693         {
14694             Store (\BRLV, Local0)
14695             If (LLessEqual (Local0, 0x0F))
14696             {
14697                 Return (DerefOf (Index (BCLP, Local0)))
14698             }
14699             Else
14700             {
14701                 Return (Zero)
14702             }
14703         }
14704     }
14705 
14706     Scope (\_SB.PCI0.AGP.VID.LCD0)
14707     {
14708         Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
14709         {
14710             Store (0x01, NBCF)
14711             Return (Package (0x12)
14712             {
14713                 0x64, 
14714                 0x64, 
14715                 0x14, 
14716                 0x19, 
14717                 0x1E, 
14718                 0x23, 
14719                 0x28, 
14720                 0x2D, 
14721                 0x32, 
14722                 0x37, 
14723                 0x3C, 
14724                 0x41, 
14725                 0x46, 
14726                 0x4B, 
14727                 0x50, 
14728                 0x55, 
14729                 0x5A, 
14730                 0x64
14731             })
14732         }
14733 
14734         Name (BCLP, Package (0x10)
14735         {
14736             0x14, 
14737             0x19, 
14738             0x1E, 
14739             0x23, 
14740             0x28, 
14741             0x2D, 
14742             0x32, 
14743             0x37, 
14744             0x3C, 
14745             0x41, 
14746             0x46, 
14747             0x4B, 
14748             0x50, 
14749             0x55, 
14750             0x5A, 
14751             0x64
14752         })
14753         Name (BCLL, Package (0x10)
14754         {
14755             0x00, 
14756             0x01, 
14757             0x02, 
14758             0x03, 
14759             0x04, 
14760             0x05, 
14761             0x06, 
14762             0x07, 
14763             0x08, 
14764             0x09, 
14765             0x0A, 
14766             0x0B, 
14767             0x0C, 
14768             0x0D, 
14769             0x0E, 
14770             0x0F
14771         })
14772         Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
14773         {
14774             Store (Match (BCLP, MEQ, Arg0, MTR, 0x00, 0x00), Local0)
14775             If (LNotEqual (Local0, Ones))
14776             {
14777                 Store (DerefOf (Index (BCLL, Local0)), Local1)
14778                 \VBRC (Local1)
14779             }
14780         }
14781 
14782         Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
14783         {
14784             Store (\VBRG (), Local0)
14785             If (LLessEqual (Local0, 0x0F))
14786             {
14787                 Return (DerefOf (Index (BCLP, Local0)))
14788             }
14789             Else
14790             {
14791                 Return (Zero)
14792             }
14793         }
14794     }
14795 
14796     Scope (\_PR.CPU0)
14797     {
14798         Name (_TPC, 0x00)  // _TPC: Throttling Present Capabilities
14799         Method (_PTC, 0, NotSerialized)  // _PTC: Processor Throttling Control
14800         {
14801             If (And (PDC0, 0x04))
14802             {
14803                 Return (Package (0x02)
14804                 {
14805                     ResourceTemplate ()
14806                     {
14807                         Register (FFixedHW, 
14808                             0x00,               // Bit Width
14809                             0x00,               // Bit Offset
14810                             0x0000000000000000, // Address
14811                             ,)
14812                     }, 
14813 
14814                     ResourceTemplate ()
14815                     {
14816                         Register (FFixedHW, 
14817                             0x00,               // Bit Width
14818                             0x00,               // Bit Offset
14819                             0x0000000000000000, // Address
14820                             ,)
14821                     }
14822                 })
14823             }
14824 
14825             Return (Package (0x02)
14826             {
14827                 ResourceTemplate ()
14828                 {
14829                     Register (SystemIO, 
14830                         0x04,               // Bit Width
14831                         0x01,               // Bit Offset
14832                         0x0000000000001010, // Address
14833                         ,)
14834                 }, 
14835 
14836                 ResourceTemplate ()
14837                 {
14838                     Register (SystemIO, 
14839                         0x04,               // Bit Width
14840                         0x01,               // Bit Offset
14841                         0x0000000000001010, // Address
14842                         ,)
14843                 }
14844             })
14845         }
14846 
14847         Name (TSSI, Package (0x08)
14848         {
14849             Package (0x05)
14850             {
14851                 0x64, 
14852                 0x03E8, 
14853                 0x00, 
14854                 0x00, 
14855                 0x00
14856             }, 
14857 
14858             Package (0x05)
14859             {
14860                 0x58, 
14861                 0x036B, 
14862                 0x00, 
14863                 0x0F, 
14864                 0x00
14865             }, 
14866 
14867             Package (0x05)
14868             {
14869                 0x4B, 
14870                 0x02EE, 
14871                 0x00, 
14872                 0x0E, 
14873                 0x00
14874             }, 
14875 
14876             Package (0x05)
14877             {
14878                 0x3F, 
14879                 0x0271, 
14880                 0x00, 
14881                 0x0D, 
14882                 0x00
14883             }, 
14884 
14885             Package (0x05)
14886             {
14887                 0x32, 
14888                 0x01F4, 
14889                 0x00, 
14890                 0x0C, 
14891                 0x00
14892             }, 
14893 
14894             Package (0x05)
14895             {
14896                 0x26, 
14897                 0x0177, 
14898                 0x00, 
14899                 0x0B, 
14900                 0x00
14901             }, 
14902 
14903             Package (0x05)
14904             {
14905                 0x19, 
14906                 0xFA, 
14907                 0x00, 
14908                 0x0A, 
14909                 0x00
14910             }, 
14911 
14912             Package (0x05)
14913             {
14914                 0x0D, 
14915                 0x7D, 
14916                 0x00, 
14917                 0x09, 
14918                 0x00
14919             }
14920         })
14921         Name (TSSM, Package (0x08)
14922         {
14923             Package (0x05)
14924             {
14925                 0x64, 
14926                 0x03E8, 
14927                 0x00, 
14928                 0x00, 
14929                 0x00
14930             }, 
14931 
14932             Package (0x05)
14933             {
14934                 0x58, 
14935                 0x036B, 
14936                 0x00, 
14937                 0x1E, 
14938                 0x00
14939             }, 
14940 
14941             Package (0x05)
14942             {
14943                 0x4B, 
14944                 0x02EE, 
14945                 0x00, 
14946                 0x1C, 
14947                 0x00
14948             }, 
14949 
14950             Package (0x05)
14951             {
14952                 0x3F, 
14953                 0x0271, 
14954                 0x00, 
14955                 0x1A, 
14956                 0x00
14957             }, 
14958 
14959             Package (0x05)
14960             {
14961                 0x32, 
14962                 0x01F4, 
14963                 0x00, 
14964                 0x18, 
14965                 0x00
14966             }, 
14967 
14968             Package (0x05)
14969             {
14970                 0x26, 
14971                 0x0177, 
14972                 0x00, 
14973                 0x16, 
14974                 0x00
14975             }, 
14976 
14977             Package (0x05)
14978             {
14979                 0x19, 
14980                 0xFA, 
14981                 0x00, 
14982                 0x14, 
14983                 0x00
14984             }, 
14985 
14986             Package (0x05)
14987             {
14988                 0x0D, 
14989                 0x7D, 
14990                 0x00, 
14991                 0x12, 
14992                 0x00
14993             }
14994         })
14995         Name (TSSF, 0x00)
14996         Method (_TSS, 0, NotSerialized)  // _TSS: Throttling Supported States
14997         {
14998             If (LAnd (LNot (TSSF), CondRefOf (_PSS)))
14999             {
15000                 Store (_PSS, Local0)
15001                 Store (SizeOf (Local0), Local1)
15002                 Decrement (Local1)
15003                 Store (DerefOf (Index (DerefOf (Index (Local0, Local1)), 0x01)), 
15004                     Local2)
15005                 Store (0x00, Local3)
15006                 While (LLess (Local3, SizeOf (TSSI)))
15007                 {
15008                     Store (Divide (Multiply (Local2, Subtract (0x08, Local3)), 0x08, 
15009                         ), Local4)
15010                     Store (Local4, Index (DerefOf (Index (TSSI, Local3)), 0x01))
15011                     Store (Local4, Index (DerefOf (Index (TSSM, Local3)), 0x01))
15012                     Increment (Local3)
15013                 }
15014 
15015                 Store (Ones, TSSF)
15016             }
15017 
15018             If (And (PDC0, 0x04))
15019             {
15020                 Return (TSSM)
15021             }
15022 
15023             Return (TSSI)
15024         }
15025 
15026         Method (_TSD, 0, NotSerialized)  // _TSD: Throttling State Dependencies
15027         {
15028             If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC0, 0x04
15029                 ))))
15030             {
15031                 Return (Package (0x01)
15032                 {
15033                     Package (0x05)
15034                     {
15035                         0x05, 
15036                         0x00, 
15037                         0x00, 
15038                         0xFD, 
15039                         0x02
15040                     }
15041                 })
15042             }
15043 
15044             Return (Package (0x01)
15045             {
15046                 Package (0x05)
15047                 {
15048                     0x05, 
15049                     0x00, 
15050                     0x00, 
15051                     0xFC, 
15052                     0x01
15053                 }
15054             })
15055         }
15056     }
15057 
15058     Scope (\_PR.CPU1)
15059     {
15060         Name (_TPC, 0x00)  // _TPC: Throttling Present Capabilities
15061         Method (_PTC, 0, NotSerialized)  // _PTC: Processor Throttling Control
15062         {
15063             Return (\_PR.CPU0._PTC ())
15064         }
15065 
15066         Method (_TSS, 0, NotSerialized)  // _TSS: Throttling Supported States
15067         {
15068             Return (\_PR.CPU0._TSS ())
15069         }
15070 
15071         Method (_TSD, 0, NotSerialized)  // _TSD: Throttling State Dependencies
15072         {
15073             If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC1, 0x04
15074                 ))))
15075             {
15076                 Return (Package (0x01)
15077                 {
15078                     Package (0x05)
15079                     {
15080                         0x05, 
15081                         0x00, 
15082                         0x00, 
15083                         0xFD, 
15084                         0x02
15085                     }
15086                 })
15087             }
15088 
15089             Return (Package (0x01)
15090             {
15091                 Package (0x05)
15092                 {
15093                     0x05, 
15094                     0x00, 
15095                     0x01, 
15096                     0xFC, 
15097                     0x01
15098                 }
15099             })
15100         }
15101     }
15102 
15103     Scope (\)
15104     {
15105         Name (SSDT, Package (0x0C)
15106         {
15107             "CPU0IST ", 
15108             0xBF6E1B32, 
15109             0x00000282, 
15110             "CPU1IST ", 
15111             0xBF6E1A6A, 
15112             0x000000C8, 
15113             "CPU0CST ", 
15114             0xBF6E1E39, 
15115             0x0000085E, 
15116             "CPU1CST ", 
15117             0xBF6E1DB4, 
15118             0x00000085
15119         })
15120         Name (CFGD, 0x113F69F7)
15121         Name (\PDC0, 0x80000000)
15122         Name (\PDC1, 0x80000000)
15123         Name (\SDTL, 0x00)
15124     }
15125 
15126     Scope (\_PR.CPU0)
15127     {
15128         Name (HI0, 0x00)
15129         Name (HC0, 0x00)
15130         Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
15131         {
15132             CreateDWordField (Arg0, 0x00, REVS)
15133             CreateDWordField (Arg0, 0x04, SIZE)
15134             Store (SizeOf (Arg0), Local0)
15135             Store (Subtract (Local0, 0x08), Local1)
15136             CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
15137             Name (STS0, Buffer (0x04)
15138             {
15139                  0x00, 0x00, 0x00, 0x00
15140             })
15141             Concatenate (STS0, TEMP, Local2)
15142             _OSC (Buffer (0x10)
15143                 {
15144                     /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15145                     /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15146                 }, REVS, SIZE, Local2)
15147         }
15148 
15149         Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
15150         {
15151             CreateDWordField (Arg3, 0x00, STS0)
15152             CreateDWordField (Arg3, 0x04, CAP0)
15153             CreateDWordField (Arg0, 0x00, IID0)
15154             CreateDWordField (Arg0, 0x04, IID1)
15155             CreateDWordField (Arg0, 0x08, IID2)
15156             CreateDWordField (Arg0, 0x0C, IID3)
15157             Name (UID0, Buffer (0x10)
15158             {
15159                 /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15160                 /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15161             })
15162             CreateDWordField (UID0, 0x00, EID0)
15163             CreateDWordField (UID0, 0x04, EID1)
15164             CreateDWordField (UID0, 0x08, EID2)
15165             CreateDWordField (UID0, 0x0C, EID3)
15166             If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
15167                 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
15168             {
15169                 Store (0x06, STS0)
15170                 Return (Arg3)
15171             }
15172 
15173             If (LNotEqual (Arg1, 0x01))
15174             {
15175                 Store (0x0A, STS0)
15176                 Return (Arg3)
15177             }
15178 
15179             Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
15180             If (And (CFGD, 0x01))
15181             {
15182                 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0, 
15183                     0x09), 0x09)), LNot (And (SDTL, 0x01))))
15184                 {
15185                     Or (SDTL, 0x01, SDTL)
15186                     OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02
15187                         )))
15188                     Load (IST0, HI0)
15189                 }
15190             }
15191 
15192             If (And (CFGD, 0xF0))
15193             {
15194                 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
15195                     )), LNot (And (SDTL, 0x02))))
15196                 {
15197                     Or (SDTL, 0x02, SDTL)
15198                     OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
15199                         )))
15200                     Load (CST0, HC0)
15201                 }
15202             }
15203 
15204             Return (Arg3)
15205         }
15206     }
15207 
15208     Scope (\_PR.CPU1)
15209     {
15210         Name (HI1, 0x00)
15211         Name (HC1, 0x00)
15212         Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
15213         {
15214             CreateDWordField (Arg0, 0x00, REVS)
15215             CreateDWordField (Arg0, 0x04, SIZE)
15216             Store (SizeOf (Arg0), Local0)
15217             Store (Subtract (Local0, 0x08), Local1)
15218             CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
15219             Name (STS1, Buffer (0x04)
15220             {
15221                  0x00, 0x00, 0x00, 0x00
15222             })
15223             Concatenate (STS1, TEMP, Local2)
15224             _OSC (Buffer (0x10)
15225                 {
15226                     /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15227                     /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15228                 }, REVS, SIZE, Local2)
15229         }
15230 
15231         Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
15232         {
15233             CreateDWordField (Arg3, 0x00, STS1)
15234             CreateDWordField (Arg3, 0x04, CAP1)
15235             CreateDWordField (Arg0, 0x00, IID0)
15236             CreateDWordField (Arg0, 0x04, IID1)
15237             CreateDWordField (Arg0, 0x08, IID2)
15238             CreateDWordField (Arg0, 0x0C, IID3)
15239             Name (UID1, Buffer (0x10)
15240             {
15241                 /* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
15242                 /* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
15243             })
15244             CreateDWordField (UID1, 0x00, EID0)
15245             CreateDWordField (UID1, 0x04, EID1)
15246             CreateDWordField (UID1, 0x08, EID2)
15247             CreateDWordField (UID1, 0x0C, EID3)
15248             If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
15249                 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
15250             {
15251                 Store (0x06, STS1)
15252                 Return (Arg3)
15253             }
15254 
15255             If (LNotEqual (Arg1, 0x01))
15256             {
15257                 Store (0x0A, STS1)
15258                 Return (Arg3)
15259             }
15260 
15261             Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
15262             If (And (CFGD, 0x01))
15263             {
15264                 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC1, 
15265                     0x09), 0x09)), LNot (And (SDTL, 0x10))))
15266                 {
15267                     Or (SDTL, 0x10, SDTL)
15268                     OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
15269                         )))
15270                     Load (IST1, HI1)
15271                 }
15272             }
15273 
15274             If (And (CFGD, 0xF0))
15275             {
15276                 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC1, 0x18
15277                     )), LNot (And (SDTL, 0x20))))
15278                 {
15279                     Or (SDTL, 0x20, SDTL)
15280                     OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
15281                         )))
15282                     Load (CST1, HC1)
15283                 }
15284             }
15285 
15286             Return (Arg3)
15287         }
15288 
15289         Method (_INI, 0, NotSerialized)  // _INI: Initialize
15290         {
15291             If (\DTSE)
15292             {
15293                 THRM (0x00)
15294             }
15295 
15296             If (LAnd (\WXPF, LLessEqual (\WSPV, 0x01)))
15297             {
15298                 PPMS (0x00)
15299             }
15300         }
15301     }
15302 
15303     Scope (\_SB.PCI0.SATA)
15304     {
15305         Device (PRT0)
15306         {
15307             Name (DRE0, 0x00)
15308             Name (DIP0, 0x00)
15309             Name (HDTF, Buffer (0x0E)
15310             {
15311                 /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15312                 /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
15313             })
15314             CreateByteField (HDTF, 0x0D, HFLC)
15315             Name (ERTF, Buffer (0x15)
15316             {
15317                 /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15318                 /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x5F, 0x00,
15319                 /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF
15320             })
15321             CreateByteField (ERTF, 0x0D, EFLC)
15322             Name (HPTF, Buffer (0x15)
15323             {
15324                 /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15325                 /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x10, 0x03,
15326                 /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF
15327             })
15328             CreateByteField (HPTF, 0x0D, PFLC)
15329             Name (HXTF, Buffer (0x1C)
15330             {
15331                 /* 0000 */   0x02, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00,
15332                 /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5, 0x5F, 0x00,
15333                 /* 0010 */   0x00, 0x00, 0x00, 0xA0, 0xEF, 0x10, 0x03, 0x00,
15334                 /* 0018 */   0x00, 0x00, 0xA0, 0xEF
15335             })
15336             CreateByteField (HXTF, 0x0D, XFLC)
15337             Name (_ADR, 0xFFFF)  // _ADR: Address
15338             Method (_SDD, 1, NotSerialized)  // _SDD: Set Device Data
15339             {
15340                 Store (0x00, DRE0)
15341                 Store (0x00, DIP0)
15342                 If (LEqual (SizeOf (Arg0), 0x0200))
15343                 {
15344                     CreateWordField (Arg0, 0x9C, M078)
15345                     CreateWordField (Arg0, 0xAC, M086)
15346                     CreateWordField (Arg0, 0xEE, M119)
15347                     CreateWordField (Arg0, 0x0128, M148)
15348                     If (LEqual (And (M148, 0xC000), 0x4000))
15349                     {
15350                         If (And (M148, 0x04))
15351                         {
15352                             Store (0x01, DRE0)
15353                         }
15354                     }
15355 
15356                     If (And (M086, 0x8000))
15357                     {
15358                         If (And (M119, 0x01))
15359                         {
15360                             Store (0x01, DRE0)
15361                         }
15362                     }
15363 
15364                     If (And (M078, 0x08))
15365                     {
15366                         Store (0x01, DIP0)
15367                     }
15368                 }
15369             }
15370 
15371             Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
15372             {
15373                 If (\OSSS)
15374                 {
15375                     Store (0xE1, XFLC)
15376                     Store (0xE1, EFLC)
15377                     Store (0xE1, HFLC)
15378                     Store (0xE1, PFLC)
15379                 }
15380 
15381                 If (DRE0)
15382                 {
15383                     If (DIP0)
15384                     {
15385                         Return (HXTF)
15386                     }
15387                     Else
15388                     {
15389                         Return (ERTF)
15390                     }
15391                 }
15392 
15393                 If (DIP0)
15394                 {
15395                     Return (HPTF)
15396                 }
15397 
15398                 Return (HDTF)
15399             }
15400         }
15401     }
15402 }

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2014-10-04T17:00:43+0000, 504.2 KB) [[attachment:acpidump.txt]]
  • [get | view] (2014-10-04T17:00:51+0000, 8.2 KB) [[attachment:devinfo.txt]]
  • [get | view] (2014-10-04T17:00:23+0000, 9.7 KB) [[attachment:dmesg.txt]]
  • [get | view] (2014-10-04T17:00:56+0000, 4.7 KB) [[attachment:pciconf.txt]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.