Attachment 'acer-aspireone-zg5-acpidump.txt'

Download

   1 /*
   2   RSD PTR: OEM=INTEL, ACPI_Rev=2.0x (2)
   3 	XSDT=0x000000005f4fe120, length=36, cksum=45
   4  */
   5 /*
   6   XSDT: Length=100, Revision=1, Checksum=183,
   7 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
   8 	Creator ID=, Creator Revision=0x1000013
   9 	Entries={ 0x000000005f4fc000, 0x000000005f4fd000, 0x000000005f4fb000, 0x000000005f4fa000, 0x000000005f4f9000, 0x000000005f4f8000, 0x000000005f4f1000, 0x000000005f4f0000 }
  10  */
  11 /*
  12   FACP: Length=244, Revision=4, Checksum=255,
  13 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  14 	Creator ID=MSFT, Creator Revision=0x1000013
  15  	FACS=0x5f488000, DSDT=0x5f4f2000
  16 	INT_MODEL=PIC
  17 	Preferred_PM_Profile=Unspecified (0)
  18 	SCI_INT=9
  19 	SMI_CMD=0xb2, ACPI_ENABLE=0xa0, ACPI_DISABLE=0xa1, S4BIOS_REQ=0x0
  20 	PSTATE_CNT=0x0
  21 	PM1a_EVT_BLK=0x400-0x403
  22 	PM1a_CNT_BLK=0x404-0x405
  23 	PM2_CNT_BLK=0x420-0x420
  24 	PM_TMR_BLK=0x408-0x40b
  25 	GPE0_BLK=0x428-0x42f
  26 	P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
  27 	FLUSH_SIZE=0, FLUSH_STRIDE=0
  28 	DUTY_OFFSET=1, DUTY_WIDTH=3
  29 	DAY_ALRM=13, MON_ALRM=0, CENTURY=0
  30 	IAPC_BOOT_ARCH={LEGACY_DEVICES,8042}
  31 	Flags={WBINVD,C1_SUPPORTED,SLEEP_BUTTON,S4_RTC_WAKE,RESET_REGISTER,PLATFORM_CLOCK}
  32 	RESET_REG=0xcf9:0[8] (IO), RESET_VALUE=0x6
  33 	X_FACS=0x000000005f488000, X_DSDT=0x000000005f4f2000
  34 	X_PM1a_EVT_BLK=0x00000000:0[0] (Memory)
  35 	X_PM1a_CNT_BLK=0x00000000:0[0] (Memory)
  36 	X_PM_TMR_BLK=0x00000000:0[0] (Memory)
  37  */
  38 /*
  39   FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
  40 	Global_Lock=
  41 	Flags=
  42 	Version=1
  43  */
  44 /*
  45   DSDT: Length=23813, Revision=1, Checksum=18,
  46 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  47 	Creator ID=MSFT, Creator Revision=0x1000013
  48  */
  49 /*
  50   SSDT: Length=1220, Revision=2, Checksum=203,
  51 	OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
  52 	Creator ID=INTL, Creator Revision=0x20051117
  53  */
  54 /*
  55   HPET: Length=56, Revision=1, Checksum=180,
  56 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  57 	Creator ID=MSFT, Creator Revision=0x1000013
  58 	HPET Number=0
  59 	ADDR=0xfed00000:0[0] (Memory)	HW Rev=0x1
  60 	Comparators=2
  61 	Counter Size=1
  62 	Legacy IRQ routing capable={TRUE}
  63 	PCI Vendor ID=0x8086
  64 	Minimal Tick=128
  65 	Flags=0x00
  66  */
  67 /*
  68   APIC: Length=104, Revision=2, Checksum=110,
  69 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
  70 	Creator ID=MSFT, Creator Revision=0x1000013
  71 	Local APIC ADDR=0xfee00000
  72 	Flags={PC-AT}
  73 
  74 	Type=Local APIC
  75 	ACPI CPU=1
  76 	Flags={ENABLED}
  77 	APIC ID=0
  78 
  79 	Type=Local APIC
  80 	ACPI CPU=2
  81 	Flags={ENABLED}
  82 	APIC ID=1
  83 
  84 	Type=IO APIC
  85 	APIC ID=4
  86 	INT BASE=0
  87 	ADDR=0x00000000fec00000
  88 
  89 	Type=INT Override
  90 	BUS=0
  91 	IRQ=0
  92 	INTR=2
  93 	Flags={Polarity=conforming, Trigger=conforming}
  94 
  95 	Type=INT Override
  96 	BUS=0
  97 	IRQ=9
  98 	INTR=9
  99 	Flags={Polarity=active-hi, Trigger=level}
 100 
 101 	Type=Local APIC NMI
 102 	ACPI CPU=1
 103 	LINT Pin=1
 104 	Flags={Polarity=active-hi, Trigger=edge}
 105 
 106 	Type=Local APIC NMI
 107 	ACPI CPU=2
 108 	LINT Pin=1
 109 	Flags={Polarity=active-hi, Trigger=edge}
 110  */
 111 /*
 112   MCFG: Length=60, Revision=1, Checksum=220,
 113 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 114 	Creator ID=MSFT, Creator Revision=0x1000013
 115 
 116 	Base Address=0x00000000e0000000
 117 	Segment Group=0x0000
 118 	Start Bus=0
 119 	End Bus=255
 120  */
 121 /*
 122   ASF!: Length=165, Revision=32, Checksum=92,
 123 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 124 	Creator ID=MSFT, Creator Revision=0x1000013
 125  */
 126 /*
 127   SLIC: Length=384, Revision=1, Checksum=232,
 128 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 129 	Creator ID=MSFT, Creator Revision=0x1000013
 130  */
 131 /*
 132   BOOT: Length=40, Revision=1, Checksum=116,
 133 	OEMID=INTEL, OEM Table ID=Napa, OEM Revision=0x1,
 134 	Creator ID=MSFT, Creator Revision=0x1000013
 135  */
 136 /*
 137  * Intel ACPI Component Architecture
 138  * AML/ASL+ Disassembler version 20160527-32
 139  * Copyright (c) 2000 - 2016 Intel Corporation
 140  * 
 141  * Disassembling to symbolic ASL+ operators
 142  *
 143  * Disassembly of /tmp/acpidump.6zPKsS/acpdump.din, Wed Dec 14 20:29:54 2016
 144  *
 145  * Original Table Header:
 146  *     Signature        "DSDT"
 147  *     Length           0x000061A5 (24997)
 148  *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
 149  *     Checksum         0xB4
 150  *     OEM ID           "INTEL "
 151  *     OEM Table ID     "Napa    "
 152  *     OEM Revision     0x00000001 (1)
 153  *     Compiler ID      "MSFT"
 154  *     Compiler Version 0x01000013 (16777235)
 155  */
 156 DefinitionBlock ("", "DSDT", 1, "INTEL ", "Napa    ", 0x00000001)
 157 {
 158     OperationRegion (PORT, SystemIO, 0x80, One)
 159     Field (PORT, ByteAcc, NoLock, Preserve)
 160     {
 161         P80H,   8
 162     }
 163 
 164     OperationRegion (GPIO, SystemIO, 0x0500, 0x39)
 165     Field (GPIO, ByteAcc, NoLock, Preserve)
 166     {
 167         Offset (0x2C), 
 168         Offset (0x2D), 
 169             ,   1, 
 170         INV9,   1, 
 171         INVA,   1, 
 172         Offset (0x38), 
 173             ,   1, 
 174             ,   1, 
 175         CPEN,   1
 176     }
 177 
 178     OperationRegion (PMBA, SystemIO, 0x0400, 0x80)
 179     Field (PMBA, ByteAcc, NoLock, Preserve)
 180     {
 181         Offset (0x28), 
 182             ,   2, 
 183         SPST,   1, 
 184         Offset (0x29), 
 185         Offset (0x2A), 
 186         Offset (0x2B), 
 187         GP2B,   8, 
 188         Offset (0x42), 
 189             ,   1, 
 190         GPEC,   1
 191     }
 192 
 193     OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
 194     Field (RCRB, DWordAcc, Lock, Preserve)
 195     {
 196         Offset (0x1000), 
 197         Offset (0x3000), 
 198         Offset (0x3404), 
 199         HPAS,   2, 
 200             ,   5, 
 201         HPAE,   1, 
 202         Offset (0x3418), 
 203             ,   1, 
 204         PATD,   1, 
 205         SATD,   1, 
 206         SMBD,   1, 
 207         AZAD,   1, 
 208         A97D,   1, 
 209         Offset (0x341A), 
 210         RP1D,   1, 
 211         RP2D,   1, 
 212         RP3D,   1, 
 213         RP4D,   1
 214     }
 215 
 216     OperationRegion (MBOX, SystemMemory, 0x5F4BED90, 0x000000E8)
 217     Field (MBOX, AnyAcc, NoLock, Preserve)
 218     {
 219         PCI1,   8, 
 220         PCI2,   8, 
 221         PCI3,   8, 
 222         PCI4,   8, 
 223         PCI5,   8, 
 224         PCI6,   8, 
 225         PCI7,   8, 
 226         PCI8,   8, 
 227         NLCK,   8, 
 228         ZIPE,   8, 
 229         COMA,   8, 
 230         CAIO,   8, 
 231         CAIP,   8, 
 232         CAMD,   8, 
 233         CADA,   8, 
 234         COMB,   8, 
 235         CBIO,   8, 
 236         CBIP,   8, 
 237         CBMD,   8, 
 238         CBDA,   8, 
 239         COMC,   8, 
 240         CCIO,   8, 
 241         CCIP,   8, 
 242         CCMD,   8, 
 243         CCDA,   8, 
 244         COMD,   8, 
 245         CDIO,   8, 
 246         CDIP,   8, 
 247         CDMD,   8, 
 248         CDDA,   8, 
 249         LPT1,   8, 
 250         L1IO,   8, 
 251         L1IP,   8, 
 252         L1MD,   8, 
 253         L1DA,   8, 
 254         LPT2,   8, 
 255         L2IO,   8, 
 256         L2IP,   8, 
 257         L2MD,   8, 
 258         L2DA,   8, 
 259         LPT3,   8, 
 260         L3IO,   8, 
 261         L3IP,   8, 
 262         L3MD,   8, 
 263         L3DA,   8, 
 264         FDDC,   8, 
 265         FDWP,   8, 
 266         HGMP,   8, 
 267         LGMP,   8, 
 268         MIDI,   8, 
 269         AZLA,   8, 
 270         AUDO,   8, 
 271         MODM,   8, 
 272         IDEC,   8, 
 273         PACT,   8, 
 274         SCFG,   8, 
 275         AIBT,   8, 
 276         AMOD,   8, 
 277         P0HP,   8, 
 278         P2HP,   8, 
 279         P0IL,   8, 
 280         P2IL,   8, 
 281         IDLY,   8, 
 282         PMTP,   8, 
 283         PMIO,   8, 
 284         PMBM,   8, 
 285         PMTM,   8, 
 286         PSTP,   8, 
 287         PSIO,   8, 
 288         PSBM,   8, 
 289         PSTM,   8, 
 290         SMTP,   8, 
 291         SMIO,   8, 
 292         SMBM,   8, 
 293         SMTM,   8, 
 294         SSTP,   8, 
 295         SSIO,   8, 
 296         SSBM,   8, 
 297         SSTM,   8, 
 298         IDE0,   8, 
 299         IDE1,   8, 
 300         IDE2,   8, 
 301         IDE3,   8, 
 302         IDE4,   8, 
 303         IDE5,   8, 
 304         IDE6,   8, 
 305         IDE7,   8, 
 306         PEGS,   8, 
 307         D2F1,   8, 
 308         IGMT,   8, 
 309         DTSZ,   8, 
 310         HIUB,   8, 
 311         LUBS,   8, 
 312         EDCG,   8, 
 313         SDFY,   8, 
 314         SDTC,   8, 
 315         SDRP,   8, 
 316         SDCL,   8, 
 317         SDRC,   8, 
 318         SDRE,   8, 
 319         FC2L,   8, 
 320         FC3L,   8, 
 321         FCS4,   8, 
 322         APIM,   8, 
 323         HPTS,   8, 
 324         HPTA,   8, 
 325         EMAS,   8, 
 326         MASF,   8, 
 327         ASFB,   8, 
 328         MBTX,   8, 
 329         XPRO,   8, 
 330         IDER,   8, 
 331         SOLE,   8, 
 332         EYLS,   8, 
 333         EYLH,   8, 
 334         TPMD,   8, 
 335         TPMO,   8, 
 336         TPMC,   8, 
 337         TPMM,   8, 
 338         TPCC,   8, 
 339         TPLC,   8, 
 340         TPLR,   32, 
 341         ISTC,   8, 
 342         TRML,   8, 
 343         TRON,   8, 
 344         NXMD,   8, 
 345         PCRR,   8, 
 346         C4EN,   8, 
 347         C43D,   8, 
 348         EMTT,   8, 
 349         PROH,   8, 
 350         DFSB,   8, 
 351         TUBM,   8, 
 352         TSTE,   8, 
 353         DAS3,   8, 
 354         WKPM,   8, 
 355         WKMD,   8, 
 356         WKS5,   8, 
 357         HOUR,   8, 
 358         MINS,   8, 
 359         SECS,   8, 
 360         DOFM,   8, 
 361         QKS4,   8, 
 362         POPU,   8, 
 363         POPD,   8, 
 364         NXFE,   8, 
 365         VTST,   8, 
 366         VTFE,   8, 
 367         S5FG,   8, 
 368         CSTS,   8, 
 369         ENCS,   8, 
 370         DEC4,   8, 
 371         HC4E,   8, 
 372         ENC6,   8, 
 373         CSTR,   8, 
 374         CMPE,   8, 
 375         DTSE,   8, 
 376         DTSC,   8, 
 377         QBOT,   8, 
 378         QEBT,   8, 
 379         PBOT,   8, 
 380         OSYS,   16, 
 381         PSW0,   8, 
 382         PSW1,   8, 
 383         D2DF,   8, 
 384         F12F,   8
 385     }
 386 
 387     OperationRegion (CMS1, SystemIO, 0x72, 0x02)
 388     Field (CMS1, ByteAcc, NoLock, Preserve)
 389     {
 390         CMSI,   8, 
 391         CMSD,   8
 392     }
 393 
 394     Method (CMSW, 2, NotSerialized)
 395     {
 396         CMSI = Arg0
 397         CMSD = Arg1
 398     }
 399 
 400     OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
 401     Field (IO_T, ByteAcc, NoLock, Preserve)
 402     {
 403         Offset (0x02), 
 404         Offset (0x04), 
 405         Offset (0x06), 
 406         Offset (0x08), 
 407         TRP0,   8, 
 408         Offset (0x0A), 
 409         Offset (0x0B), 
 410         Offset (0x0C), 
 411         Offset (0x0D), 
 412         Offset (0x0E), 
 413         Offset (0x0F), 
 414         Offset (0x10)
 415     }
 416 
 417     OperationRegion (IO_D, SystemIO, 0x0810, 0x08)
 418     Field (IO_D, ByteAcc, NoLock, Preserve)
 419     {
 420         TRPD,   8
 421     }
 422 
 423     OperationRegion (NVST, SystemMemory, 0x5F4BEE78, 0x00000056)
 424     Field (NVST, AnyAcc, Lock, Preserve)
 425     {
 426         SMIF,   8, 
 427         PRM0,   8, 
 428         PRM1,   8, 
 429         BRTL,   8, 
 430         TLST,   8, 
 431         IGDS,   8, 
 432         LCDA,   16, 
 433         CSTE,   16, 
 434         NSTE,   16, 
 435         CADL,   16, 
 436         PADL,   16, 
 437         LIDS,   8, 
 438         PWRS,   8, 
 439         BVAL,   32, 
 440         CMPF,   8, 
 441         CSTF,   8, 
 442         GTF0,   56, 
 443         GTF2,   56, 
 444         IDEM,   8, 
 445         DTS1,   8, 
 446         DTS2,   8, 
 447         DTSF,   8, 
 448         PPMF,   32, 
 449         DI00,   320
 450     }
 451 
 452     Scope (_PR)
 453     {
 454         Processor (CPU0, 0x01, 0x00000410, 0x06) {}
 455         Processor (CPU1, 0x02, 0x00000410, 0x06) {}
 456     }
 457 
 458     Method (IHWM, 2, NotSerialized)
 459     {
 460         PRM0 = Arg0
 461         DI00 = Arg1
 462         APMC = 0xD1
 463         Local0 = DI00 /* \DI00 */
 464         Return (Local0)
 465     }
 466 
 467     OperationRegion (GSMI, SystemIO, 0xB2, 0x02)
 468     Field (GSMI, ByteAcc, NoLock, Preserve)
 469     {
 470         APMC,   8, 
 471         APMD,   8
 472     }
 473 
 474     Name (ECON, Zero)
 475     Name (CTYP, Zero)
 476     Name (DSEN, One)
 477     Name (PSTA, Zero)
 478     Method (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
 479     {
 480         If (Arg0 == 0x03)
 481         {
 482             P80H = 0x53
 483         }
 484 
 485         If (Arg0 == 0x04)
 486         {
 487             If (ECON)
 488             {
 489                 \_SB.PCI0.LPC.EC0.FLS4 = One
 490             }
 491 
 492             P80H = 0x54
 493         }
 494 
 495         Return (Zero)
 496     }
 497 
 498     Method (_WAK, 1, NotSerialized)  // _WAK: Wake
 499     {
 500         If (ECON)
 501         {
 502             \_SB.BAT1.UBIF ()
 503             Notify (\_SB.BAT1, 0x80) // Status Change
 504             Notify (\_SB.BAT1, 0x81) // Information Change
 505         }
 506 
 507         If (Arg0 == 0x03)
 508         {
 509             Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
 510             Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
 511             P80H = 0xE3
 512         }
 513 
 514         If (Arg0 == 0x04)
 515         {
 516             Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
 517             Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
 518             P80H = 0xE4
 519         }
 520 
 521         Return (Zero)
 522     }
 523 
 524     Name (_S0, Package (0x04)  // _S0_: S0 System State
 525     {
 526         Zero, 
 527         Zero, 
 528         Zero, 
 529         Zero
 530     })
 531     If (DAS3 == One)
 532     {
 533         Name (_S3, Package (0x04)  // _S3_: S3 System State
 534         {
 535             0x05, 
 536             0x05, 
 537             Zero, 
 538             Zero
 539         })
 540     }
 541 
 542     Name (_S4, Package (0x04)  // _S4_: S4 System State
 543     {
 544         0x06, 
 545         0x06, 
 546         Zero, 
 547         Zero
 548     })
 549     Name (_S5, Package (0x04)  // _S5_: S5 System State
 550     {
 551         0x07, 
 552         0x07, 
 553         Zero, 
 554         Zero
 555     })
 556     Scope (_GPE)
 557     {
 558         Method (_L03, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 559         {
 560             Notify (\_SB.PCI0.UHC1, 0x02) // Device Wake
 561         }
 562 
 563         Method (_L04, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 564         {
 565             Notify (\_SB.PCI0.UHC2, 0x02) // Device Wake
 566         }
 567 
 568         Method (_L05, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 569         {
 570             Notify (\_SB.PCI0.AZAL, 0x02) // Device Wake
 571             Notify (\_SB.PCI0.MODM, 0x02) // Device Wake
 572         }
 573 
 574         Method (_L09, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 575         {
 576             Notify (\_SB.PCI0.EXP1, 0x02) // Device Wake
 577             Notify (\_SB.PCI0.EXP2, 0x02) // Device Wake
 578             Notify (\_SB.PCI0.EXP3, 0x02) // Device Wake
 579             Notify (\_SB.PCI0.EXP4, 0x02) // Device Wake
 580         }
 581 
 582         Method (_L0B, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 583         {
 584             Notify (\_SB.PCI0.P32, 0x02) // Device Wake
 585         }
 586 
 587         Method (_L0C, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 588         {
 589             Notify (\_SB.PCI0.UHC3, 0x02) // Device Wake
 590         }
 591 
 592         Method (_L0D, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 593         {
 594             Notify (\_SB.PCI0.ECHI, 0x02) // Device Wake
 595         }
 596 
 597         Method (_L0E, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 598         {
 599             Notify (\_SB.PCI0.UHC4, 0x02) // Device Wake
 600         }
 601 
 602         Method (_L19, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 603         {
 604             Sleep (0x64)
 605             If (\_SB.PCI0.EXP4.PDC4)
 606             {
 607                 \_SB.PCI0.EXP4.PDC4 = One
 608                 \_SB.PCI0.EXP4.HPCS = One
 609                 If (\_SB.PCI0.EXP4.PDS4)
 610                 {
 611                     INV9 = Zero
 612                     APMD = 0x94
 613                     APMC = 0xB2
 614                     Sleep (0x64)
 615                 }
 616                 Else
 617                 {
 618                     INV9 = One
 619                     Sleep (0x64)
 620                 }
 621 
 622                 Notify (\_SB.PCI0.EXP4, Zero) // Bus Check
 623             }
 624         }
 625 
 626         Method (_L1A, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
 627         {
 628             Sleep (0x64)
 629             If (\_SB.PCI0.EXP1.PDC1)
 630             {
 631                 \_SB.PCI0.EXP1.PDC1 = One
 632                 \_SB.PCI0.EXP1.HPCS = One
 633                 If (\_SB.PCI0.EXP1.PDS1)
 634                 {
 635                     INVA = Zero
 636                     APMD = 0x91
 637                     APMC = 0xB2
 638                     Sleep (0x64)
 639                 }
 640                 Else
 641                 {
 642                     INVA = One
 643                     Sleep (0x64)
 644                 }
 645 
 646                 Notify (\_SB.PCI0.EXP1, Zero) // Bus Check
 647             }
 648         }
 649     }
 650 
 651     Name (GPIC, Zero)
 652     Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
 653     {
 654         GPIC = Arg0
 655     }
 656 
 657     Method (_INI, 0, NotSerialized)  // _INI: Initialize
 658     {
 659         P80H = 0x12
 660         If (CondRefOf (_OSI, Local0))
 661         {
 662             If (_OSI ("Linux"))
 663             {
 664                 OSYS = 0x03E8
 665                 \_SB.PCI0.LPC.S4TM = 0x0A
 666                 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
 667                 \_SB.PCI0.EXP2.LL0S = One
 668                 \_SB.PCI0.EXP2.LLL1 = One
 669             }
 670             ElseIf (_OSI ("Windows 2006"))
 671             {
 672                 OSYS = 0x07D6
 673                 \_SB.PCI0.LPC.S4TM = 0x06
 674                 \_SB.PCI0.EXP2.PXS2.LSMP = Zero
 675                 \_SB.PCI0.EXP2.LL0S = Zero
 676                 \_SB.PCI0.EXP2.LLL1 = Zero
 677             }
 678             Else
 679             {
 680                 \_SB.PCI0.LPC.S4TM = 0x0A
 681                 \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
 682                 \_SB.PCI0.EXP2.LL0S = One
 683                 \_SB.PCI0.EXP2.LLL1 = One
 684                 OSYS = 0x07D1
 685             }
 686         }
 687         Else
 688         {
 689             \_SB.PCI0.LPC.S4TM = 0x0A
 690             \_SB.PCI0.EXP2.PXS2.LSMP = 0x43
 691             \_SB.PCI0.EXP2.LL0S = One
 692             \_SB.PCI0.EXP2.LLL1 = One
 693             OSYS = 0x07D0
 694         }
 695     }
 696 
 697     Method (GETP, 1, Serialized)
 698     {
 699         If ((Arg0 & 0x09) == Zero)
 700         {
 701             Return (Ones)
 702         }
 703 
 704         If ((Arg0 & 0x09) == 0x08)
 705         {
 706             Return (0x0384)
 707         }
 708 
 709         Local0 = ((Arg0 & 0x0300) >> 0x08)
 710         Local1 = ((Arg0 & 0x3000) >> 0x0C)
 711         Return ((0x1E * (0x09 - (Local0 + Local1))))
 712     }
 713 
 714     Method (GDMA, 5, Serialized)
 715     {
 716         If (Arg0)
 717         {
 718             If (Arg1 && Arg4)
 719             {
 720                 Return (0x14)
 721             }
 722 
 723             If (Arg2 && Arg4)
 724             {
 725                 Return (((0x04 - Arg3) * 0x0F))
 726             }
 727 
 728             Return (((0x04 - Arg3) * 0x1E))
 729         }
 730 
 731         Return (Ones)
 732     }
 733 
 734     Method (GETT, 1, Serialized)
 735     {
 736         Return ((0x1E * (0x09 - (((Arg0 >> 0x02) & 0x03
 737             ) + (Arg0 & 0x03)))))
 738     }
 739 
 740     Method (GETF, 3, Serialized)
 741     {
 742         Name (TMPF, Zero)
 743         If (Arg0)
 744         {
 745             TMPF |= One
 746         }
 747 
 748         If (Arg2 & 0x02)
 749         {
 750             TMPF |= 0x02
 751         }
 752 
 753         If (Arg1)
 754         {
 755             TMPF |= 0x04
 756         }
 757 
 758         If (Arg2 & 0x20)
 759         {
 760             TMPF |= 0x08
 761         }
 762 
 763         If (Arg2 & 0x4000)
 764         {
 765             TMPF |= 0x10
 766         }
 767 
 768         Return (TMPF) /* \GETF.TMPF */
 769     }
 770 
 771     Method (SETP, 3, Serialized)
 772     {
 773         If (Arg0 > 0xF0)
 774         {
 775             Return (0x08)
 776         }
 777         Else
 778         {
 779             If (Arg1 & 0x02)
 780             {
 781                 If ((Arg0 <= 0x78) && (Arg2 & 0x02))
 782                 {
 783                     Return (0x2301)
 784                 }
 785 
 786                 If ((Arg0 <= 0xB4) && (Arg2 & One))
 787                 {
 788                     Return (0x2101)
 789                 }
 790             }
 791 
 792             Return (0x1001)
 793         }
 794     }
 795 
 796     Method (SDMA, 1, Serialized)
 797     {
 798         If (Arg0 <= 0x14)
 799         {
 800             Return (One)
 801         }
 802 
 803         If (Arg0 <= 0x1E)
 804         {
 805             Return (0x02)
 806         }
 807 
 808         If (Arg0 <= 0x2D)
 809         {
 810             Return (One)
 811         }
 812 
 813         If (Arg0 <= 0x3C)
 814         {
 815             Return (0x02)
 816         }
 817 
 818         If (Arg0 <= 0x5A)
 819         {
 820             Return (One)
 821         }
 822 
 823         Return (Zero)
 824     }
 825 
 826     Method (SETT, 3, Serialized)
 827     {
 828         If (Arg1 & 0x02)
 829         {
 830             If ((Arg0 <= 0x78) && (Arg2 & 0x02))
 831             {
 832                 Return (0x0B)
 833             }
 834 
 835             If ((Arg0 <= 0xB4) && (Arg2 & One))
 836             {
 837                 Return (0x09)
 838             }
 839         }
 840 
 841         Return (0x04)
 842     }
 843 
 844     Scope (_SB)
 845     {
 846         Device (PWRB)
 847         {
 848             Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */)  // _HID: Hardware ID
 849         }
 850 
 851         Device (LID0)
 852         {
 853             Name (_HID, EisaId ("PNP0C0D") /* Lid Device */)  // _HID: Hardware ID
 854             Method (_LID, 0, NotSerialized)  // _LID: Lid Status
 855             {
 856                 If (ECON)
 857                 {
 858                     If (^^PCI0.LPC.EC0.LID2 == Zero)
 859                     {
 860                         Return (One)
 861                     }
 862                     Else
 863                     {
 864                         Return (Zero)
 865                     }
 866                 }
 867                 Else
 868                 {
 869                     Return (One)
 870                 }
 871             }
 872         }
 873 
 874         Device (SLPB)
 875         {
 876             Name (_HID, EisaId ("PNP0C0E") /* Sleep Button Device */)  // _HID: Hardware ID
 877         }
 878 
 879         Device (BAT1)
 880         {
 881             Name (CBTI, Zero)
 882             Name (PBTI, Zero)
 883             Name (BTIN, Zero)
 884             Name (BTCH, Zero)
 885             Name (BIFI, Zero)
 886             Name (SEL0, Zero)
 887             Name (BCRI, Zero)
 888             Name (PBIF, Package (0x0D)
 889             {
 890                 One, 
 891                 0x1130, 
 892                 0x1130, 
 893                 One, 
 894                 0x2B5C, 
 895                 0x012C, 
 896                 0x84, 
 897                 0x20, 
 898                 0x20, 
 899                 "BAT1      ", 
 900                 "11        ", 
 901                 "11        ", 
 902                 "11        "
 903             })
 904             Name (PBST, Package (0x04)
 905             {
 906                 Zero, 
 907                 Ones, 
 908                 Ones, 
 909                 0x2710
 910             })
 911             Name (ERRC, Zero)
 912             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
 913             Name (_UID, Zero)  // _UID: Unique ID
 914             Method (_STA, 0, NotSerialized)  // _STA: Status
 915             {
 916                 P80H = 0x11
 917                 If (BTIN)
 918                 {
 919                     Return (0x1F)
 920                 }
 921                 Else
 922                 {
 923                     Return (0x0F)
 924                 }
 925             }
 926 
 927             Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
 928             {
 929                 P80H = 0x12
 930                 If (BIFI == Zero)
 931                 {
 932                     UBIF ()
 933                     BIFI = One
 934                 }
 935 
 936                 Return (PBIF) /* \_SB_.BAT1.PBIF */
 937             }
 938 
 939             Name (LFCC, 0x1130)
 940             Method (UBIF, 0, NotSerialized)
 941             {
 942                 If (ECON)
 943                 {
 944                     P80H = 0x13
 945                     Local0 = ^^PCI0.LPC.EC0.BTDC /* \_SB_.PCI0.LPC_.EC0_.BTDC */
 946                     Local1 = ^^PCI0.LPC.EC0.LFC2 /* \_SB_.PCI0.LPC_.EC0_.LFC2 */
 947                     Local2 = ^^PCI0.LPC.EC0.BTDV /* \_SB_.PCI0.LPC_.EC0_.BTDV */
 948                     Local3 = ^^PCI0.LPC.EC0.BTMD /* \_SB_.PCI0.LPC_.EC0_.BTMD */
 949                     Local4 = ^^PCI0.LPC.EC0.BTMN /* \_SB_.PCI0.LPC_.EC0_.BTMN */
 950                     Local5 = ^^PCI0.LPC.EC0.BTSN /* \_SB_.PCI0.LPC_.EC0_.BTSN */
 951                     Local6 = ^^PCI0.LPC.EC0.LION /* \_SB_.PCI0.LPC_.EC0_.LION */
 952                     PBIF [One] = Local0
 953                     PBIF [0x02] = Local1
 954                     PBIF [0x04] = Local2
 955                     LFCC = Local1
 956                     Local7 = (Local1 * 0x04)
 957                     Local7 /= 0x64
 958                     PBIF [0x06] = Local7
 959                     If (Local6)
 960                     {
 961                         PBIF [0x0B] = "NiMH"
 962                     }
 963                     Else
 964                     {
 965                         PBIF [0x0B] = "LION"
 966                     }
 967 
 968                     Local3 &= 0x0F
 969                     If (Local3 == One)
 970                     {
 971                         PBIF [0x09] = "UM08A31"
 972                     }
 973                     ElseIf (Local3 == 0x02)
 974                     {
 975                         PBIF [0x09] = "UM08A32"
 976                     }
 977                     ElseIf (Local3 == 0x03)
 978                     {
 979                         PBIF [0x09] = "UM08A51"
 980                     }
 981                     ElseIf (Local3 == 0x04)
 982                     {
 983                         PBIF [0x09] = "UM08A52"
 984                     }
 985                     ElseIf (Local3 == 0x05)
 986                     {
 987                         PBIF [0x09] = "UM08A71"
 988                     }
 989                     ElseIf (Local3 == 0x06)
 990                     {
 991                         PBIF [0x09] = "UM08A72"
 992                     }
 993                     ElseIf (Local3 == 0x07)
 994                     {
 995                         PBIF [0x09] = "UM08A73"
 996                     }
 997                     ElseIf (Local3 == 0x08)
 998                     {
 999                         PBIF [0x09] = "UM08A74"
1000                     }
1001                     ElseIf (Local3 == 0x09)
1002                     {
1003                         PBIF [0x09] = "UM08B51"
1004                     }
1005                     ElseIf (Local3 == 0x0A)
1006                     {
1007                         PBIF [0x09] = "UM08B71"
1008                     }
1009                     ElseIf (Local3 == 0x0B)
1010                     {
1011                         PBIF [0x09] = "UM08B72"
1012                     }
1013                     ElseIf (Local3 == 0x0C)
1014                     {
1015                         PBIF [0x09] = "UM08B73"
1016                     }
1017                     ElseIf (Local3 == 0x0D)
1018                     {
1019                         PBIF [0x09] = "UM08B74"
1020                     }
1021                     ElseIf (Local3 == 0x0E)
1022                     {
1023                         PBIF [0x09] = "UM08AC1"
1024                     }
1025 
1026                     If (Local4 == 0x03)
1027                     {
1028                         PBIF [0x0C] = "SANYO"
1029                     }
1030                     ElseIf (Local4 == 0x04)
1031                     {
1032                         PBIF [0x0C] = "SONY"
1033                     }
1034                     ElseIf (Local4 == 0x05)
1035                     {
1036                         PBIF [0x0C] = "PANASONIC"
1037                     }
1038                     ElseIf (Local4 == 0x07)
1039                     {
1040                         PBIF [0x0C] = "SIMPLO"
1041                     }
1042                     ElseIf (Local4 == 0x08)
1043                     {
1044                         PBIF [0x0C] = "MOTOROLA"
1045                     }
1046                     ElseIf (Local4 == 0x09)
1047                     {
1048                         PBIF [0x0C] = "Celxpert"
1049                     }
1050                     Else
1051                     {
1052                         PBIF [0x0C] = "UNKNOWN"
1053                     }
1054 
1055                     PBIF [0x0A] = ITOS (Local5)
1056                 }
1057             }
1058 
1059             Name (RCAP, Zero)
1060             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
1061             {
1062                 P80H = 0x14
1063                 If (BTIN == Zero)
1064                 {
1065                     PBST [Zero] = Zero
1066                     PBST [One] = Ones
1067                     PBST [0x02] = Ones
1068                     PBST [0x03] = Ones
1069                     Return (PBST) /* \_SB_.BAT1.PBST */
1070                 }
1071 
1072                 If (ECON)
1073                 {
1074                     Local0 = ^^PCI0.LPC.EC0.MBTC /* \_SB_.PCI0.LPC_.EC0_.MBTC */
1075                     Local1 = ^^PCI0.LPC.EC0.MBRM /* \_SB_.PCI0.LPC_.EC0_.MBRM */
1076                     Local2 = ^^PCI0.LPC.EC0.MBVG /* \_SB_.PCI0.LPC_.EC0_.MBVG */
1077                     Local3 = ^^PCI0.LPC.EC0.MCUR /* \_SB_.PCI0.LPC_.EC0_.MCUR */
1078                     Local4 = ^^PCI0.LPC.EC0.BTST /* \_SB_.PCI0.LPC_.EC0_.BTST */
1079                     Local5 = ^^PCI0.LPC.EC0.MBTF /* \_SB_.PCI0.LPC_.EC0_.MBTF */
1080                     Local6 = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */
1081                     If (Local6)
1082                     {
1083                         If (Local5 == One)
1084                         {
1085                             Local7 = Zero
1086                             Local1 = LFCC /* \_SB_.BAT1.LFCC */
1087                         }
1088                         ElseIf (Local0 == One)
1089                         {
1090                             Local7 = 0x02
1091                         }
1092                         Else
1093                         {
1094                             Local7 = Zero
1095                         }
1096                     }
1097                     ElseIf (Local4 && One)
1098                     {
1099                         Local7 = One
1100                     }
1101                     Else
1102                     {
1103                         Local7 = Zero
1104                     }
1105 
1106                     Local4 &= 0x04
1107                     If (Local4 == 0x04)
1108                     {
1109                         Local7 |= Local4
1110                     }
1111 
1112                     PBST [Zero] = Local7
1113                     If (!(Local1 & 0x8000))
1114                     {
1115                         PBST [0x02] = Local1
1116                     }
1117 
1118                     If (!(Local2 & 0x8000))
1119                     {
1120                         PBST [0x03] = Local2
1121                     }
1122 
1123                     If (Local3 && 0x8000)
1124                     {
1125                         If (Local3 != 0xFFFF)
1126                         {
1127                             Local3 = ~Local3
1128                             Local3++
1129                             Local3 &= 0xFFFF
1130                         }
1131                     }
1132 
1133                     PBST [One] = Local3
1134                 }
1135 
1136                 Return (PBST) /* \_SB_.BAT1.PBST */
1137             }
1138 
1139             Method (ITOS, 1, NotSerialized)
1140             {
1141                 Local0 = ""
1142                 Local1 = 0x04
1143                 While (Local1)
1144                 {
1145                     Local1--
1146                     Local4 = ((Arg0 >> (Local1 << 0x02)) & 0x0F)
1147                     Local2 = DerefOf (CHAR [Local4])
1148                     Concatenate (Local0, Local2, Local5)
1149                     Local0 = Local5
1150                 }
1151 
1152                 Return (Local0)
1153             }
1154 
1155             Name (CHAR, Package (0x10)
1156             {
1157                 "0", 
1158                 "1", 
1159                 "2", 
1160                 "3", 
1161                 "4", 
1162                 "5", 
1163                 "6", 
1164                 "7", 
1165                 "8", 
1166                 "9", 
1167                 "A", 
1168                 "B", 
1169                 "C", 
1170                 "D", 
1171                 "E", 
1172                 "F"
1173             })
1174             Method (BATS, 0, NotSerialized)
1175             {
1176                 If (ECON)
1177                 {
1178                     P80H = 0x15
1179                     Local0 = ^^PCI0.LPC.EC0.MBTS /* \_SB_.PCI0.LPC_.EC0_.MBTS */
1180                     If (Local0 == One)
1181                     {
1182                         If (BTIN == Zero)
1183                         {
1184                             BTCH = One
1185                             BIFI = Zero
1186                         }
1187 
1188                         BTIN = One
1189                     }
1190                     Else
1191                     {
1192                         If (BTIN == One)
1193                         {
1194                             BTCH = One
1195                             BIFI = Zero
1196                         }
1197 
1198                         BTIN = Zero
1199                     }
1200                 }
1201             }
1202         }
1203 
1204         Device (ACAD)
1205         {
1206             Name (_HID, "ACPI0003" /* Power Source Device */)  // _HID: Hardware ID
1207             Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
1208             {
1209                 _SB
1210             })
1211             Name (ACST, Zero)
1212             Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
1213             {
1214                 If (ECON)
1215                 {
1216                     P80H = 0x16
1217                     ACST = ^^PCI0.LPC.EC0.ACDF /* \_SB_.PCI0.LPC_.EC0_.ACDF */
1218                 }
1219                 Else
1220                 {
1221                     ACST = One
1222                 }
1223 
1224                 If (ACST)
1225                 {
1226                     Local0 = One
1227                     ^^BAT1.BCRI = Zero
1228                 }
1229                 Else
1230                 {
1231                     Local0 = Zero
1232                 }
1233 
1234                 Return (Local0)
1235             }
1236         }
1237 
1238         Device (PCI0)
1239         {
1240             Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
1241             Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
1242             Name (_ADR, Zero)  // _ADR: Address
1243             Method (_INI, 0, NotSerialized)  // _INI: Initialize
1244             {
1245                 P80H = 0x12
1246                 If (CondRefOf (_OSI, Local0))
1247                 {
1248                     If (_OSI ("Linux"))
1249                     {
1250                         OSYS = 0x03E8
1251                         ^LPC.S4TM = 0x0A
1252                         ^EXP2.PXS2.LSMP = 0x43
1253                         ^EXP2.LL0S = One
1254                         ^EXP2.LLL1 = One
1255                     }
1256                     ElseIf (_OSI ("Windows 2006"))
1257                     {
1258                         OSYS = 0x07D6
1259                         ^LPC.S4TM = 0x06
1260                         ^EXP2.PXS2.LSMP = Zero
1261                         ^EXP2.LL0S = Zero
1262                         ^EXP2.LLL1 = Zero
1263                     }
1264                     Else
1265                     {
1266                         ^LPC.S4TM = 0x0A
1267                         ^EXP2.PXS2.LSMP = 0x43
1268                         ^EXP2.LL0S = One
1269                         ^EXP2.LLL1 = One
1270                         OSYS = 0x07D1
1271                     }
1272                 }
1273                 Else
1274                 {
1275                     ^LPC.S4TM = 0x0A
1276                     ^EXP2.PXS2.LSMP = 0x43
1277                     ^EXP2.LL0S = One
1278                     ^EXP2.LLL1 = One
1279                     OSYS = 0x07D0
1280                 }
1281             }
1282 
1283             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
1284             {
1285                 Local0 = Arg2
1286                 Local1 = (Local0 * 0x04)
1287                 Name (BUF1, Buffer (Local1) {})
1288                 BUF1 = Arg3
1289                 Local1 = Zero
1290                 Local2 = Zero
1291                 While (Local0)
1292                 {
1293                     Local2 = (Local1 * 0x04)
1294                     CreateDWordField (BUF1, Local2, CAPB)
1295                     If (Arg1)
1296                     {
1297                         If (Local1 == Zero)
1298                         {
1299                             CAPB &= 0xFFFFFFFC
1300                         }
1301                     }
1302                     Else
1303                     {
1304                     }
1305 
1306                     Local1++
1307                     Local0--
1308                 }
1309 
1310                 Return (BUF1) /* \_SB_.PCI0._OSC.BUF1 */
1311             }
1312 
1313             Name (_BBN, Zero)  // _BBN: BIOS Bus Number
1314             OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
1315             Field (HBUS, DWordAcc, NoLock, Preserve)
1316             {
1317                 Offset (0x50), 
1318                     ,   4, 
1319                 PM0H,   2, 
1320                 Offset (0x51), 
1321                 PM1L,   2, 
1322                     ,   2, 
1323                 PM1H,   2, 
1324                 Offset (0x52), 
1325                 PM2L,   2, 
1326                     ,   2, 
1327                 PM2H,   2, 
1328                 Offset (0x53), 
1329                 PM3L,   2, 
1330                     ,   2, 
1331                 PM3H,   2, 
1332                 Offset (0x54), 
1333                 PM4L,   2, 
1334                     ,   2, 
1335                 PM4H,   2, 
1336                 Offset (0x55), 
1337                 PM5L,   2, 
1338                     ,   2, 
1339                 PM5H,   2, 
1340                 Offset (0x56), 
1341                 PM6L,   2, 
1342                     ,   2, 
1343                 PM6H,   2, 
1344                 Offset (0x57), 
1345                     ,   7, 
1346                 HENA,   1, 
1347                 Offset (0x5C), 
1348                     ,   3, 
1349                 TOUD,   5
1350             }
1351 
1352             Name (BUF0, ResourceTemplate ()
1353             {
1354                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
1355                     0x0000,             // Granularity
1356                     0x0000,             // Range Minimum
1357                     0x00FF,             // Range Maximum
1358                     0x0000,             // Translation Offset
1359                     0x0100,             // Length
1360                     0x00,, )
1361                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1362                     0x00000000,         // Granularity
1363                     0x00000000,         // Range Minimum
1364                     0x00000CF7,         // Range Maximum
1365                     0x00000000,         // Translation Offset
1366                     0x00000CF8,         // Length
1367                     0x00,, , TypeStatic)
1368                 IO (Decode16,
1369                     0x0CF8,             // Range Minimum
1370                     0x0CF8,             // Range Maximum
1371                     0x01,               // Alignment
1372                     0x08,               // Length
1373                     )
1374                 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
1375                     0x00000000,         // Granularity
1376                     0x00000D00,         // Range Minimum
1377                     0x0000FFFF,         // Range Maximum
1378                     0x00000000,         // Translation Offset
1379                     0x0000F300,         // Length
1380                     0x00,, , TypeStatic)
1381                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1382                     0x00000000,         // Granularity
1383                     0x000A0000,         // Range Minimum
1384                     0x000BFFFF,         // Range Maximum
1385                     0x00000000,         // Translation Offset
1386                     0x00020000,         // Length
1387                     0x00,, , AddressRangeMemory, TypeStatic)
1388                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1389                     0x00000000,         // Granularity
1390                     0x000C0000,         // Range Minimum
1391                     0x000C3FFF,         // Range Maximum
1392                     0x00000000,         // Translation Offset
1393                     0x00004000,         // Length
1394                     0x00,, _Y00, AddressRangeMemory, TypeStatic)
1395                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1396                     0x00000000,         // Granularity
1397                     0x000C4000,         // Range Minimum
1398                     0x000C7FFF,         // Range Maximum
1399                     0x00000000,         // Translation Offset
1400                     0x00004000,         // Length
1401                     0x00,, _Y01, AddressRangeMemory, TypeStatic)
1402                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1403                     0x00000000,         // Granularity
1404                     0x000C8000,         // Range Minimum
1405                     0x000CBFFF,         // Range Maximum
1406                     0x00000000,         // Translation Offset
1407                     0x00004000,         // Length
1408                     0x00,, _Y02, AddressRangeMemory, TypeStatic)
1409                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1410                     0x00000000,         // Granularity
1411                     0x000CC000,         // Range Minimum
1412                     0x000CFFFF,         // Range Maximum
1413                     0x00000000,         // Translation Offset
1414                     0x00004000,         // Length
1415                     0x00,, _Y03, AddressRangeMemory, TypeStatic)
1416                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1417                     0x00000000,         // Granularity
1418                     0x000D0000,         // Range Minimum
1419                     0x000D3FFF,         // Range Maximum
1420                     0x00000000,         // Translation Offset
1421                     0x00004000,         // Length
1422                     0x00,, _Y04, AddressRangeMemory, TypeStatic)
1423                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1424                     0x00000000,         // Granularity
1425                     0x000D4000,         // Range Minimum
1426                     0x000D7FFF,         // Range Maximum
1427                     0x00000000,         // Translation Offset
1428                     0x00004000,         // Length
1429                     0x00,, _Y05, AddressRangeMemory, TypeStatic)
1430                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1431                     0x00000000,         // Granularity
1432                     0x000D8000,         // Range Minimum
1433                     0x000DBFFF,         // Range Maximum
1434                     0x00000000,         // Translation Offset
1435                     0x00004000,         // Length
1436                     0x00,, _Y06, AddressRangeMemory, TypeStatic)
1437                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1438                     0x00000000,         // Granularity
1439                     0x000DC000,         // Range Minimum
1440                     0x000DFFFF,         // Range Maximum
1441                     0x00000000,         // Translation Offset
1442                     0x00004000,         // Length
1443                     0x00,, _Y07, AddressRangeMemory, TypeStatic)
1444                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1445                     0x00000000,         // Granularity
1446                     0x000E0000,         // Range Minimum
1447                     0x000E3FFF,         // Range Maximum
1448                     0x00000000,         // Translation Offset
1449                     0x00004000,         // Length
1450                     0x00,, _Y08, AddressRangeMemory, TypeStatic)
1451                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1452                     0x00000000,         // Granularity
1453                     0x000E4000,         // Range Minimum
1454                     0x000E7FFF,         // Range Maximum
1455                     0x00000000,         // Translation Offset
1456                     0x00004000,         // Length
1457                     0x00,, _Y09, AddressRangeMemory, TypeStatic)
1458                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1459                     0x00000000,         // Granularity
1460                     0x000E8000,         // Range Minimum
1461                     0x000EBFFF,         // Range Maximum
1462                     0x00000000,         // Translation Offset
1463                     0x00004000,         // Length
1464                     0x00,, _Y0A, AddressRangeMemory, TypeStatic)
1465                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1466                     0x00000000,         // Granularity
1467                     0x000EC000,         // Range Minimum
1468                     0x000EFFFF,         // Range Maximum
1469                     0x00000000,         // Translation Offset
1470                     0x00004000,         // Length
1471                     0x00,, _Y0B, AddressRangeMemory, TypeStatic)
1472                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1473                     0x00000000,         // Granularity
1474                     0x000F0000,         // Range Minimum
1475                     0x000FFFFF,         // Range Maximum
1476                     0x00000000,         // Translation Offset
1477                     0x00010000,         // Length
1478                     0x00,, _Y0C, AddressRangeMemory, TypeStatic)
1479                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
1480                     0x00000000,         // Granularity
1481                     0x00000000,         // Range Minimum
1482                     0xFEBFFFFF,         // Range Maximum
1483                     0x00000000,         // Translation Offset
1484                     0x00000000,         // Length
1485                     0x00,, _Y0D, AddressRangeMemory, TypeStatic)
1486             })
1487             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
1488             {
1489                 If (PM1L)
1490                 {
1491                     CreateDWordField (BUF0, \_SB.PCI0._Y00._LEN, C0LN)  // _LEN: Length
1492                     C0LN = Zero
1493                 }
1494 
1495                 If (PM1L == One)
1496                 {
1497                     CreateBitField (BUF0, \_SB.PCI0._Y00._RW, C0RW)  // _RW_: Read-Write Status
1498                     C0RW = Zero
1499                 }
1500 
1501                 If (PM1H)
1502                 {
1503                     CreateDWordField (BUF0, \_SB.PCI0._Y01._LEN, C4LN)  // _LEN: Length
1504                     C4LN = Zero
1505                 }
1506 
1507                 If (PM1H == One)
1508                 {
1509                     CreateBitField (BUF0, \_SB.PCI0._Y01._RW, C4RW)  // _RW_: Read-Write Status
1510                     C4RW = Zero
1511                 }
1512 
1513                 If (PM2L)
1514                 {
1515                     CreateDWordField (BUF0, \_SB.PCI0._Y02._LEN, C8LN)  // _LEN: Length
1516                     C8LN = Zero
1517                 }
1518 
1519                 If (PM2L == One)
1520                 {
1521                     CreateBitField (BUF0, \_SB.PCI0._Y02._RW, C8RW)  // _RW_: Read-Write Status
1522                     C8RW = Zero
1523                 }
1524 
1525                 If (PM2H)
1526                 {
1527                     CreateDWordField (BUF0, \_SB.PCI0._Y03._LEN, CCLN)  // _LEN: Length
1528                     CCLN = Zero
1529                 }
1530 
1531                 If (PM2H == One)
1532                 {
1533                     CreateBitField (BUF0, \_SB.PCI0._Y03._RW, CCRW)  // _RW_: Read-Write Status
1534                     CCRW = Zero
1535                 }
1536 
1537                 If (PM3L)
1538                 {
1539                     CreateDWordField (BUF0, \_SB.PCI0._Y04._LEN, D0LN)  // _LEN: Length
1540                     D0LN = Zero
1541                 }
1542 
1543                 If (PM3L == One)
1544                 {
1545                     CreateBitField (BUF0, \_SB.PCI0._Y04._RW, D0RW)  // _RW_: Read-Write Status
1546                     D0RW = Zero
1547                 }
1548 
1549                 If (PM3H)
1550                 {
1551                     CreateDWordField (BUF0, \_SB.PCI0._Y05._LEN, D4LN)  // _LEN: Length
1552                     D4LN = Zero
1553                 }
1554 
1555                 If (PM3H == One)
1556                 {
1557                     CreateBitField (BUF0, \_SB.PCI0._Y05._RW, D4RW)  // _RW_: Read-Write Status
1558                     D4RW = Zero
1559                 }
1560 
1561                 If (PM4L)
1562                 {
1563                     CreateDWordField (BUF0, \_SB.PCI0._Y06._LEN, D8LN)  // _LEN: Length
1564                     D8LN = Zero
1565                 }
1566 
1567                 If (PM4L == One)
1568                 {
1569                     CreateBitField (BUF0, \_SB.PCI0._Y06._RW, D8RW)  // _RW_: Read-Write Status
1570                     D8RW = Zero
1571                 }
1572 
1573                 If (PM4H)
1574                 {
1575                     CreateDWordField (BUF0, \_SB.PCI0._Y07._LEN, DCLN)  // _LEN: Length
1576                     DCLN = Zero
1577                 }
1578 
1579                 If (PM4H == One)
1580                 {
1581                     CreateBitField (BUF0, \_SB.PCI0._Y07._RW, DCRW)  // _RW_: Read-Write Status
1582                     DCRW = Zero
1583                 }
1584 
1585                 If (PM5L)
1586                 {
1587                     CreateDWordField (BUF0, \_SB.PCI0._Y08._LEN, E0LN)  // _LEN: Length
1588                     E0LN = Zero
1589                 }
1590 
1591                 If (PM5L == One)
1592                 {
1593                     CreateBitField (BUF0, \_SB.PCI0._Y08._RW, E0RW)  // _RW_: Read-Write Status
1594                     E0RW = Zero
1595                 }
1596 
1597                 If (PM5H)
1598                 {
1599                     CreateDWordField (BUF0, \_SB.PCI0._Y09._LEN, E4LN)  // _LEN: Length
1600                     E4LN = Zero
1601                 }
1602 
1603                 If (PM5H == One)
1604                 {
1605                     CreateBitField (BUF0, \_SB.PCI0._Y09._RW, E4RW)  // _RW_: Read-Write Status
1606                     E4RW = Zero
1607                 }
1608 
1609                 If (PM6L)
1610                 {
1611                     CreateDWordField (BUF0, \_SB.PCI0._Y0A._LEN, E8LN)  // _LEN: Length
1612                     E8LN = Zero
1613                 }
1614 
1615                 If (PM6L == One)
1616                 {
1617                     CreateBitField (BUF0, \_SB.PCI0._Y0A._RW, E8RW)  // _RW_: Read-Write Status
1618                     E8RW = Zero
1619                 }
1620 
1621                 If (PM6H)
1622                 {
1623                     CreateDWordField (BUF0, \_SB.PCI0._Y0B._LEN, ECLN)  // _LEN: Length
1624                     ECLN = Zero
1625                 }
1626 
1627                 If (PM6H == One)
1628                 {
1629                     CreateBitField (BUF0, \_SB.PCI0._Y0B._RW, ECRW)  // _RW_: Read-Write Status
1630                     ECRW = Zero
1631                 }
1632 
1633                 If (PM0H)
1634                 {
1635                     CreateDWordField (BUF0, \_SB.PCI0._Y0C._LEN, F0LN)  // _LEN: Length
1636                     F0LN = Zero
1637                 }
1638 
1639                 If (PM0H == One)
1640                 {
1641                     CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, F0RW)  // _RW_: Read-Write Status
1642                     F0RW = Zero
1643                 }
1644 
1645                 CreateDWordField (BUF0, \_SB.PCI0._Y0D._MIN, M1MN)  // _MIN: Minimum Base Address
1646                 CreateDWordField (BUF0, \_SB.PCI0._Y0D._MAX, M1MX)  // _MAX: Maximum Base Address
1647                 CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, M1LN)  // _LEN: Length
1648                 M1MN = (TOUD << 0x1B)
1649                 M1LN = ((M1MX - M1MN) + One)
1650                 Return (BUF0) /* \_SB_.PCI0.BUF0 */
1651             }
1652 
1653             Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
1654             {
1655                 If (GPIC == Zero)
1656                 {
1657                     Return (Package (0x0F)
1658                     {
1659                         Package (0x04)
1660                         {
1661                             0x0001FFFF, 
1662                             Zero, 
1663                             ^LPC.LNKA, 
1664                             Zero
1665                         }, 
1666 
1667                         Package (0x04)
1668                         {
1669                             0x0002FFFF, 
1670                             Zero, 
1671                             ^LPC.LNKA, 
1672                             Zero
1673                         }, 
1674 
1675                         Package (0x04)
1676                         {
1677                             0x001BFFFF, 
1678                             Zero, 
1679                             ^LPC.LNKG, 
1680                             Zero
1681                         }, 
1682 
1683                         Package (0x04)
1684                         {
1685                             0x001CFFFF, 
1686                             Zero, 
1687                             ^LPC.LNKA, 
1688                             Zero
1689                         }, 
1690 
1691                         Package (0x04)
1692                         {
1693                             0x001CFFFF, 
1694                             One, 
1695                             ^LPC.LNKB, 
1696                             Zero
1697                         }, 
1698 
1699                         Package (0x04)
1700                         {
1701                             0x001CFFFF, 
1702                             0x02, 
1703                             ^LPC.LNKC, 
1704                             Zero
1705                         }, 
1706 
1707                         Package (0x04)
1708                         {
1709                             0x001CFFFF, 
1710                             0x03, 
1711                             ^LPC.LNKD, 
1712                             Zero
1713                         }, 
1714 
1715                         Package (0x04)
1716                         {
1717                             0x001DFFFF, 
1718                             Zero, 
1719                             ^LPC.LNKA, 
1720                             Zero
1721                         }, 
1722 
1723                         Package (0x04)
1724                         {
1725                             0x001DFFFF, 
1726                             One, 
1727                             ^LPC.LNKB, 
1728                             Zero
1729                         }, 
1730 
1731                         Package (0x04)
1732                         {
1733                             0x001DFFFF, 
1734                             0x02, 
1735                             ^LPC.LNKC, 
1736                             Zero
1737                         }, 
1738 
1739                         Package (0x04)
1740                         {
1741                             0x001DFFFF, 
1742                             0x03, 
1743                             ^LPC.LNKD, 
1744                             Zero
1745                         }, 
1746 
1747                         Package (0x04)
1748                         {
1749                             0x001EFFFF, 
1750                             Zero, 
1751                             ^LPC.LNKA, 
1752                             Zero
1753                         }, 
1754 
1755                         Package (0x04)
1756                         {
1757                             0x001EFFFF, 
1758                             One, 
1759                             ^LPC.LNKB, 
1760                             Zero
1761                         }, 
1762 
1763                         Package (0x04)
1764                         {
1765                             0x001FFFFF, 
1766                             Zero, 
1767                             ^LPC.LNKA, 
1768                             Zero
1769                         }, 
1770 
1771                         Package (0x04)
1772                         {
1773                             0x001FFFFF, 
1774                             One, 
1775                             ^LPC.LNKB, 
1776                             Zero
1777                         }
1778                     })
1779                 }
1780                 Else
1781                 {
1782                     Return (Package (0x0F)
1783                     {
1784                         Package (0x04)
1785                         {
1786                             0x0001FFFF, 
1787                             Zero, 
1788                             Zero, 
1789                             0x10
1790                         }, 
1791 
1792                         Package (0x04)
1793                         {
1794                             0x0002FFFF, 
1795                             Zero, 
1796                             Zero, 
1797                             0x10
1798                         }, 
1799 
1800                         Package (0x04)
1801                         {
1802                             0x001BFFFF, 
1803                             Zero, 
1804                             Zero, 
1805                             0x10
1806                         }, 
1807 
1808                         Package (0x04)
1809                         {
1810                             0x001CFFFF, 
1811                             Zero, 
1812                             Zero, 
1813                             0x10
1814                         }, 
1815 
1816                         Package (0x04)
1817                         {
1818                             0x001CFFFF, 
1819                             One, 
1820                             Zero, 
1821                             0x11
1822                         }, 
1823 
1824                         Package (0x04)
1825                         {
1826                             0x001CFFFF, 
1827                             0x02, 
1828                             Zero, 
1829                             0x12
1830                         }, 
1831 
1832                         Package (0x04)
1833                         {
1834                             0x001CFFFF, 
1835                             0x03, 
1836                             Zero, 
1837                             0x13
1838                         }, 
1839 
1840                         Package (0x04)
1841                         {
1842                             0x001DFFFF, 
1843                             Zero, 
1844                             Zero, 
1845                             0x10
1846                         }, 
1847 
1848                         Package (0x04)
1849                         {
1850                             0x001DFFFF, 
1851                             One, 
1852                             Zero, 
1853                             0x11
1854                         }, 
1855 
1856                         Package (0x04)
1857                         {
1858                             0x001DFFFF, 
1859                             0x02, 
1860                             Zero, 
1861                             0x12
1862                         }, 
1863 
1864                         Package (0x04)
1865                         {
1866                             0x001DFFFF, 
1867                             0x03, 
1868                             Zero, 
1869                             0x13
1870                         }, 
1871 
1872                         Package (0x04)
1873                         {
1874                             0x001EFFFF, 
1875                             Zero, 
1876                             Zero, 
1877                             0x10
1878                         }, 
1879 
1880                         Package (0x04)
1881                         {
1882                             0x001EFFFF, 
1883                             One, 
1884                             Zero, 
1885                             0x11
1886                         }, 
1887 
1888                         Package (0x04)
1889                         {
1890                             0x001FFFFF, 
1891                             Zero, 
1892                             Zero, 
1893                             0x10
1894                         }, 
1895 
1896                         Package (0x04)
1897                         {
1898                             0x001FFFFF, 
1899                             One, 
1900                             Zero, 
1901                             0x11
1902                         }
1903                     })
1904                 }
1905             }
1906 
1907             Device (P32)
1908             {
1909                 Name (_ADR, 0x001E0000)  // _ADR: Address
1910                 Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
1911                 {
1912                     If (WKPM == One)
1913                     {
1914                         Return (Package (0x02)
1915                         {
1916                             0x0B, 
1917                             0x04
1918                         })
1919                     }
1920                     Else
1921                     {
1922                         Return (Package (0x02)
1923                         {
1924                             0x0B, 
1925                             Zero
1926                         })
1927                     }
1928                 }
1929 
1930                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
1931                 {
1932                     If (GPIC == Zero)
1933                     {
1934                         Return (Package (0x09)
1935                         {
1936                             Package (0x04)
1937                             {
1938                                 0x0002FFFF, 
1939                                 Zero, 
1940                                 ^^LPC.LNKC, 
1941                                 Zero
1942                             }, 
1943 
1944                             Package (0x04)
1945                             {
1946                                 0x0002FFFF, 
1947                                 One, 
1948                                 ^^LPC.LNKD, 
1949                                 Zero
1950                             }, 
1951 
1952                             Package (0x04)
1953                             {
1954                                 0x0002FFFF, 
1955                                 0x02, 
1956                                 ^^LPC.LNKB, 
1957                                 Zero
1958                             }, 
1959 
1960                             Package (0x04)
1961                             {
1962                                 0x0002FFFF, 
1963                                 0x03, 
1964                                 ^^LPC.LNKA, 
1965                                 Zero
1966                             }, 
1967 
1968                             Package (0x04)
1969                             {
1970                                 0x0003FFFF, 
1971                                 Zero, 
1972                                 ^^LPC.LNKD, 
1973                                 Zero
1974                             }, 
1975 
1976                             Package (0x04)
1977                             {
1978                                 0x0003FFFF, 
1979                                 One, 
1980                                 ^^LPC.LNKC, 
1981                                 Zero
1982                             }, 
1983 
1984                             Package (0x04)
1985                             {
1986                                 0x0003FFFF, 
1987                                 0x02, 
1988                                 ^^LPC.LNKF, 
1989                                 Zero
1990                             }, 
1991 
1992                             Package (0x04)
1993                             {
1994                                 0x0003FFFF, 
1995                                 0x03, 
1996                                 ^^LPC.LNKG, 
1997                                 Zero
1998                             }, 
1999 
2000                             Package (0x04)
2001                             {
2002                                 0x0008FFFF, 
2003                                 Zero, 
2004                                 ^^LPC.LNKE, 
2005                                 Zero
2006                             }
2007                         })
2008                     }
2009                     Else
2010                     {
2011                         Return (Package (0x09)
2012                         {
2013                             Package (0x04)
2014                             {
2015                                 0x0002FFFF, 
2016                                 Zero, 
2017                                 Zero, 
2018                                 0x12
2019                             }, 
2020 
2021                             Package (0x04)
2022                             {
2023                                 0x0002FFFF, 
2024                                 One, 
2025                                 Zero, 
2026                                 0x13
2027                             }, 
2028 
2029                             Package (0x04)
2030                             {
2031                                 0x0002FFFF, 
2032                                 0x02, 
2033                                 Zero, 
2034                                 0x11
2035                             }, 
2036 
2037                             Package (0x04)
2038                             {
2039                                 0x0002FFFF, 
2040                                 0x03, 
2041                                 Zero, 
2042                                 0x10
2043                             }, 
2044 
2045                             Package (0x04)
2046                             {
2047                                 0x0003FFFF, 
2048                                 Zero, 
2049                                 Zero, 
2050                                 0x13
2051                             }, 
2052 
2053                             Package (0x04)
2054                             {
2055                                 0x0003FFFF, 
2056                                 One, 
2057                                 Zero, 
2058                                 0x12
2059                             }, 
2060 
2061                             Package (0x04)
2062                             {
2063                                 0x0003FFFF, 
2064                                 0x02, 
2065                                 Zero, 
2066                                 0x15
2067                             }, 
2068 
2069                             Package (0x04)
2070                             {
2071                                 0x0003FFFF, 
2072                                 0x03, 
2073                                 Zero, 
2074                                 0x16
2075                             }, 
2076 
2077                             Package (0x04)
2078                             {
2079                                 0x0008FFFF, 
2080                                 Zero, 
2081                                 Zero, 
2082                                 0x14
2083                             }
2084                         })
2085                     }
2086                 }
2087             }
2088 
2089             Device (LPC)
2090             {
2091                 Name (_ADR, 0x001F0000)  // _ADR: Address
2092                 OperationRegion (PRR0, PCI_Config, 0x60, 0x04)
2093                 Field (PRR0, AnyAcc, NoLock, Preserve)
2094                 {
2095                     PIRA,   8, 
2096                     PIRB,   8, 
2097                     PIRC,   8, 
2098                     PIRD,   8
2099                 }
2100 
2101                 OperationRegion (PRR1, PCI_Config, 0x68, 0x04)
2102                 Field (PRR1, AnyAcc, NoLock, Preserve)
2103                 {
2104                     PIRE,   8, 
2105                     PIRF,   8, 
2106                     PIRG,   8, 
2107                     PIRH,   8
2108                 }
2109 
2110                 OperationRegion (PRR2, PCI_Config, 0x80, 0x02)
2111                 Field (PRR2, AnyAcc, NoLock, Preserve)
2112                 {
2113                     IODL,   8, 
2114                     IODH,   8
2115                 }
2116 
2117                 OperationRegion (BRKE, PCI_Config, 0xAA, 0x02)
2118                 Field (BRKE, AnyAcc, NoLock, Preserve)
2119                 {
2120                     S4TM,   8, 
2121                     PCEE,   8
2122                 }
2123 
2124                 Device (LNKA)
2125                 {
2126                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2127                     Name (_UID, One)  // _UID: Unique ID
2128                     Method (_STA, 0, NotSerialized)  // _STA: Status
2129                     {
2130                         If (PIRA & 0x80)
2131                         {
2132                             Return (0x09)
2133                         }
2134                         Else
2135                         {
2136                             Return (0x0B)
2137                         }
2138                     }
2139 
2140                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2141                     {
2142                         PIRA |= 0x80
2143                     }
2144 
2145                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2146                     {
2147                         Name (BUF0, ResourceTemplate ()
2148                         {
2149                             IRQ (Level, ActiveLow, Shared, )
2150                                 {0}
2151                         })
2152                         CreateWordField (BUF0, One, IRQW)
2153                         If (PIRA & 0x80)
2154                         {
2155                             Local0 = Zero
2156                         }
2157                         Else
2158                         {
2159                             Local0 = One
2160                         }
2161 
2162                         IRQW = (Local0 << (PIRA & 0x0F))
2163                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKA._CRS.BUF0 */
2164                     }
2165 
2166                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2167                     {
2168                         IRQ (Level, ActiveLow, Shared, )
2169                             {3,4,5,7,9,10,11,12}
2170                     })
2171                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2172                     {
2173                         CreateWordField (Arg0, One, IRQW)
2174                         FindSetRightBit (IRQW, Local0)
2175                         If (IRQW != Zero)
2176                         {
2177                             Local0 &= 0x7F
2178                             Local0--
2179                         }
2180                         Else
2181                         {
2182                             Local0 |= 0x80
2183                         }
2184 
2185                         PIRA = Local0
2186                     }
2187                 }
2188 
2189                 Device (LNKB)
2190                 {
2191                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2192                     Name (_UID, 0x02)  // _UID: Unique ID
2193                     Method (_STA, 0, NotSerialized)  // _STA: Status
2194                     {
2195                         If (PIRB & 0x80)
2196                         {
2197                             Return (0x09)
2198                         }
2199                         Else
2200                         {
2201                             Return (0x0B)
2202                         }
2203                     }
2204 
2205                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2206                     {
2207                         PIRB |= 0x80
2208                     }
2209 
2210                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2211                     {
2212                         Name (BUF0, ResourceTemplate ()
2213                         {
2214                             IRQ (Level, ActiveLow, Shared, )
2215                                 {0}
2216                         })
2217                         CreateWordField (BUF0, One, IRQW)
2218                         If (PIRB & 0x80)
2219                         {
2220                             Local0 = Zero
2221                         }
2222                         Else
2223                         {
2224                             Local0 = One
2225                         }
2226 
2227                         IRQW = (Local0 << (PIRB & 0x0F))
2228                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKB._CRS.BUF0 */
2229                     }
2230 
2231                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2232                     {
2233                         IRQ (Level, ActiveLow, Shared, )
2234                             {3,4,5,7,9,10,11,12}
2235                     })
2236                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2237                     {
2238                         CreateWordField (Arg0, One, IRQW)
2239                         FindSetRightBit (IRQW, Local0)
2240                         If (IRQW != Zero)
2241                         {
2242                             Local0 &= 0x7F
2243                             Local0--
2244                         }
2245                         Else
2246                         {
2247                             Local0 |= 0x80
2248                         }
2249 
2250                         PIRB = Local0
2251                     }
2252                 }
2253 
2254                 Device (LNKC)
2255                 {
2256                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2257                     Name (_UID, 0x03)  // _UID: Unique ID
2258                     Method (_STA, 0, NotSerialized)  // _STA: Status
2259                     {
2260                         If (PIRC & 0x80)
2261                         {
2262                             Return (0x09)
2263                         }
2264                         Else
2265                         {
2266                             Return (0x0B)
2267                         }
2268                     }
2269 
2270                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2271                     {
2272                         PIRC |= 0x80
2273                     }
2274 
2275                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2276                     {
2277                         Name (BUF0, ResourceTemplate ()
2278                         {
2279                             IRQ (Level, ActiveLow, Shared, )
2280                                 {0}
2281                         })
2282                         CreateWordField (BUF0, One, IRQW)
2283                         If (PIRC & 0x80)
2284                         {
2285                             Local0 = Zero
2286                         }
2287                         Else
2288                         {
2289                             Local0 = One
2290                         }
2291 
2292                         IRQW = (Local0 << (PIRC & 0x0F))
2293                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKC._CRS.BUF0 */
2294                     }
2295 
2296                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2297                     {
2298                         IRQ (Level, ActiveLow, Shared, )
2299                             {3,4,5,7,9,10,11,12}
2300                     })
2301                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2302                     {
2303                         CreateWordField (Arg0, One, IRQW)
2304                         FindSetRightBit (IRQW, Local0)
2305                         If (IRQW != Zero)
2306                         {
2307                             Local0 &= 0x7F
2308                             Local0--
2309                         }
2310                         Else
2311                         {
2312                             Local0 |= 0x80
2313                         }
2314 
2315                         PIRC = Local0
2316                     }
2317                 }
2318 
2319                 Device (LNKD)
2320                 {
2321                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2322                     Name (_UID, 0x04)  // _UID: Unique ID
2323                     Method (_STA, 0, NotSerialized)  // _STA: Status
2324                     {
2325                         If (PIRD & 0x80)
2326                         {
2327                             Return (0x09)
2328                         }
2329                         Else
2330                         {
2331                             Return (0x0B)
2332                         }
2333                     }
2334 
2335                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2336                     {
2337                         PIRD |= 0x80
2338                     }
2339 
2340                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2341                     {
2342                         Name (BUF0, ResourceTemplate ()
2343                         {
2344                             IRQ (Level, ActiveLow, Shared, )
2345                                 {0}
2346                         })
2347                         CreateWordField (BUF0, One, IRQW)
2348                         If (PIRD & 0x80)
2349                         {
2350                             Local0 = Zero
2351                         }
2352                         Else
2353                         {
2354                             Local0 = One
2355                         }
2356 
2357                         IRQW = (Local0 << (PIRD & 0x0F))
2358                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKD._CRS.BUF0 */
2359                     }
2360 
2361                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2362                     {
2363                         IRQ (Level, ActiveLow, Shared, )
2364                             {3,4,5,7,9,10,11,12}
2365                     })
2366                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2367                     {
2368                         CreateWordField (Arg0, One, IRQW)
2369                         FindSetRightBit (IRQW, Local0)
2370                         If (IRQW != Zero)
2371                         {
2372                             Local0 &= 0x7F
2373                             Local0--
2374                         }
2375                         Else
2376                         {
2377                             Local0 |= 0x80
2378                         }
2379 
2380                         PIRD = Local0
2381                     }
2382                 }
2383 
2384                 Device (LNKE)
2385                 {
2386                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2387                     Name (_UID, 0x05)  // _UID: Unique ID
2388                     Method (_STA, 0, NotSerialized)  // _STA: Status
2389                     {
2390                         If (PIRE & 0x80)
2391                         {
2392                             Return (0x09)
2393                         }
2394                         Else
2395                         {
2396                             Return (0x0B)
2397                         }
2398                     }
2399 
2400                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2401                     {
2402                         PIRE |= 0x80
2403                     }
2404 
2405                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2406                     {
2407                         Name (BUF0, ResourceTemplate ()
2408                         {
2409                             IRQ (Level, ActiveLow, Shared, )
2410                                 {0}
2411                         })
2412                         CreateWordField (BUF0, One, IRQW)
2413                         If (PIRE & 0x80)
2414                         {
2415                             Local0 = Zero
2416                         }
2417                         Else
2418                         {
2419                             Local0 = One
2420                         }
2421 
2422                         IRQW = (Local0 << (PIRE & 0x0F))
2423                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKE._CRS.BUF0 */
2424                     }
2425 
2426                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2427                     {
2428                         IRQ (Level, ActiveLow, Shared, )
2429                             {3,4,5,7,9,10,11,12}
2430                     })
2431                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2432                     {
2433                         CreateWordField (Arg0, One, IRQW)
2434                         FindSetRightBit (IRQW, Local0)
2435                         If (IRQW != Zero)
2436                         {
2437                             Local0 &= 0x7F
2438                             Local0--
2439                         }
2440                         Else
2441                         {
2442                             Local0 |= 0x80
2443                         }
2444 
2445                         PIRE = Local0
2446                     }
2447                 }
2448 
2449                 Device (LNKF)
2450                 {
2451                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2452                     Name (_UID, 0x06)  // _UID: Unique ID
2453                     Method (_STA, 0, NotSerialized)  // _STA: Status
2454                     {
2455                         If (PIRF & 0x80)
2456                         {
2457                             Return (0x09)
2458                         }
2459                         Else
2460                         {
2461                             Return (0x0B)
2462                         }
2463                     }
2464 
2465                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2466                     {
2467                         PIRF |= 0x80
2468                     }
2469 
2470                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2471                     {
2472                         Name (BUF0, ResourceTemplate ()
2473                         {
2474                             IRQ (Level, ActiveLow, Shared, )
2475                                 {0}
2476                         })
2477                         CreateWordField (BUF0, One, IRQW)
2478                         If (PIRF & 0x80)
2479                         {
2480                             Local0 = Zero
2481                         }
2482                         Else
2483                         {
2484                             Local0 = One
2485                         }
2486 
2487                         IRQW = (Local0 << (PIRF & 0x0F))
2488                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKF._CRS.BUF0 */
2489                     }
2490 
2491                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2492                     {
2493                         IRQ (Level, ActiveLow, Shared, )
2494                             {3,4,5,7,9,10,11,12}
2495                     })
2496                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2497                     {
2498                         CreateWordField (Arg0, One, IRQW)
2499                         FindSetRightBit (IRQW, Local0)
2500                         If (IRQW != Zero)
2501                         {
2502                             Local0 &= 0x7F
2503                             Local0--
2504                         }
2505                         Else
2506                         {
2507                             Local0 |= 0x80
2508                         }
2509 
2510                         PIRF = Local0
2511                     }
2512                 }
2513 
2514                 Device (LNKG)
2515                 {
2516                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2517                     Name (_UID, 0x07)  // _UID: Unique ID
2518                     Method (_STA, 0, NotSerialized)  // _STA: Status
2519                     {
2520                         If (PIRG & 0x80)
2521                         {
2522                             Return (0x09)
2523                         }
2524                         Else
2525                         {
2526                             Return (0x0B)
2527                         }
2528                     }
2529 
2530                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2531                     {
2532                         PIRG |= 0x80
2533                     }
2534 
2535                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2536                     {
2537                         Name (BUF0, ResourceTemplate ()
2538                         {
2539                             IRQ (Level, ActiveLow, Shared, )
2540                                 {0}
2541                         })
2542                         CreateWordField (BUF0, One, IRQW)
2543                         If (PIRG & 0x80)
2544                         {
2545                             Local0 = Zero
2546                         }
2547                         Else
2548                         {
2549                             Local0 = One
2550                         }
2551 
2552                         IRQW = (Local0 << (PIRG & 0x0F))
2553                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKG._CRS.BUF0 */
2554                     }
2555 
2556                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2557                     {
2558                         IRQ (Level, ActiveLow, Shared, )
2559                             {3,4,5,7,9,10,11,12}
2560                     })
2561                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2562                     {
2563                         CreateWordField (Arg0, One, IRQW)
2564                         FindSetRightBit (IRQW, Local0)
2565                         If (IRQW != Zero)
2566                         {
2567                             Local0 &= 0x7F
2568                             Local0--
2569                         }
2570                         Else
2571                         {
2572                             Local0 |= 0x80
2573                         }
2574 
2575                         PIRG = Local0
2576                     }
2577                 }
2578 
2579                 Device (LNKH)
2580                 {
2581                     Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2582                     Name (_UID, 0x08)  // _UID: Unique ID
2583                     Method (_STA, 0, NotSerialized)  // _STA: Status
2584                     {
2585                         If (PIRH & 0x80)
2586                         {
2587                             Return (0x09)
2588                         }
2589                         Else
2590                         {
2591                             Return (0x0B)
2592                         }
2593                     }
2594 
2595                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2596                     {
2597                         PIRH |= 0x80
2598                     }
2599 
2600                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2601                     {
2602                         Name (BUF0, ResourceTemplate ()
2603                         {
2604                             IRQ (Level, ActiveLow, Shared, )
2605                                 {0}
2606                         })
2607                         CreateWordField (BUF0, One, IRQW)
2608                         If (PIRH & 0x80)
2609                         {
2610                             Local0 = Zero
2611                         }
2612                         Else
2613                         {
2614                             Local0 = One
2615                         }
2616 
2617                         IRQW = (Local0 << (PIRH & 0x0F))
2618                         Return (BUF0) /* \_SB_.PCI0.LPC_.LNKH._CRS.BUF0 */
2619                     }
2620 
2621                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
2622                     {
2623                         IRQ (Level, ActiveLow, Shared, )
2624                             {3,4,5,7,9,10,11,12}
2625                     })
2626                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2627                     {
2628                         CreateWordField (Arg0, One, IRQW)
2629                         FindSetRightBit (IRQW, Local0)
2630                         If (IRQW != Zero)
2631                         {
2632                             Local0 &= 0x7F
2633                             Local0--
2634                         }
2635                         Else
2636                         {
2637                             Local0 |= 0x80
2638                         }
2639 
2640                         PIRH = Local0
2641                     }
2642                 }
2643 
2644                 Device (SYSR)
2645                 {
2646                     Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
2647                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
2648                     {
2649                         IO (Decode16,
2650                             0x002E,             // Range Minimum
2651                             0x002E,             // Range Maximum
2652                             0x01,               // Alignment
2653                             0x02,               // Length
2654                             )
2655                         IO (Decode16,
2656                             0x0068,             // Range Minimum
2657                             0x0068,             // Range Maximum
2658                             0x01,               // Alignment
2659                             0x08,               // Length
2660                             )
2661                         IO (Decode16,
2662                             0x0200,             // Range Minimum
2663                             0x0200,             // Range Maximum
2664                             0x01,               // Alignment
2665                             0x10,               // Length
2666                             )
2667                         IO (Decode16,
2668                             0x164E,             // Range Minimum
2669                             0x164E,             // Range Maximum
2670                             0x01,               // Alignment
2671                             0x02,               // Length
2672                             )
2673                         IO (Decode16,
2674                             0x0061,             // Range Minimum
2675                             0x0061,             // Range Maximum
2676                             0x01,               // Alignment
2677                             0x01,               // Length
2678                             )
2679                         IO (Decode16,
2680                             0x0070,             // Range Minimum
2681                             0x0070,             // Range Maximum
2682                             0x01,               // Alignment
2683                             0x01,               // Length
2684                             )
2685                         IO (Decode16,
2686                             0x0080,             // Range Minimum
2687                             0x0080,             // Range Maximum
2688                             0x01,               // Alignment
2689                             0x01,               // Length
2690                             )
2691                         IO (Decode16,
2692                             0x0092,             // Range Minimum
2693                             0x0092,             // Range Maximum
2694                             0x01,               // Alignment
2695                             0x01,               // Length
2696                             )
2697                         IO (Decode16,
2698                             0x00B2,             // Range Minimum
2699                             0x00B2,             // Range Maximum
2700                             0x01,               // Alignment
2701                             0x02,               // Length
2702                             )
2703                         IO (Decode16,
2704                             0x0063,             // Range Minimum
2705                             0x0063,             // Range Maximum
2706                             0x01,               // Alignment
2707                             0x01,               // Length
2708                             )
2709                         IO (Decode16,
2710                             0x0065,             // Range Minimum
2711                             0x0065,             // Range Maximum
2712                             0x01,               // Alignment
2713                             0x01,               // Length
2714                             )
2715                         IO (Decode16,
2716                             0x0067,             // Range Minimum
2717                             0x0067,             // Range Maximum
2718                             0x01,               // Alignment
2719                             0x01,               // Length
2720                             )
2721                         IO (Decode16,
2722                             0x0600,             // Range Minimum
2723                             0x0600,             // Range Maximum
2724                             0x01,               // Alignment
2725                             0x10,               // Length
2726                             )
2727                         IO (Decode16,
2728                             0x0610,             // Range Minimum
2729                             0x0610,             // Range Maximum
2730                             0x01,               // Alignment
2731                             0x01,               // Length
2732                             )
2733                         IO (Decode16,
2734                             0x0800,             // Range Minimum
2735                             0x0800,             // Range Maximum
2736                             0x01,               // Alignment
2737                             0x10,               // Length
2738                             )
2739                         IO (Decode16,
2740                             0x0400,             // Range Minimum
2741                             0x0400,             // Range Maximum
2742                             0x01,               // Alignment
2743                             0x80,               // Length
2744                             )
2745                         IO (Decode16,
2746                             0x0500,             // Range Minimum
2747                             0x0500,             // Range Maximum
2748                             0x01,               // Alignment
2749                             0x40,               // Length
2750                             )
2751                         Memory32Fixed (ReadWrite,
2752                             0xE0000000,         // Address Base
2753                             0x10000000,         // Address Length
2754                             )
2755                         Memory32Fixed (ReadWrite,
2756                             0xFED1C000,         // Address Base
2757                             0x00004000,         // Address Length
2758                             )
2759                         Memory32Fixed (ReadWrite,
2760                             0xFED14000,         // Address Base
2761                             0x00004000,         // Address Length
2762                             )
2763                         Memory32Fixed (ReadWrite,
2764                             0xFED18000,         // Address Base
2765                             0x00001000,         // Address Length
2766                             )
2767                         Memory32Fixed (ReadWrite,
2768                             0xFED19000,         // Address Base
2769                             0x00001000,         // Address Length
2770                             )
2771                         Memory32Fixed (ReadWrite,
2772                             0xFEC00000,         // Address Base
2773                             0x00001000,         // Address Length
2774                             )
2775                         Memory32Fixed (ReadWrite,
2776                             0xFEE00000,         // Address Base
2777                             0x00001000,         // Address Length
2778                             )
2779                     })
2780                 }
2781 
2782                 Device (DMAC)
2783                 {
2784                     Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */)  // _HID: Hardware ID
2785                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
2786                     {
2787                         IO (Decode16,
2788                             0x0000,             // Range Minimum
2789                             0x0000,             // Range Maximum
2790                             0x01,               // Alignment
2791                             0x20,               // Length
2792                             )
2793                         IO (Decode16,
2794                             0x0081,             // Range Minimum
2795                             0x0081,             // Range Maximum
2796                             0x01,               // Alignment
2797                             0x11,               // Length
2798                             )
2799                         IO (Decode16,
2800                             0x0093,             // Range Minimum
2801                             0x0093,             // Range Maximum
2802                             0x01,               // Alignment
2803                             0x0D,               // Length
2804                             )
2805                         IO (Decode16,
2806                             0x00C0,             // Range Minimum
2807                             0x00C0,             // Range Maximum
2808                             0x01,               // Alignment
2809                             0x20,               // Length
2810                             )
2811                         DMA (Compatibility, NotBusMaster, Transfer8_16, )
2812                             {4}
2813                     })
2814                 }
2815 
2816                 Device (RTC)
2817                 {
2818                     Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
2819                     Name (BUF0, ResourceTemplate ()
2820                     {
2821                         IO (Decode16,
2822                             0x0070,             // Range Minimum
2823                             0x0070,             // Range Maximum
2824                             0x01,               // Alignment
2825                             0x08,               // Length
2826                             )
2827                     })
2828                     Name (BUF1, ResourceTemplate ()
2829                     {
2830                         IO (Decode16,
2831                             0x0070,             // Range Minimum
2832                             0x0070,             // Range Maximum
2833                             0x01,               // Alignment
2834                             0x08,               // Length
2835                             )
2836                         IRQNoFlags ()
2837                             {8}
2838                     })
2839                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2840                     {
2841                         If (HPTS == One)
2842                         {
2843                             Return (BUF0) /* \_SB_.PCI0.LPC_.RTC_.BUF0 */
2844                         }
2845                         Else
2846                         {
2847                             Return (BUF1) /* \_SB_.PCI0.LPC_.RTC_.BUF1 */
2848                         }
2849                     }
2850                 }
2851 
2852                 Device (HPET)
2853                 {
2854                     Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
2855                     Name (BUF0, ResourceTemplate ()
2856                     {
2857                         IRQNoFlags ()
2858                             {0}
2859                         IRQNoFlags ()
2860                             {8}
2861                         Memory32Fixed (ReadOnly,
2862                             0xFED00000,         // Address Base
2863                             0x00000400,         // Address Length
2864                             _Y0E)
2865                     })
2866                     Method (_STA, 0, NotSerialized)  // _STA: Status
2867                     {
2868                         If (OSYS >= 0x07D1)
2869                         {
2870                             If (HPTS == One)
2871                             {
2872                                 Return (0x0F)
2873                             }
2874                             Else
2875                             {
2876                                 Return (Zero)
2877                             }
2878                         }
2879                         ElseIf (HPTS)
2880                         {
2881                             Return (0x0B)
2882                         }
2883                         Else
2884                         {
2885                             Return (Zero)
2886                         }
2887                     }
2888 
2889                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2890                     {
2891                         If (HPTS == One)
2892                         {
2893                             CreateDWordField (BUF0, \_SB.PCI0.LPC.HPET._Y0E._BAS, HPT0)  // _BAS: Base Address
2894                             If (HPTA == One)
2895                             {
2896                                 HPT0 = 0xFED01000
2897                             }
2898 
2899                             If (HPTA == 0x02)
2900                             {
2901                                 HPT0 = 0xFED02000
2902                             }
2903 
2904                             If (HPTA == 0x03)
2905                             {
2906                                 HPT0 = 0xFED03000
2907                             }
2908                         }
2909 
2910                         Return (BUF0) /* \_SB_.PCI0.LPC_.HPET.BUF0 */
2911                     }
2912                 }
2913 
2914                 Device (PIC)
2915                 {
2916                     Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
2917                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
2918                     {
2919                         IO (Decode16,
2920                             0x0020,             // Range Minimum
2921                             0x0020,             // Range Maximum
2922                             0x01,               // Alignment
2923                             0x02,               // Length
2924                             )
2925                         IO (Decode16,
2926                             0x0024,             // Range Minimum
2927                             0x0024,             // Range Maximum
2928                             0x01,               // Alignment
2929                             0x02,               // Length
2930                             )
2931                         IO (Decode16,
2932                             0x0028,             // Range Minimum
2933                             0x0028,             // Range Maximum
2934                             0x01,               // Alignment
2935                             0x02,               // Length
2936                             )
2937                         IO (Decode16,
2938                             0x002C,             // Range Minimum
2939                             0x002C,             // Range Maximum
2940                             0x01,               // Alignment
2941                             0x02,               // Length
2942                             )
2943                         IO (Decode16,
2944                             0x0030,             // Range Minimum
2945                             0x0030,             // Range Maximum
2946                             0x01,               // Alignment
2947                             0x02,               // Length
2948                             )
2949                         IO (Decode16,
2950                             0x0034,             // Range Minimum
2951                             0x0034,             // Range Maximum
2952                             0x01,               // Alignment
2953                             0x02,               // Length
2954                             )
2955                         IO (Decode16,
2956                             0x0038,             // Range Minimum
2957                             0x0038,             // Range Maximum
2958                             0x01,               // Alignment
2959                             0x02,               // Length
2960                             )
2961                         IO (Decode16,
2962                             0x003C,             // Range Minimum
2963                             0x003C,             // Range Maximum
2964                             0x01,               // Alignment
2965                             0x02,               // Length
2966                             )
2967                         IO (Decode16,
2968                             0x00A0,             // Range Minimum
2969                             0x00A0,             // Range Maximum
2970                             0x01,               // Alignment
2971                             0x02,               // Length
2972                             )
2973                         IO (Decode16,
2974                             0x00A4,             // Range Minimum
2975                             0x00A4,             // Range Maximum
2976                             0x01,               // Alignment
2977                             0x02,               // Length
2978                             )
2979                         IO (Decode16,
2980                             0x00A8,             // Range Minimum
2981                             0x00A8,             // Range Maximum
2982                             0x01,               // Alignment
2983                             0x02,               // Length
2984                             )
2985                         IO (Decode16,
2986                             0x00AC,             // Range Minimum
2987                             0x00AC,             // Range Maximum
2988                             0x01,               // Alignment
2989                             0x02,               // Length
2990                             )
2991                         IO (Decode16,
2992                             0x00B0,             // Range Minimum
2993                             0x00B0,             // Range Maximum
2994                             0x01,               // Alignment
2995                             0x02,               // Length
2996                             )
2997                         IO (Decode16,
2998                             0x00B4,             // Range Minimum
2999                             0x00B4,             // Range Maximum
3000                             0x01,               // Alignment
3001                             0x02,               // Length
3002                             )
3003                         IO (Decode16,
3004                             0x00B8,             // Range Minimum
3005                             0x00B8,             // Range Maximum
3006                             0x01,               // Alignment
3007                             0x02,               // Length
3008                             )
3009                         IO (Decode16,
3010                             0x00BC,             // Range Minimum
3011                             0x00BC,             // Range Maximum
3012                             0x01,               // Alignment
3013                             0x02,               // Length
3014                             )
3015                         IO (Decode16,
3016                             0x04D0,             // Range Minimum
3017                             0x04D0,             // Range Maximum
3018                             0x01,               // Alignment
3019                             0x02,               // Length
3020                             )
3021                         IRQNoFlags ()
3022                             {2}
3023                     })
3024                 }
3025 
3026                 Device (FPU)
3027                 {
3028                     Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */)  // _HID: Hardware ID
3029                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3030                     {
3031                         IO (Decode16,
3032                             0x00F0,             // Range Minimum
3033                             0x00F0,             // Range Maximum
3034                             0x01,               // Alignment
3035                             0x01,               // Length
3036                             )
3037                         IRQNoFlags ()
3038                             {13}
3039                     })
3040                 }
3041 
3042                 Device (TIMR)
3043                 {
3044                     Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */)  // _HID: Hardware ID
3045                     Name (BUF0, ResourceTemplate ()
3046                     {
3047                         IO (Decode16,
3048                             0x0040,             // Range Minimum
3049                             0x0040,             // Range Maximum
3050                             0x01,               // Alignment
3051                             0x04,               // Length
3052                             )
3053                         IO (Decode16,
3054                             0x0050,             // Range Minimum
3055                             0x0050,             // Range Maximum
3056                             0x10,               // Alignment
3057                             0x04,               // Length
3058                             )
3059                     })
3060                     Name (BUF1, ResourceTemplate ()
3061                     {
3062                         IO (Decode16,
3063                             0x0040,             // Range Minimum
3064                             0x0040,             // Range Maximum
3065                             0x01,               // Alignment
3066                             0x04,               // Length
3067                             )
3068                         IO (Decode16,
3069                             0x0050,             // Range Minimum
3070                             0x0050,             // Range Maximum
3071                             0x10,               // Alignment
3072                             0x04,               // Length
3073                             )
3074                         IRQNoFlags ()
3075                             {0}
3076                     })
3077                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
3078                     {
3079                         If (HPTS)
3080                         {
3081                             Return (BUF0) /* \_SB_.PCI0.LPC_.TIMR.BUF0 */
3082                         }
3083 
3084                         Return (BUF1) /* \_SB_.PCI0.LPC_.TIMR.BUF1 */
3085                     }
3086                 }
3087 
3088                 Device (FWHD)
3089                 {
3090                     Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */)  // _HID: Hardware ID
3091                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3092                     {
3093                         Memory32Fixed (ReadOnly,
3094                             0xFF800000,         // Address Base
3095                             0x00800000,         // Address Length
3096                             )
3097                     })
3098                 }
3099 
3100                 Device (KBC)
3101                 {
3102                     Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
3103                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3104                     {
3105                         IO (Decode16,
3106                             0x0060,             // Range Minimum
3107                             0x0060,             // Range Maximum
3108                             0x01,               // Alignment
3109                             0x01,               // Length
3110                             )
3111                         IO (Decode16,
3112                             0x0064,             // Range Minimum
3113                             0x0064,             // Range Maximum
3114                             0x01,               // Alignment
3115                             0x01,               // Length
3116                             )
3117                         IRQ (Edge, ActiveHigh, Exclusive, )
3118                             {1}
3119                     })
3120                     Method (_STA, 0, NotSerialized)  // _STA: Status
3121                     {
3122                         Return (0x0F)
3123                     }
3124                 }
3125 
3126                 Device (MOUE)
3127                 {
3128                     Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
3129                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3130                     {
3131                         IRQ (Edge, ActiveHigh, Exclusive, )
3132                             {12}
3133                     })
3134                     Method (_STA, 0, NotSerialized)  // _STA: Status
3135                     {
3136                         Return (0x0F)
3137                     }
3138                 }
3139 
3140                 Device (EC0)
3141                 {
3142                     Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */)  // _HID: Hardware ID
3143                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3144                     {
3145                         IO (Decode16,
3146                             0x0062,             // Range Minimum
3147                             0x0062,             // Range Maximum
3148                             0x00,               // Alignment
3149                             0x01,               // Length
3150                             )
3151                         IO (Decode16,
3152                             0x0066,             // Range Minimum
3153                             0x0066,             // Range Maximum
3154                             0x00,               // Alignment
3155                             0x01,               // Length
3156                             )
3157                     })
3158                     Name (_GPE, 0x17)  // _GPE: General Purpose Events
3159                     Name (SEL0, 0xF0)
3160                     Name (BFLG, Zero)
3161                     Method (_REG, 2, NotSerialized)  // _REG: Region Availability
3162                     {
3163                         P80H = 0x17
3164                         If (Arg0 == 0x03)
3165                         {
3166                             Local0 = Arg1
3167                             If (Local0)
3168                             {
3169                                 ECON = One
3170                             }
3171                             Else
3172                             {
3173                                 ECON = Zero
3174                             }
3175                         }
3176 
3177                         If (ECON)
3178                         {
3179                             P80H = 0x18
3180                             RG59 = 0x03
3181                             CPLE = One
3182                         }
3183                     }
3184 
3185                     OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
3186                     Field (ERAM, ByteAcc, NoLock, Preserve)
3187                     {
3188                         Offset (0x04), 
3189                         CMCM,   8, 
3190                         CMD1,   8, 
3191                         CMD2,   8, 
3192                         CMD3,   8, 
3193                         Offset (0x18), 
3194                         SMPR,   8, 
3195                         SMST,   8, 
3196                         SMAD,   8, 
3197                         SMCM,   8, 
3198                         SMD0,   256, 
3199                         BCNT,   8, 
3200                         SMAA,   8, 
3201                         BATD,   16, 
3202                         ACDF,   1, 
3203                         Offset (0x41), 
3204                             ,   5, 
3205                         FLS4,   1, 
3206                         Offset (0x42), 
3207                         Offset (0x4C), 
3208                         ARCD,   1, 
3209                             ,   3, 
3210                         DOCK,   1, 
3211                         LANC,   1, 
3212                         LID2,   1, 
3213                         CRTS,   1, 
3214                         Offset (0x51), 
3215                         BLVL,   8, 
3216                         Offset (0x53), 
3217                         DOFF,   8, 
3218                         Offset (0x58), 
3219                         CTMP,   8, 
3220                         RG59,   8, 
3221                         Offset (0x60), 
3222                         WLAN,   1, 
3223                         BLTH,   1, 
3224                         CPLE,   1, 
3225                             ,   3, 
3226                         WLST,   1, 
3227                         BLTS,   1, 
3228                             ,   2, 
3229                         ST3G,   1, 
3230                         MNST,   1, 
3231                             ,   1, 
3232                         ED3G,   1, 
3233                             ,   3, 
3234                         Offset (0x63), 
3235                         TJ85,   1, 
3236                             ,   6, 
3237                         VGAF,   1, 
3238                         Offset (0x70), 
3239                         BTMD,   8, 
3240                         MBTS,   1, 
3241                         MBTF,   1, 
3242                         BATF,   1, 
3243                             ,   3, 
3244                         MBDX,   1, 
3245                         MBAD,   1, 
3246                         MBTC,   1, 
3247                             ,   2, 
3248                         LION,   1, 
3249                         Offset (0x77), 
3250                         BA1C,   8, 
3251                         MCYC,   16, 
3252                         MTMP,   16, 
3253                         MDAT,   16, 
3254                         MCUR,   16, 
3255                         MBRM,   16, 
3256                         MBVG,   16, 
3257                         MRTF,   16, 
3258                         MMER,   8, 
3259                         BA2C,   8, 
3260                         LFC2,   16, 
3261                         BTSN,   16, 
3262                         BTDC,   16, 
3263                         BTDV,   16, 
3264                         BTMN,   8, 
3265                         Offset (0x93), 
3266                         BTST,   8, 
3267                         Offset (0x9D), 
3268                         OSTP,   1, 
3269                         Offset (0xA0), 
3270                         ABMD,   8, 
3271                         ABTS,   1, 
3272                         ABFC,   1, 
3273                             ,   4, 
3274                         ABDX,   1, 
3275                         ABAD,   1, 
3276                         ABCG,   1, 
3277                             ,   2, 
3278                         ABTP,   1, 
3279                         Offset (0xA8), 
3280                         ACYC,   16, 
3281                         ATMP,   16, 
3282                         ADAT,   16, 
3283                         ABCR,   16, 
3284                         ABRM,   16, 
3285                         ABVG,   16, 
3286                         ARTF,   16, 
3287                         AMER,   8, 
3288                         Offset (0xB8), 
3289                         AFCC,   16, 
3290                         ABSN,   16, 
3291                         ABDC,   16, 
3292                         ABDV,   16, 
3293                         ABMN,   8, 
3294                         Offset (0xD0), 
3295                         EBPL,   1, 
3296                         Offset (0xD1), 
3297                         PWRE,   1, 
3298                         Offset (0xD2), 
3299                             ,   6, 
3300                         VAUX,   1, 
3301                         Offset (0xD6), 
3302                         DBPL,   8, 
3303                         Offset (0xE0), 
3304                         DESP,   8, 
3305                         DTS3,   8, 
3306                         DE0L,   8, 
3307                         DE0H,   8, 
3308                         DE1L,   8, 
3309                         DE1H,   8, 
3310                         DE2L,   8, 
3311                         DE2H,   8, 
3312                         DE3L,   8, 
3313                         DE3H,   8, 
3314                         DE4L,   8, 
3315                         DE4H,   8
3316                     }
3317 
3318                     Method (APOL, 1, NotSerialized)
3319                     {
3320                         P80H = 0x19
3321                         DBPL = Arg0
3322                         EBPL = One
3323                     }
3324 
3325                     Method (CPOL, 1, NotSerialized)
3326                     {
3327                         P80H = 0x1A
3328                         If (PSTA == Zero)
3329                         {
3330                             If (ECON != Zero)
3331                             {
3332                                 APOL (Arg0)
3333                                 PSTA = One
3334                             }
3335                         }
3336                     }
3337 
3338                     Method (_Q20, 0, NotSerialized)  // _Qxx: EC Query
3339                     {
3340                         P80H = 0x20
3341                         If (ECON)
3342                         {
3343                             If (SMST & 0x40)
3344                             {
3345                                 Local0 = SMAA /* \_SB_.PCI0.LPC_.EC0_.SMAA */
3346                                 If (Local0 == 0x14)
3347                                 {
3348                                     SMST &= 0xBF
3349                                     Local1 = PWRE /* \_SB_.PCI0.LPC_.EC0_.PWRE */
3350                                     If (Local1)
3351                                     {
3352                                         PWRE = Zero
3353                                         BFLG = 0x12
3354                                         CPOL (One)
3355                                     }
3356                                 }
3357 
3358                                 If (Local0 == 0x16)
3359                                 {
3360                                     SMST &= 0xBF
3361                                     ^^^^BAT1.BCRI = 0x04
3362                                     Notify (BAT1, 0x80) // Status Change
3363                                 }
3364                                 Else
3365                                 {
3366                                     ^^^^BAT1.BCRI = Zero
3367                                 }
3368                             }
3369                         }
3370                     }
3371 
3372                     Method (_Q09, 0, NotSerialized)  // _Qxx: EC Query
3373                     {
3374                         P80H = 0x09
3375                         If (ECON)
3376                         {
3377                             P80H = 0x1B
3378                             PSTA = Zero
3379                             ^^^^BAT1.BATS ()
3380                             Notify (ACAD, 0x80) // Status Change
3381                             Sleep (0x01F4)
3382                             Notify (BAT1, 0x80) // Status Change
3383                             If (^^^^BAT1.BTCH)
3384                             {
3385                                 P80H = 0x1C
3386                                 ^^^^BAT1.UBIF ()
3387                                 Notify (BAT1, 0x81) // Information Change
3388                                 ^^^^BAT1.BTCH = Zero
3389                             }
3390                         }
3391                     }
3392 
3393                     Method (_Q9B, 0, NotSerialized)  // _Qxx: EC Query
3394                     {
3395                         P80H = 0x9B
3396                         Sleep (0x32)
3397                         Notify (LID0, 0x80) // Status Change
3398                     }
3399                 }
3400             }
3401 
3402             Device (UHC1)
3403             {
3404                 Name (_ADR, 0x001D0000)  // _ADR: Address
3405                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3406                 {
3407                     0x03, 
3408                     0x03
3409                 })
3410                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3411                 Field (USBR, AnyAcc, NoLock, Preserve)
3412                 {
3413                     URES,   8
3414                 }
3415 
3416                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3417                 {
3418                     If (Arg0 == Zero)
3419                     {
3420                         URES = Zero
3421                     }
3422 
3423                     If (Arg0 == One)
3424                     {
3425                         URES = 0x03
3426                     }
3427                 }
3428             }
3429 
3430             Device (UHC2)
3431             {
3432                 Name (_ADR, 0x001D0001)  // _ADR: Address
3433                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3434                 {
3435                     0x04, 
3436                     0x03
3437                 })
3438                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3439                 Field (USBR, AnyAcc, NoLock, Preserve)
3440                 {
3441                     URES,   8
3442                 }
3443 
3444                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3445                 {
3446                     If (Arg0 == Zero)
3447                     {
3448                         URES = Zero
3449                     }
3450 
3451                     If (Arg0 == One)
3452                     {
3453                         URES = 0x03
3454                     }
3455                 }
3456             }
3457 
3458             Device (UHC3)
3459             {
3460                 Name (_ADR, 0x001D0002)  // _ADR: Address
3461                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3462                 {
3463                     0x0C, 
3464                     0x03
3465                 })
3466                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3467                 Field (USBR, AnyAcc, NoLock, Preserve)
3468                 {
3469                     URES,   8
3470                 }
3471 
3472                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3473                 {
3474                     If (Arg0 == Zero)
3475                     {
3476                         URES = Zero
3477                     }
3478 
3479                     If (Arg0 == One)
3480                     {
3481                         URES = 0x03
3482                     }
3483                 }
3484             }
3485 
3486             Device (UHC4)
3487             {
3488                 Name (_ADR, 0x001D0003)  // _ADR: Address
3489                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3490                 {
3491                     0x0E, 
3492                     0x03
3493                 })
3494                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3495                 Field (USBR, AnyAcc, NoLock, Preserve)
3496                 {
3497                     URES,   8
3498                 }
3499 
3500                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3501                 {
3502                     If (Arg0 == Zero)
3503                     {
3504                         URES = Zero
3505                     }
3506 
3507                     If (Arg0 == One)
3508                     {
3509                         URES = 0x03
3510                     }
3511                 }
3512             }
3513 
3514             Device (ECHI)
3515             {
3516                 Name (_ADR, 0x001D0007)  // _ADR: Address
3517                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3518                 {
3519                     0x0D, 
3520                     0x03
3521                 })
3522                 OperationRegion (USBR, PCI_Config, 0xC4, One)
3523                 Field (USBR, AnyAcc, NoLock, Preserve)
3524                 {
3525                     URES,   8
3526                 }
3527 
3528                 Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
3529                 {
3530                     If (Arg0 == Zero)
3531                     {
3532                         URES = Zero
3533                     }
3534 
3535                     If (Arg0 == One)
3536                     {
3537                         URES = 0x03
3538                     }
3539                 }
3540             }
3541 
3542             Device (EXP1)
3543             {
3544                 Name (_ADR, 0x001C0000)  // _ADR: Address
3545                 OperationRegion (P1CS, PCI_Config, 0x40, 0x0100)
3546                 Field (P1CS, AnyAcc, NoLock, Preserve)
3547                 {
3548                     Offset (0x10), 
3549                         ,   4, 
3550                     LKD1,   1, 
3551                     Offset (0x1A), 
3552                     ABP1,   1, 
3553                         ,   2, 
3554                     PDC1,   1, 
3555                         ,   2, 
3556                     PDS1,   1, 
3557                     Offset (0x20), 
3558                     RID1,   16, 
3559                     PSP1,   1, 
3560                     PPP1,   1, 
3561                     Offset (0x9C), 
3562                         ,   30, 
3563                     HPCS,   1, 
3564                     PMCS,   1
3565                 }
3566 
3567                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3568                 {
3569                     0x09, 
3570                     0x04
3571                 })
3572                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
3573                 {
3574                     If (GPIC == Zero)
3575                     {
3576                         Return (Package (0x04)
3577                         {
3578                             Package (0x04)
3579                             {
3580                                 0xFFFF, 
3581                                 Zero, 
3582                                 ^^LPC.LNKA, 
3583                                 Zero
3584                             }, 
3585 
3586                             Package (0x04)
3587                             {
3588                                 0xFFFF, 
3589                                 One, 
3590                                 ^^LPC.LNKB, 
3591                                 Zero
3592                             }, 
3593 
3594                             Package (0x04)
3595                             {
3596                                 0xFFFF, 
3597                                 0x02, 
3598                                 ^^LPC.LNKC, 
3599                                 Zero
3600                             }, 
3601 
3602                             Package (0x04)
3603                             {
3604                                 0xFFFF, 
3605                                 0x03, 
3606                                 ^^LPC.LNKD, 
3607                                 Zero
3608                             }
3609                         })
3610                     }
3611                     Else
3612                     {
3613                         Return (Package (0x04)
3614                         {
3615                             Package (0x04)
3616                             {
3617                                 0xFFFF, 
3618                                 Zero, 
3619                                 Zero, 
3620                                 0x10
3621                             }, 
3622 
3623                             Package (0x04)
3624                             {
3625                                 0xFFFF, 
3626                                 One, 
3627                                 Zero, 
3628                                 0x11
3629                             }, 
3630 
3631                             Package (0x04)
3632                             {
3633                                 0xFFFF, 
3634                                 0x02, 
3635                                 Zero, 
3636                                 0x12
3637                             }, 
3638 
3639                             Package (0x04)
3640                             {
3641                                 0xFFFF, 
3642                                 0x03, 
3643                                 Zero, 
3644                                 0x13
3645                             }
3646                         })
3647                     }
3648                 }
3649 
3650                 Device (J380)
3651                 {
3652                     Name (_ADR, Zero)  // _ADR: Address
3653                     OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
3654                     Field (PCFG, ByteAcc, NoLock, Preserve)
3655                     {
3656                         DVID,   32, 
3657                         Offset (0x2C), 
3658                         SSID,   32, 
3659                         Offset (0xAC), 
3660                         D3EF,   8, 
3661                         Offset (0xB2), 
3662                         LAT0,   8, 
3663                         Offset (0xCF), 
3664                         ATRB,   8, 
3665                         Offset (0xD3), 
3666                         PMC0,   8
3667                     }
3668 
3669                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
3670                     {
3671                         Return (One)
3672                     }
3673                 }
3674 
3675                 Device (J382)
3676                 {
3677                     Name (_ADR, 0x02)  // _ADR: Address
3678                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
3679                     {
3680                         Return (One)
3681                     }
3682                 }
3683 
3684                 Device (J383)
3685                 {
3686                     Name (_ADR, 0x03)  // _ADR: Address
3687                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
3688                     {
3689                         Return (One)
3690                     }
3691                 }
3692 
3693                 Device (J384)
3694                 {
3695                     Name (_ADR, 0x04)  // _ADR: Address
3696                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
3697                     {
3698                         Return (One)
3699                     }
3700                 }
3701             }
3702 
3703             Device (EXP2)
3704             {
3705                 Name (_ADR, 0x001C0001)  // _ADR: Address
3706                 OperationRegion (P2CS, PCI_Config, 0x40, 0x0100)
3707                 Field (P2CS, AnyAcc, NoLock, Preserve)
3708                 {
3709                     Offset (0x10), 
3710                     LL0S,   1, 
3711                     LLL1,   1, 
3712                         ,   2, 
3713                     LKD2,   1, 
3714                     Offset (0x1A), 
3715                     ABP2,   1, 
3716                         ,   2, 
3717                     PDC2,   1, 
3718                         ,   2, 
3719                     PDS2,   1, 
3720                     Offset (0x20), 
3721                     RID2,   16, 
3722                     PSP2,   1, 
3723                     PPP2,   1, 
3724                     Offset (0x9C), 
3725                         ,   30, 
3726                     HPCS,   1, 
3727                     PMCS,   1
3728                 }
3729 
3730                 Device (PXS2)
3731                 {
3732                     Name (_ADR, Zero)  // _ADR: Address
3733                     OperationRegion (P2CS, PCI_Config, 0x80, 0x0100)
3734                     Field (P2CS, AnyAcc, NoLock, Preserve)
3735                     {
3736                         LSMP,   8
3737                     }
3738 
3739                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
3740                     {
3741                         Return (Zero)
3742                     }
3743                 }
3744 
3745                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3746                 {
3747                     0x09, 
3748                     0x04
3749                 })
3750                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
3751                 {
3752                     If (GPIC == Zero)
3753                     {
3754                         Return (Package (0x04)
3755                         {
3756                             Package (0x04)
3757                             {
3758                                 0xFFFF, 
3759                                 Zero, 
3760                                 ^^LPC.LNKB, 
3761                                 Zero
3762                             }, 
3763 
3764                             Package (0x04)
3765                             {
3766                                 0xFFFF, 
3767                                 One, 
3768                                 ^^LPC.LNKC, 
3769                                 Zero
3770                             }, 
3771 
3772                             Package (0x04)
3773                             {
3774                                 0xFFFF, 
3775                                 0x02, 
3776                                 ^^LPC.LNKD, 
3777                                 Zero
3778                             }, 
3779 
3780                             Package (0x04)
3781                             {
3782                                 0xFFFF, 
3783                                 0x03, 
3784                                 ^^LPC.LNKA, 
3785                                 Zero
3786                             }
3787                         })
3788                     }
3789                     Else
3790                     {
3791                         Return (Package (0x04)
3792                         {
3793                             Package (0x04)
3794                             {
3795                                 0xFFFF, 
3796                                 Zero, 
3797                                 Zero, 
3798                                 0x11
3799                             }, 
3800 
3801                             Package (0x04)
3802                             {
3803                                 0xFFFF, 
3804                                 One, 
3805                                 Zero, 
3806                                 0x12
3807                             }, 
3808 
3809                             Package (0x04)
3810                             {
3811                                 0xFFFF, 
3812                                 0x02, 
3813                                 Zero, 
3814                                 0x13
3815                             }, 
3816 
3817                             Package (0x04)
3818                             {
3819                                 0xFFFF, 
3820                                 0x03, 
3821                                 Zero, 
3822                                 0x10
3823                             }
3824                         })
3825                     }
3826                 }
3827             }
3828 
3829             Device (EXP3)
3830             {
3831                 Name (_ADR, 0x001C0002)  // _ADR: Address
3832                 OperationRegion (P3CS, PCI_Config, 0x40, 0x0100)
3833                 Field (P3CS, AnyAcc, NoLock, Preserve)
3834                 {
3835                     Offset (0x10), 
3836                         ,   4, 
3837                     LKD3,   1, 
3838                     Offset (0x1A), 
3839                     ABP3,   1, 
3840                         ,   2, 
3841                     PDC3,   1, 
3842                         ,   2, 
3843                     PDS3,   1, 
3844                     Offset (0x20), 
3845                     RID3,   16, 
3846                     PSP3,   1, 
3847                     PPP3,   1, 
3848                     Offset (0x9C), 
3849                         ,   30, 
3850                     HPCS,   1, 
3851                     PMCS,   1
3852                 }
3853 
3854                 Device (PXS3)
3855                 {
3856                     Name (_ADR, Zero)  // _ADR: Address
3857                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
3858                     {
3859                         Return (Zero)
3860                     }
3861                 }
3862 
3863                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3864                 {
3865                     0x09, 
3866                     0x04
3867                 })
3868                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
3869                 {
3870                     If (GPIC == Zero)
3871                     {
3872                         Return (Package (0x04)
3873                         {
3874                             Package (0x04)
3875                             {
3876                                 0xFFFF, 
3877                                 Zero, 
3878                                 ^^LPC.LNKC, 
3879                                 Zero
3880                             }, 
3881 
3882                             Package (0x04)
3883                             {
3884                                 0xFFFF, 
3885                                 One, 
3886                                 ^^LPC.LNKD, 
3887                                 Zero
3888                             }, 
3889 
3890                             Package (0x04)
3891                             {
3892                                 0xFFFF, 
3893                                 0x02, 
3894                                 ^^LPC.LNKA, 
3895                                 Zero
3896                             }, 
3897 
3898                             Package (0x04)
3899                             {
3900                                 0xFFFF, 
3901                                 0x03, 
3902                                 ^^LPC.LNKB, 
3903                                 Zero
3904                             }
3905                         })
3906                     }
3907                     Else
3908                     {
3909                         Return (Package (0x04)
3910                         {
3911                             Package (0x04)
3912                             {
3913                                 0xFFFF, 
3914                                 Zero, 
3915                                 Zero, 
3916                                 0x12
3917                             }, 
3918 
3919                             Package (0x04)
3920                             {
3921                                 0xFFFF, 
3922                                 One, 
3923                                 Zero, 
3924                                 0x13
3925                             }, 
3926 
3927                             Package (0x04)
3928                             {
3929                                 0xFFFF, 
3930                                 0x02, 
3931                                 Zero, 
3932                                 0x10
3933                             }, 
3934 
3935                             Package (0x04)
3936                             {
3937                                 0xFFFF, 
3938                                 0x03, 
3939                                 Zero, 
3940                                 0x11
3941                             }
3942                         })
3943                     }
3944                 }
3945             }
3946 
3947             Device (EXP4)
3948             {
3949                 Name (_ADR, 0x001C0003)  // _ADR: Address
3950                 OperationRegion (P4CS, PCI_Config, 0x40, 0x0100)
3951                 Field (P4CS, AnyAcc, NoLock, Preserve)
3952                 {
3953                     Offset (0x10), 
3954                         ,   4, 
3955                     LKD4,   1, 
3956                     Offset (0x1A), 
3957                     ABP4,   1, 
3958                         ,   2, 
3959                     PDC4,   1, 
3960                         ,   2, 
3961                     PDS4,   1, 
3962                     Offset (0x20), 
3963                     RID4,   16, 
3964                     PSP4,   1, 
3965                     PPP4,   1, 
3966                     Offset (0x9C), 
3967                         ,   30, 
3968                     HPCS,   1, 
3969                     PMCS,   1
3970                 }
3971 
3972                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
3973                 {
3974                     0x09, 
3975                     0x04
3976                 })
3977                 Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
3978                 {
3979                     If (GPIC == Zero)
3980                     {
3981                         Return (Package (0x04)
3982                         {
3983                             Package (0x04)
3984                             {
3985                                 0xFFFF, 
3986                                 Zero, 
3987                                 ^^LPC.LNKD, 
3988                                 Zero
3989                             }, 
3990 
3991                             Package (0x04)
3992                             {
3993                                 0xFFFF, 
3994                                 One, 
3995                                 ^^LPC.LNKA, 
3996                                 Zero
3997                             }, 
3998 
3999                             Package (0x04)
4000                             {
4001                                 0xFFFF, 
4002                                 0x02, 
4003                                 ^^LPC.LNKB, 
4004                                 Zero
4005                             }, 
4006 
4007                             Package (0x04)
4008                             {
4009                                 0xFFFF, 
4010                                 0x03, 
4011                                 ^^LPC.LNKC, 
4012                                 Zero
4013                             }
4014                         })
4015                     }
4016                     Else
4017                     {
4018                         Return (Package (0x04)
4019                         {
4020                             Package (0x04)
4021                             {
4022                                 0xFFFF, 
4023                                 Zero, 
4024                                 Zero, 
4025                                 0x13
4026                             }, 
4027 
4028                             Package (0x04)
4029                             {
4030                                 0xFFFF, 
4031                                 One, 
4032                                 Zero, 
4033                                 0x10
4034                             }, 
4035 
4036                             Package (0x04)
4037                             {
4038                                 0xFFFF, 
4039                                 0x02, 
4040                                 Zero, 
4041                                 0x11
4042                             }, 
4043 
4044                             Package (0x04)
4045                             {
4046                                 0xFFFF, 
4047                                 0x03, 
4048                                 Zero, 
4049                                 0x12
4050                             }
4051                         })
4052                     }
4053                 }
4054 
4055                 Device (J380)
4056                 {
4057                     Name (_ADR, Zero)  // _ADR: Address
4058                     OperationRegion (PCFG, PCI_Config, Zero, 0xFF)
4059                     Field (PCFG, ByteAcc, NoLock, Preserve)
4060                     {
4061                         DVID,   32, 
4062                         Offset (0x2C), 
4063                         SSID,   32, 
4064                         Offset (0xAC), 
4065                         D3EF,   8, 
4066                         Offset (0xB2), 
4067                         LAT0,   8, 
4068                         Offset (0xCF), 
4069                         ATRB,   8, 
4070                         Offset (0xD3), 
4071                         PMC0,   8
4072                     }
4073 
4074                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4075                     {
4076                         Return (One)
4077                     }
4078                 }
4079 
4080                 Device (J382)
4081                 {
4082                     Name (_ADR, 0x02)  // _ADR: Address
4083                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4084                     {
4085                         Return (One)
4086                     }
4087                 }
4088 
4089                 Device (J383)
4090                 {
4091                     Name (_ADR, 0x03)  // _ADR: Address
4092                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4093                     {
4094                         Return (One)
4095                     }
4096                 }
4097 
4098                 Device (J384)
4099                 {
4100                     Name (_ADR, 0x04)  // _ADR: Address
4101                     Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4102                     {
4103                         Return (One)
4104                     }
4105                 }
4106             }
4107 
4108             Device (AZAL)
4109             {
4110                 Name (_ADR, 0x001B0000)  // _ADR: Address
4111                 Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
4112                 {
4113                     If (WKMD == One)
4114                     {
4115                         Return (Package (0x02)
4116                         {
4117                             0x05, 
4118                             0x04
4119                         })
4120                     }
4121                     Else
4122                     {
4123                         Return (Package (0x02)
4124                         {
4125                             0x05, 
4126                             Zero
4127                         })
4128                     }
4129                 }
4130             }
4131 
4132             Device (AUDO)
4133             {
4134                 Name (_ADR, 0x001E0002)  // _ADR: Address
4135             }
4136 
4137             Device (MODM)
4138             {
4139                 Name (_ADR, 0x001E0003)  // _ADR: Address
4140                 Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
4141                 {
4142                     If (WKMD == One)
4143                     {
4144                         Return (Package (0x02)
4145                         {
4146                             0x05, 
4147                             0x04
4148                         })
4149                     }
4150                     Else
4151                     {
4152                         Return (Package (0x02)
4153                         {
4154                             0x05, 
4155                             Zero
4156                         })
4157                     }
4158                 }
4159             }
4160 
4161             Device (OVGA)
4162             {
4163                 Name (_ADR, 0x00020000)  // _ADR: Address
4164                 OperationRegion (VNVS, SystemMemory, 0x5F477010, 0x00010004)
4165                 Field (VNVS, AnyAcc, Lock, Preserve)
4166                 {
4167                     RSIZ,   32, 
4168                     RBUF,   524288
4169                 }
4170 
4171                 Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
4172                 {
4173                     DSEN = (Arg0 & 0x03)
4174                 }
4175 
4176                 Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
4177                 {
4178                     If (LCDA == 0x0110)
4179                     {
4180                         Return (Package (0x06)
4181                         {
4182                             0x00010100, 
4183                             0x00010110, 
4184                             0x00010200, 
4185                             0x00010300, 
4186                             0x00010500, 
4187                             0x00010600
4188                         })
4189                     }
4190 
4191                     Return (Package (0x06)
4192                     {
4193                         0x00010100, 
4194                         0x00010200, 
4195                         0x00010300, 
4196                         0x00010400, 
4197                         0x00010500, 
4198                         0x00010600
4199                     })
4200                 }
4201 
4202                 Method (_ROM, 2, NotSerialized)  // _ROM: Read-Only Memory
4203                 {
4204                     Local0 = Arg0
4205                     Local1 = Arg1
4206                     If (Local1 > 0x1000)
4207                     {
4208                         Local1 = 0x1000
4209                     }
4210 
4211                     If ((Local0 + Local1) > RSIZ)
4212                     {
4213                         Local0 = Zero
4214                     }
4215 
4216                     Local2 = (Local0 * 0x08)
4217                     Local3 = (Local1 * 0x08)
4218                     Name (ROM1, Buffer (RSIZ) {})
4219                     Name (ROM2, Buffer (Local1) {})
4220                     ROM1 = RBUF /* \_SB_.PCI0.OVGA.RBUF */
4221                     CreateField (ROM1, Local2, Local3, TMPB)
4222                     ROM2 = TMPB /* \_SB_.PCI0.OVGA._ROM.TMPB */
4223                     Return (ROM2) /* \_SB_.PCI0.OVGA._ROM.ROM2 */
4224                 }
4225 
4226                 Device (CRT1)
4227                 {
4228                     Name (_ADR, 0x0100)  // _ADR: Address
4229                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
4230                     {
4231                         SMIF = One
4232                         TRP0 = Zero
4233                         If (CSTE & 0x0101)
4234                         {
4235                             Return (0x1F)
4236                         }
4237 
4238                         Return (0x1D)
4239                     }
4240 
4241                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
4242                     {
4243                         If (NSTE & 0x0101)
4244                         {
4245                             Return (One)
4246                         }
4247 
4248                         Return (Zero)
4249                     }
4250 
4251                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
4252                     {
4253                         If ((Arg0 & 0xC0000000) == 0xC0000000)
4254                         {
4255                             CSTE = NSTE /* \NSTE */
4256                         }
4257                     }
4258                 }
4259 
4260                 Device (DTV1)
4261                 {
4262                     Name (_ADR, 0x0200)  // _ADR: Address
4263                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
4264                     {
4265                         SMIF = One
4266                         TRP0 = Zero
4267                         If (CSTE & 0x0202)
4268                         {
4269                             Return (0x1F)
4270                         }
4271 
4272                         Return (0x1D)
4273                     }
4274 
4275                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
4276                     {
4277                         If (NSTE & 0x0202)
4278                         {
4279                             Return (One)
4280                         }
4281 
4282                         Return (Zero)
4283                     }
4284 
4285                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
4286                     {
4287                         If ((Arg0 & 0xC0000000) == 0xC0000000)
4288                         {
4289                             CSTE = NSTE /* \NSTE */
4290                         }
4291                     }
4292                 }
4293 
4294                 Device (DFP1)
4295                 {
4296                     Name (_ADR, 0x0300)  // _ADR: Address
4297                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
4298                     {
4299                         SMIF = One
4300                         TRP0 = Zero
4301                         If (CSTE & 0x0404)
4302                         {
4303                             Return (0x1F)
4304                         }
4305 
4306                         Return (0x1D)
4307                     }
4308 
4309                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
4310                     {
4311                         If (NSTE & 0x0404)
4312                         {
4313                             Return (One)
4314                         }
4315 
4316                         Return (Zero)
4317                     }
4318 
4319                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
4320                     {
4321                         If ((Arg0 & 0xC0000000) == 0xC0000000)
4322                         {
4323                             CSTE = NSTE /* \NSTE */
4324                         }
4325                     }
4326                 }
4327 
4328                 Device (LCD)
4329                 {
4330                     Method (_ADR, 0, NotSerialized)  // _ADR: Address
4331                     {
4332                         Return (LCDA) /* \LCDA */
4333                     }
4334 
4335                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
4336                     {
4337                         SMIF = One
4338                         TRP0 = Zero
4339                         If (CSTE & 0x0808)
4340                         {
4341                             Return (0x1F)
4342                         }
4343 
4344                         Return (0x1D)
4345                     }
4346 
4347                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
4348                     {
4349                         If (NSTE & 0x0808)
4350                         {
4351                             Return (One)
4352                         }
4353 
4354                         Return (Zero)
4355                     }
4356 
4357                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
4358                     {
4359                         If ((Arg0 & 0xC0000000) == 0xC0000000)
4360                         {
4361                             CSTE = NSTE /* \NSTE */
4362                         }
4363                     }
4364                 }
4365 
4366                 Device (DTV2)
4367                 {
4368                     Name (_ADR, 0x0500)  // _ADR: Address
4369                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
4370                     {
4371                         SMIF = One
4372                         TRP0 = Zero
4373                         If (CSTE & 0x1010)
4374                         {
4375                             Return (0x1F)
4376                         }
4377 
4378                         Return (0x1D)
4379                     }
4380 
4381                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
4382                     {
4383                         If (NSTE & 0x1010)
4384                         {
4385                             Return (One)
4386                         }
4387 
4388                         Return (Zero)
4389                     }
4390 
4391                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
4392                     {
4393                         If ((Arg0 & 0xC0000000) == 0xC0000000)
4394                         {
4395                             CSTE = NSTE /* \NSTE */
4396                         }
4397                     }
4398                 }
4399 
4400                 Device (DFP2)
4401                 {
4402                     Name (_ADR, 0x0600)  // _ADR: Address
4403                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
4404                     {
4405                         SMIF = One
4406                         TRP0 = Zero
4407                         If (CSTE & 0x2020)
4408                         {
4409                             Return (0x1F)
4410                         }
4411 
4412                         Return (0x1D)
4413                     }
4414 
4415                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
4416                     {
4417                         If (NSTE & 0x2020)
4418                         {
4419                             Return (One)
4420                         }
4421 
4422                         Return (Zero)
4423                     }
4424 
4425                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
4426                     {
4427                         If ((Arg0 & 0xC0000000) == 0xC0000000)
4428                         {
4429                             CSTE = NSTE /* \NSTE */
4430                         }
4431                     }
4432                 }
4433             }
4434 
4435             Device (IDEC)
4436             {
4437                 Name (_ADR, 0x001F0001)  // _ADR: Address
4438                 OperationRegion (PACS, PCI_Config, 0x40, 0xC0)
4439                 Field (PACS, DWordAcc, NoLock, Preserve)
4440                 {
4441                     PRIT,   16, 
4442                     Offset (0x04), 
4443                     PSIT,   4, 
4444                     Offset (0x08), 
4445                     SYNC,   4, 
4446                     Offset (0x0A), 
4447                     SDT0,   2, 
4448                         ,   2, 
4449                     SDT1,   2, 
4450                     Offset (0x14), 
4451                     ICR0,   4, 
4452                     ICR1,   4, 
4453                     ICR2,   4, 
4454                     ICR3,   4, 
4455                     ICR4,   4, 
4456                     ICR5,   4
4457                 }
4458 
4459                 Device (PRID)
4460                 {
4461                     Name (_ADR, Zero)  // _ADR: Address
4462                     Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
4463                     {
4464                         Name (PBUF, Buffer (0x14)
4465                         {
4466                             /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4467                             /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4468                             /* 0010 */  0x00, 0x00, 0x00, 0x00                           /* .... */
4469                         })
4470                         CreateDWordField (PBUF, Zero, PIO0)
4471                         CreateDWordField (PBUF, 0x04, DMA0)
4472                         CreateDWordField (PBUF, 0x08, PIO1)
4473                         CreateDWordField (PBUF, 0x0C, DMA1)
4474                         CreateDWordField (PBUF, 0x10, FLAG)
4475                         PIO0 = GETP (PRIT)
4476                         DMA0 = GDMA ((SYNC & One), (ICR3 & One), (
4477                             ICR0 & One), SDT0, (ICR1 & One))
4478                         If (DMA0 == Ones)
4479                         {
4480                             DMA0 = PIO0 /* \_SB_.PCI0.IDEC.PRID._GTM.PIO0 */
4481                         }
4482 
4483                         If (PRIT & 0x4000)
4484                         {
4485                             If ((PRIT & 0x90) == 0x80)
4486                             {
4487                                 PIO1 = 0x0384
4488                             }
4489                             Else
4490                             {
4491                                 PIO1 = GETT (PSIT)
4492                             }
4493                         }
4494                         Else
4495                         {
4496                             PIO1 = Ones
4497                         }
4498 
4499                         DMA1 = GDMA ((SYNC & 0x02), (ICR3 & 0x02), (
4500                             ICR0 & 0x02), SDT1, (ICR1 & 0x02))
4501                         If (DMA1 == Ones)
4502                         {
4503                             DMA1 = PIO1 /* \_SB_.PCI0.IDEC.PRID._GTM.PIO1 */
4504                         }
4505 
4506                         FLAG = GETF ((SYNC & One), (SYNC & 0x02), PRIT)
4507                         If ((PIO0 == Ones) & (DMA0 == Ones))
4508                         {
4509                             PIO0 = 0x78
4510                             DMA0 = 0x14
4511                             FLAG = 0x03
4512                         }
4513 
4514                         Return (PBUF) /* \_SB_.PCI0.IDEC.PRID._GTM.PBUF */
4515                     }
4516 
4517                     Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
4518                     {
4519                         CreateDWordField (Arg0, Zero, PIO0)
4520                         CreateDWordField (Arg0, 0x04, DMA0)
4521                         CreateDWordField (Arg0, 0x08, PIO1)
4522                         CreateDWordField (Arg0, 0x0C, DMA1)
4523                         CreateDWordField (Arg0, 0x10, FLAG)
4524                         If (SizeOf (Arg1) == 0x0200)
4525                         {
4526                             PRIT &= 0x40F0
4527                             SYNC &= 0x02
4528                             SDT0 = Zero
4529                             ICR0 &= 0x02
4530                             ICR1 &= 0x02
4531                             ICR3 &= 0x02
4532                             ICR5 &= 0x02
4533                             CreateWordField (Arg1, 0x62, W490)
4534                             CreateWordField (Arg1, 0x6A, W530)
4535                             CreateWordField (Arg1, 0x7E, W630)
4536                             CreateWordField (Arg1, 0x80, W640)
4537                             CreateWordField (Arg1, 0xB0, W880)
4538                             CreateWordField (Arg1, 0xBA, W930)
4539                             PRIT |= 0x8004
4540                             If ((FLAG & 0x02) && (W490 & 0x0800))
4541                             {
4542                                 PRIT |= 0x02
4543                             }
4544 
4545                             PRIT |= SETP (PIO0, W530, W640)
4546                             If (FLAG & One)
4547                             {
4548                                 SYNC |= One
4549                                 SDT0 = SDMA (DMA0)
4550                                 If (DMA0 < 0x1E)
4551                                 {
4552                                     ICR3 |= One
4553                                 }
4554 
4555                                 If (DMA0 < 0x3C)
4556                                 {
4557                                     ICR0 |= One
4558                                 }
4559 
4560                                 If (W930 & 0x2000)
4561                                 {
4562                                     ICR1 |= One
4563                                 }
4564                             }
4565                         }
4566 
4567                         If (SizeOf (Arg2) == 0x0200)
4568                         {
4569                             PRIT &= 0x3F0F
4570                             PSIT = Zero
4571                             SYNC &= One
4572                             SDT1 = Zero
4573                             ICR0 &= One
4574                             ICR1 &= One
4575                             ICR3 &= One
4576                             ICR5 &= One
4577                             CreateWordField (Arg2, 0x62, W491)
4578                             CreateWordField (Arg2, 0x6A, W531)
4579                             CreateWordField (Arg2, 0x7E, W631)
4580                             CreateWordField (Arg2, 0x80, W641)
4581                             CreateWordField (Arg2, 0xB0, W881)
4582                             CreateWordField (Arg2, 0xBA, W931)
4583                             PRIT |= 0x8040
4584                             If ((FLAG & 0x08) && (W491 & 0x0800))
4585                             {
4586                                 PRIT |= 0x20
4587                             }
4588 
4589                             If (FLAG & 0x10)
4590                             {
4591                                 PRIT |= 0x4000
4592                                 If (PIO1 > 0xF0)
4593                                 {
4594                                     PRIT |= 0x80
4595                                 }
4596                                 Else
4597                                 {
4598                                     PRIT |= 0x10
4599                                     PSIT = SETT (PIO1, W531, W641)
4600                                 }
4601                             }
4602 
4603                             If (FLAG & 0x04)
4604                             {
4605                                 SYNC |= 0x02
4606                                 SDT1 = SDMA (DMA1)
4607                                 If (DMA1 < 0x1E)
4608                                 {
4609                                     ICR3 |= 0x02
4610                                 }
4611 
4612                                 If (DMA1 < 0x3C)
4613                                 {
4614                                     ICR0 |= 0x02
4615                                 }
4616 
4617                                 If (W931 & 0x2000)
4618                                 {
4619                                     ICR1 |= 0x02
4620                                 }
4621                             }
4622                         }
4623                     }
4624 
4625                     Device (P_D0)
4626                     {
4627                         Name (_ADR, Zero)  // _ADR: Address
4628                         Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4629                         {
4630                             Return (Zero)
4631                         }
4632 
4633                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
4634                         {
4635                             Name (PIB0, Buffer (0x0E)
4636                             {
4637                                 /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,  /* ........ */
4638                                 /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF               /* ...... */
4639                             })
4640                             CreateByteField (PIB0, One, PMD0)
4641                             CreateByteField (PIB0, 0x08, DMD0)
4642                             If (PRIT & 0x02)
4643                             {
4644                                 If ((PRIT & 0x09) == 0x08)
4645                                 {
4646                                     PMD0 = 0x08
4647                                 }
4648                                 Else
4649                                 {
4650                                     PMD0 = 0x0A
4651                                     Local0 = ((PRIT & 0x0300) >> 0x08)
4652                                     Local1 = ((PRIT & 0x3000) >> 0x0C)
4653                                     Local2 = (Local0 + Local1)
4654                                     If (0x03 == Local2)
4655                                     {
4656                                         PMD0 = 0x0B
4657                                     }
4658 
4659                                     If (0x05 == Local2)
4660                                     {
4661                                         PMD0 = 0x0C
4662                                     }
4663                                 }
4664                             }
4665                             Else
4666                             {
4667                                 PMD0 = One
4668                             }
4669 
4670                             If (SYNC & One)
4671                             {
4672                                 DMD0 = (SDT0 | 0x40)
4673                                 If (ICR1 & One)
4674                                 {
4675                                     If (ICR0 & One)
4676                                     {
4677                                         DMD0 += 0x02
4678                                     }
4679 
4680                                     If (ICR3 & One)
4681                                     {
4682                                         DMD0 = 0x45
4683                                     }
4684                                 }
4685                             }
4686                             Else
4687                             {
4688                                 DMD0 = (((PMD0 & 0x07) - 0x02) | 0x20)
4689                             }
4690 
4691                             Return (PIB0) /* \_SB_.PCI0.IDEC.PRID.P_D0._GTF.PIB0 */
4692                         }
4693                     }
4694 
4695                     Device (P_D1)
4696                     {
4697                         Name (_ADR, One)  // _ADR: Address
4698                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
4699                         {
4700                             Name (PIB1, Buffer (0x0E)
4701                             {
4702                                 /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03,  /* ........ */
4703                                 /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF               /* ...... */
4704                             })
4705                             CreateByteField (PIB1, One, PMD1)
4706                             CreateByteField (PIB1, 0x08, DMD1)
4707                             If (PRIT & 0x20)
4708                             {
4709                                 If ((PRIT & 0x90) == 0x80)
4710                                 {
4711                                     PMD1 = 0x08
4712                                 }
4713                                 Else
4714                                 {
4715                                     Local0 = ((PSIT & 0x03) + ((PSIT & 0x0C) >> 0x02
4716                                         ))
4717                                     If (0x05 == Local0)
4718                                     {
4719                                         PMD1 = 0x0C
4720                                     }
4721                                     ElseIf (0x03 == Local0)
4722                                     {
4723                                         PMD1 = 0x0B
4724                                     }
4725                                     Else
4726                                     {
4727                                         PMD1 = 0x0A
4728                                     }
4729                                 }
4730                             }
4731                             Else
4732                             {
4733                                 PMD1 = One
4734                             }
4735 
4736                             If (SYNC & 0x02)
4737                             {
4738                                 DMD1 = (SDT1 | 0x40)
4739                                 If (ICR1 & 0x02)
4740                                 {
4741                                     If (ICR0 & 0x02)
4742                                     {
4743                                         DMD1 += 0x02
4744                                     }
4745 
4746                                     If (ICR3 & 0x02)
4747                                     {
4748                                         DMD1 = 0x45
4749                                     }
4750                                 }
4751                             }
4752                             Else
4753                             {
4754                                 DMD1 = (((PMD1 & 0x07) - 0x02) | 0x20)
4755                             }
4756 
4757                             Return (PIB1) /* \_SB_.PCI0.IDEC.PRID.P_D1._GTF.PIB1 */
4758                         }
4759                     }
4760                 }
4761             }
4762 
4763             Device (SATA)
4764             {
4765                 Name (_ADR, 0x001F0002)  // _ADR: Address
4766                 OperationRegion (SACS, PCI_Config, 0x40, 0xC0)
4767                 Field (SACS, DWordAcc, NoLock, Preserve)
4768                 {
4769                     PRIT,   16, 
4770                     SECT,   16, 
4771                     PSIT,   4, 
4772                     SSIT,   4, 
4773                     Offset (0x08), 
4774                     SYNC,   4, 
4775                     Offset (0x0A), 
4776                     SDT0,   2, 
4777                         ,   2, 
4778                     SDT1,   2, 
4779                     Offset (0x0B), 
4780                     SDT2,   2, 
4781                         ,   2, 
4782                     SDT3,   2, 
4783                     Offset (0x14), 
4784                     ICR0,   4, 
4785                     ICR1,   4, 
4786                     ICR2,   4, 
4787                     ICR3,   4, 
4788                     ICR4,   4, 
4789                     ICR5,   4, 
4790                     Offset (0x50), 
4791                     MAPV,   2
4792                 }
4793 
4794                 Device (PRID)
4795                 {
4796                     Name (_ADR, Zero)  // _ADR: Address
4797                     Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
4798                     {
4799                         If (SCFG != 0x04)
4800                         {
4801                             Name (PBUF, Buffer (0x14)
4802                             {
4803                                 /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4804                                 /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4805                                 /* 0010 */  0x00, 0x00, 0x00, 0x00                           /* .... */
4806                             })
4807                             CreateDWordField (PBUF, Zero, PIO0)
4808                             CreateDWordField (PBUF, 0x04, DMA0)
4809                             CreateDWordField (PBUF, 0x08, PIO1)
4810                             CreateDWordField (PBUF, 0x0C, DMA1)
4811                             CreateDWordField (PBUF, 0x10, FLAG)
4812                             PIO0 = GETP (PRIT)
4813                             DMA0 = GDMA ((SYNC & One), (ICR3 & One), (
4814                                 ICR0 & One), SDT0, (ICR1 & One))
4815                             If (DMA0 == Ones)
4816                             {
4817                                 DMA0 = PIO0 /* \_SB_.PCI0.SATA.PRID._GTM.PIO0 */
4818                             }
4819 
4820                             If (PRIT & 0x4000)
4821                             {
4822                                 If ((PRIT & 0x90) == 0x80)
4823                                 {
4824                                     PIO1 = 0x0384
4825                                 }
4826                                 Else
4827                                 {
4828                                     PIO1 = GETT (PSIT)
4829                                 }
4830                             }
4831                             Else
4832                             {
4833                                 PIO1 = Ones
4834                             }
4835 
4836                             DMA1 = GDMA ((SYNC & 0x02), (ICR3 & 0x02), (
4837                                 ICR0 & 0x02), SDT1, (ICR1 & 0x02))
4838                             If (DMA1 == Ones)
4839                             {
4840                                 DMA1 = PIO1 /* \_SB_.PCI0.SATA.PRID._GTM.PIO1 */
4841                             }
4842 
4843                             FLAG = GETF ((SYNC & One), (SYNC & 0x02), PRIT)
4844                             Return (PBUF) /* \_SB_.PCI0.SATA.PRID._GTM.PBUF */
4845                         }
4846 
4847                         Return (Zero)
4848                     }
4849 
4850                     Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
4851                     {
4852                         If (SCFG != 0x04)
4853                         {
4854                             CreateDWordField (Arg0, Zero, PIO0)
4855                             CreateDWordField (Arg0, 0x04, DMA0)
4856                             CreateDWordField (Arg0, 0x08, PIO1)
4857                             CreateDWordField (Arg0, 0x0C, DMA1)
4858                             CreateDWordField (Arg0, 0x10, FLAG)
4859                             If (SizeOf (Arg1) == 0x0200)
4860                             {
4861                                 PRIT &= 0x40F0
4862                                 SYNC &= 0x0E
4863                                 SDT0 = Zero
4864                                 ICR0 &= 0x0E
4865                                 ICR1 &= 0x0E
4866                                 ICR3 &= 0x0E
4867                                 ICR5 &= 0x0E
4868                                 CreateWordField (Arg1, 0x62, W490)
4869                                 CreateWordField (Arg1, 0x6A, W530)
4870                                 CreateWordField (Arg1, 0x7E, W630)
4871                                 CreateWordField (Arg1, 0x80, W640)
4872                                 CreateWordField (Arg1, 0xB0, W880)
4873                                 CreateWordField (Arg1, 0xBA, W930)
4874                                 PRIT |= 0x8004
4875                                 If ((FLAG & 0x02) && (W490 & 0x0800))
4876                                 {
4877                                     PRIT |= 0x02
4878                                 }
4879 
4880                                 PRIT |= SETP (PIO0, W530, W640)
4881                                 If (FLAG & One)
4882                                 {
4883                                     SYNC |= One
4884                                     SDT0 = SDMA (DMA0)
4885                                     If (DMA0 < 0x1E)
4886                                     {
4887                                         ICR3 |= One
4888                                     }
4889 
4890                                     If (DMA0 < 0x3C)
4891                                     {
4892                                         ICR0 |= One
4893                                     }
4894 
4895                                     ICR1 |= One
4896                                 }
4897                             }
4898 
4899                             If (SizeOf (Arg2) == 0x0200)
4900                             {
4901                                 PRIT &= 0x3F0F
4902                                 PSIT = Zero
4903                                 SYNC &= 0x0D
4904                                 SDT1 = Zero
4905                                 ICR0 &= 0x0D
4906                                 ICR1 &= 0x0D
4907                                 ICR3 &= 0x0D
4908                                 ICR5 &= 0x0D
4909                                 CreateWordField (Arg2, 0x62, W491)
4910                                 CreateWordField (Arg2, 0x6A, W531)
4911                                 CreateWordField (Arg2, 0x7E, W631)
4912                                 CreateWordField (Arg2, 0x80, W641)
4913                                 CreateWordField (Arg2, 0xB0, W881)
4914                                 CreateWordField (Arg2, 0xBA, W931)
4915                                 PRIT |= 0x8040
4916                                 If ((FLAG & 0x08) && (W491 & 0x0800))
4917                                 {
4918                                     PRIT |= 0x20
4919                                 }
4920 
4921                                 If (FLAG & 0x10)
4922                                 {
4923                                     PRIT |= 0x4000
4924                                     If (PIO1 > 0xF0)
4925                                     {
4926                                         PRIT |= 0x80
4927                                     }
4928                                     Else
4929                                     {
4930                                         PRIT |= 0x10
4931                                         PSIT = SETT (PIO1, W531, W641)
4932                                     }
4933                                 }
4934 
4935                                 If (FLAG & 0x04)
4936                                 {
4937                                     SYNC |= 0x02
4938                                     SDT1 = SDMA (DMA1)
4939                                     If (DMA1 < 0x1E)
4940                                     {
4941                                         ICR3 |= 0x02
4942                                     }
4943 
4944                                     If (DMA1 < 0x3C)
4945                                     {
4946                                         ICR0 |= 0x02
4947                                     }
4948 
4949                                     ICR1 |= 0x02
4950                                 }
4951                             }
4952                         }
4953                     }
4954 
4955                     Device (P_D0)
4956                     {
4957                         Name (_ADR, Zero)  // _ADR: Address
4958                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
4959                         {
4960                             If (SCFG != 0x04)
4961                             {
4962                                 Name (PIB0, Buffer (0x0E)
4963                                 {
4964                                     /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,  /* ........ */
4965                                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF               /* ...... */
4966                                 })
4967                                 CreateByteField (PIB0, One, PMD0)
4968                                 CreateByteField (PIB0, 0x08, DMD0)
4969                                 If (PRIT & 0x02)
4970                                 {
4971                                     If ((PRIT & 0x09) == 0x08)
4972                                     {
4973                                         PMD0 = 0x08
4974                                     }
4975                                     Else
4976                                     {
4977                                         PMD0 = 0x0A
4978                                         Local0 = ((PRIT & 0x0300) >> 0x08)
4979                                         Local1 = ((PRIT & 0x3000) >> 0x0C)
4980                                         Local2 = (Local0 + Local1)
4981                                         If (0x03 == Local2)
4982                                         {
4983                                             PMD0 = 0x0B
4984                                         }
4985 
4986                                         If (0x05 == Local2)
4987                                         {
4988                                             PMD0 = 0x0C
4989                                         }
4990                                     }
4991                                 }
4992                                 Else
4993                                 {
4994                                     PMD0 = One
4995                                 }
4996 
4997                                 If (SYNC & One)
4998                                 {
4999                                     DMD0 = (SDT0 | 0x40)
5000                                     If (ICR1 & One)
5001                                     {
5002                                         If (ICR0 & One)
5003                                         {
5004                                             DMD0 += 0x02
5005                                         }
5006 
5007                                         If (ICR3 & One)
5008                                         {
5009                                             DMD0 = 0x45
5010                                         }
5011                                     }
5012                                 }
5013                                 Else
5014                                 {
5015                                     DMD0 = (((PMD0 & 0x07) - 0x02) | 0x20)
5016                                 }
5017 
5018                                 Return (PIB0) /* \_SB_.PCI0.SATA.PRID.P_D0._GTF.PIB0 */
5019                             }
5020 
5021                             Return (Zero)
5022                         }
5023                     }
5024 
5025                     Device (P_D1)
5026                     {
5027                         Name (_ADR, One)  // _ADR: Address
5028                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
5029                         {
5030                             If (SCFG != 0x04)
5031                             {
5032                                 Name (PIB1, Buffer (0x0E)
5033                                 {
5034                                     /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03,  /* ........ */
5035                                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF               /* ...... */
5036                                 })
5037                                 CreateByteField (PIB1, One, PMD1)
5038                                 CreateByteField (PIB1, 0x08, DMD1)
5039                                 If (PRIT & 0x20)
5040                                 {
5041                                     If ((PRIT & 0x90) == 0x80)
5042                                     {
5043                                         PMD1 = 0x08
5044                                     }
5045                                     Else
5046                                     {
5047                                         Local0 = ((PSIT & 0x03) + ((PSIT & 0x0C) >> 0x02
5048                                             ))
5049                                         If (0x05 == Local0)
5050                                         {
5051                                             PMD1 = 0x0C
5052                                         }
5053                                         ElseIf (0x03 == Local0)
5054                                         {
5055                                             PMD1 = 0x0B
5056                                         }
5057                                         Else
5058                                         {
5059                                             PMD1 = 0x0A
5060                                         }
5061                                     }
5062                                 }
5063                                 Else
5064                                 {
5065                                     PMD1 = One
5066                                 }
5067 
5068                                 If (SYNC & 0x02)
5069                                 {
5070                                     DMD1 = (SDT1 | 0x40)
5071                                     If (ICR1 & 0x02)
5072                                     {
5073                                         If (ICR0 & 0x02)
5074                                         {
5075                                             DMD1 += 0x02
5076                                         }
5077 
5078                                         If (ICR3 & 0x02)
5079                                         {
5080                                             DMD1 = 0x45
5081                                         }
5082                                     }
5083                                 }
5084                                 Else
5085                                 {
5086                                     DMD1 = (((PMD1 & 0x07) - 0x02) | 0x20)
5087                                 }
5088 
5089                                 Return (PIB1) /* \_SB_.PCI0.SATA.PRID.P_D1._GTF.PIB1 */
5090                             }
5091 
5092                             Return (Zero)
5093                         }
5094                     }
5095                 }
5096 
5097                 Device (SECD)
5098                 {
5099                     Name (_ADR, One)  // _ADR: Address
5100                     Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
5101                     {
5102                         If (SCFG != 0x04)
5103                         {
5104                             Name (SBUF, Buffer (0x14)
5105                             {
5106                                 /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5107                                 /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5108                                 /* 0010 */  0x00, 0x00, 0x00, 0x00                           /* .... */
5109                             })
5110                             CreateDWordField (SBUF, Zero, PIO0)
5111                             CreateDWordField (SBUF, 0x04, DMA0)
5112                             CreateDWordField (SBUF, 0x08, PIO1)
5113                             CreateDWordField (SBUF, 0x0C, DMA1)
5114                             CreateDWordField (SBUF, 0x10, FLAG)
5115                             PIO0 = GETP (SECT)
5116                             DMA0 = GDMA ((SYNC & 0x04), (ICR3 & 0x04), (
5117                                 ICR0 & 0x04), SDT2, (ICR1 & 0x04))
5118                             If (DMA0 == Ones)
5119                             {
5120                                 DMA0 = PIO0 /* \_SB_.PCI0.SATA.SECD._GTM.PIO0 */
5121                             }
5122 
5123                             If (SECT & 0x4000)
5124                             {
5125                                 If ((SECT & 0x90) == 0x80)
5126                                 {
5127                                     PIO1 = 0x0384
5128                                 }
5129                                 Else
5130                                 {
5131                                     PIO1 = GETT (SSIT)
5132                                 }
5133                             }
5134                             Else
5135                             {
5136                                 PIO1 = Ones
5137                             }
5138 
5139                             DMA1 = GDMA ((SYNC & 0x08), (ICR3 & 0x08), (
5140                                 ICR0 & 0x08), SDT3, (ICR1 & 0x08))
5141                             If (DMA1 == Ones)
5142                             {
5143                                 DMA1 = PIO1 /* \_SB_.PCI0.SATA.SECD._GTM.PIO1 */
5144                             }
5145 
5146                             FLAG = GETF ((SYNC & 0x04), (SYNC & 0x08), SECT)
5147                             If ((PIO0 == Ones) & (DMA0 == Ones))
5148                             {
5149                                 PIO0 = 0x78
5150                                 DMA0 = 0x14
5151                                 FLAG = 0x03
5152                             }
5153 
5154                             Return (SBUF) /* \_SB_.PCI0.SATA.SECD._GTM.SBUF */
5155                         }
5156 
5157                         Return (Zero)
5158                     }
5159 
5160                     Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
5161                     {
5162                         If (SCFG != 0x04)
5163                         {
5164                             CreateDWordField (Arg0, Zero, PIO0)
5165                             CreateDWordField (Arg0, 0x04, DMA0)
5166                             CreateDWordField (Arg0, 0x08, PIO1)
5167                             CreateDWordField (Arg0, 0x0C, DMA1)
5168                             CreateDWordField (Arg0, 0x10, FLAG)
5169                             If (SizeOf (Arg1) == 0x0200)
5170                             {
5171                                 SECT &= 0x40F0
5172                                 SYNC &= 0x0B
5173                                 SDT2 = Zero
5174                                 ICR0 &= 0x0B
5175                                 ICR1 &= 0x0B
5176                                 ICR3 &= 0x0B
5177                                 ICR5 &= 0x0B
5178                                 CreateWordField (Arg1, 0x62, W490)
5179                                 CreateWordField (Arg1, 0x6A, W530)
5180                                 CreateWordField (Arg1, 0x7E, W630)
5181                                 CreateWordField (Arg1, 0x80, W640)
5182                                 CreateWordField (Arg1, 0xB0, W880)
5183                                 CreateWordField (Arg1, 0xBA, W930)
5184                                 SECT |= 0x8004
5185                                 If ((FLAG & 0x02) && (W490 & 0x0800))
5186                                 {
5187                                     SECT |= 0x02
5188                                 }
5189 
5190                                 SECT |= SETP (PIO0, W530, W640)
5191                                 If (FLAG & One)
5192                                 {
5193                                     SYNC |= 0x04
5194                                     SDT2 = SDMA (DMA0)
5195                                     If (DMA0 < 0x1E)
5196                                     {
5197                                         ICR3 |= 0x04
5198                                     }
5199 
5200                                     If (DMA0 < 0x3C)
5201                                     {
5202                                         ICR0 |= 0x04
5203                                     }
5204 
5205                                     If (W930 & 0x2000)
5206                                     {
5207                                         ICR1 |= 0x04
5208                                     }
5209                                 }
5210                             }
5211 
5212                             If (SizeOf (Arg2) == 0x0200)
5213                             {
5214                                 SECT &= 0x3F0F
5215                                 SSIT = Zero
5216                                 SYNC &= 0x07
5217                                 SDT3 = Zero
5218                                 ICR0 &= 0x07
5219                                 ICR1 &= 0x07
5220                                 ICR3 &= 0x07
5221                                 ICR5 &= 0x07
5222                                 CreateWordField (Arg2, 0x62, W491)
5223                                 CreateWordField (Arg2, 0x6A, W531)
5224                                 CreateWordField (Arg2, 0x7E, W631)
5225                                 CreateWordField (Arg2, 0x80, W641)
5226                                 CreateWordField (Arg2, 0xB0, W881)
5227                                 CreateWordField (Arg2, 0xBA, W931)
5228                                 SECT |= 0x8040
5229                                 If ((FLAG & 0x08) && (W491 & 0x0800))
5230                                 {
5231                                     SECT |= 0x20
5232                                 }
5233 
5234                                 If (FLAG & 0x10)
5235                                 {
5236                                     SECT |= 0x4000
5237                                     If (PIO1 > 0xF0)
5238                                     {
5239                                         SECT |= 0x80
5240                                     }
5241                                     Else
5242                                     {
5243                                         SECT |= 0x10
5244                                         SSIT = SETT (PIO1, W531, W641)
5245                                     }
5246                                 }
5247 
5248                                 If (FLAG & 0x04)
5249                                 {
5250                                     SYNC |= 0x08
5251                                     SDT3 = SDMA (DMA1)
5252                                     If (DMA1 < 0x1E)
5253                                     {
5254                                         ICR3 |= 0x08
5255                                     }
5256 
5257                                     If (DMA1 < 0x3C)
5258                                     {
5259                                         ICR0 |= 0x08
5260                                     }
5261 
5262                                     If (W931 & 0x2000)
5263                                     {
5264                                         ICR1 |= 0x08
5265                                     }
5266                                 }
5267                             }
5268                         }
5269                     }
5270 
5271                     Device (S_D0)
5272                     {
5273                         Name (_ADR, Zero)  // _ADR: Address
5274                         Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
5275                         {
5276                             Return (Zero)
5277                         }
5278 
5279                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
5280                         {
5281                             If (SCFG != 0x04)
5282                             {
5283                                 Name (SIB0, Buffer (0x0E)
5284                                 {
5285                                     /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03,  /* ........ */
5286                                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF               /* ...... */
5287                                 })
5288                                 CreateByteField (SIB0, One, PMD0)
5289                                 CreateByteField (SIB0, 0x08, DMD0)
5290                                 If (SECT & 0x02)
5291                                 {
5292                                     If ((SECT & 0x09) == 0x08)
5293                                     {
5294                                         PMD0 = 0x08
5295                                     }
5296                                     Else
5297                                     {
5298                                         PMD0 = 0x0A
5299                                         Local0 = ((SECT & 0x0300) >> 0x08)
5300                                         Local1 = ((SECT & 0x3000) >> 0x0C)
5301                                         Local2 = (Local0 + Local1)
5302                                         If (0x03 == Local2)
5303                                         {
5304                                             PMD0 = 0x0B
5305                                         }
5306 
5307                                         If (0x05 == Local2)
5308                                         {
5309                                             PMD0 = 0x0C
5310                                         }
5311                                     }
5312                                 }
5313                                 Else
5314                                 {
5315                                     PMD0 = One
5316                                 }
5317 
5318                                 If (SYNC & 0x04)
5319                                 {
5320                                     DMD0 = (SDT2 | 0x40)
5321                                     If (ICR1 & 0x04)
5322                                     {
5323                                         If (ICR0 & 0x04)
5324                                         {
5325                                             DMD0 += 0x02
5326                                         }
5327 
5328                                         If (ICR3 & 0x04)
5329                                         {
5330                                             DMD0 = 0x45
5331                                         }
5332                                     }
5333                                 }
5334                                 Else
5335                                 {
5336                                     DMD0 = (((PMD0 & 0x07) - 0x02) | 0x20)
5337                                 }
5338 
5339                                 Return (SIB0) /* \_SB_.PCI0.SATA.SECD.S_D0._GTF.SIB0 */
5340                             }
5341 
5342                             Return (Zero)
5343                         }
5344                     }
5345 
5346                     Device (S_D1)
5347                     {
5348                         Name (_ADR, One)  // _ADR: Address
5349                         Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
5350                         {
5351                             If (SCFG != 0x04)
5352                             {
5353                                 Name (SIB1, Buffer (0x0E)
5354                                 {
5355                                     /* 0000 */  0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03,  /* ........ */
5356                                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF               /* ...... */
5357                                 })
5358                                 CreateByteField (SIB1, One, PMD1)
5359                                 CreateByteField (SIB1, 0x08, DMD1)
5360                                 If (SECT & 0x20)
5361                                 {
5362                                     If ((SECT & 0x90) == 0x80)
5363                                     {
5364                                         PMD1 = 0x08
5365                                     }
5366                                     Else
5367                                     {
5368                                         Local0 = ((SSIT & 0x03) + ((SSIT & 0x0C) >> 0x02
5369                                             ))
5370                                         If (0x05 == Local0)
5371                                         {
5372                                             PMD1 = 0x0C
5373                                         }
5374                                         ElseIf (0x03 == Local0)
5375                                         {
5376                                             PMD1 = 0x0B
5377                                         }
5378                                         Else
5379                                         {
5380                                             PMD1 = 0x0A
5381                                         }
5382                                     }
5383                                 }
5384                                 Else
5385                                 {
5386                                     PMD1 = One
5387                                 }
5388 
5389                                 If (SYNC & 0x08)
5390                                 {
5391                                     DMD1 = (SDT3 | 0x40)
5392                                     If (ICR1 & 0x08)
5393                                     {
5394                                         If (ICR0 & 0x08)
5395                                         {
5396                                             DMD1 += 0x02
5397                                         }
5398 
5399                                         If (ICR3 & 0x08)
5400                                         {
5401                                             DMD1 = 0x45
5402                                         }
5403                                     }
5404                                 }
5405                                 Else
5406                                 {
5407                                     DMD1 = (((PMD1 & 0x07) - 0x02) | 0x20)
5408                                 }
5409 
5410                                 Return (SIB1) /* \_SB_.PCI0.SATA.SECD.S_D1._GTF.SIB1 */
5411                             }
5412 
5413                             Return (Zero)
5414                         }
5415                     }
5416                 }
5417 
5418                 Device (PRT0)
5419                 {
5420                     Name (_ADR, 0xFFFF)  // _ADR: Address
5421                     Method (_SDD, 1, NotSerialized)  // _SDD: Set Device Data
5422                     {
5423                         If (SCFG == 0x04)
5424                         {
5425                             Name (GBU0, Buffer (0x07)
5426                             {
5427                                  0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00         /* ....... */
5428                             })
5429                             CreateByteField (GBU0, Zero, GB00)
5430                             CreateByteField (GBU0, One, GB01)
5431                             CreateByteField (GBU0, 0x02, GB02)
5432                             CreateByteField (GBU0, 0x03, GB03)
5433                             CreateByteField (GBU0, 0x04, GB04)
5434                             CreateByteField (GBU0, 0x05, GB05)
5435                             CreateByteField (GBU0, 0x06, GB06)
5436                             If (SizeOf (Arg0) == 0x0200)
5437                             {
5438                                 CreateWordField (Arg0, 0x9C, W780)
5439                                 CreateWordField (Arg0, 0x9E, W790)
5440                                 If (W780 && 0x04)
5441                                 {
5442                                     If ((W790 & 0x04) == Zero)
5443                                     {
5444                                         GB00 = 0x10
5445                                         GB01 = 0x03
5446                                         GB06 = 0xEF
5447                                     }
5448                                 }
5449                             }
5450 
5451                             GTF0 = GBU0 /* \_SB_.PCI0.SATA.PRT0._SDD.GBU0 */
5452                         }
5453                     }
5454 
5455                     Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
5456                     {
5457                         If ((SCFG == 0x04) && (AIBT == Zero))
5458                         {
5459                             Return (GTF0) /* \GTF0 */
5460                         }
5461 
5462                         Return (Zero)
5463                     }
5464                 }
5465 
5466                 Device (PRT2)
5467                 {
5468                     Name (_ADR, 0x0002FFFF)  // _ADR: Address
5469                     Method (_SDD, 1, NotSerialized)  // _SDD: Set Device Data
5470                     {
5471                         If (SCFG == 0x04)
5472                         {
5473                             Name (GBU2, Buffer (0x07)
5474                             {
5475                                  0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00         /* ....... */
5476                             })
5477                             CreateByteField (GBU2, Zero, GB20)
5478                             CreateByteField (GBU2, One, GB21)
5479                             CreateByteField (GBU2, 0x02, GB22)
5480                             CreateByteField (GBU2, 0x03, GB23)
5481                             CreateByteField (GBU2, 0x04, GB24)
5482                             CreateByteField (GBU2, 0x05, GB25)
5483                             CreateByteField (GBU2, 0x06, GB26)
5484                             If (SizeOf (Arg0) == 0x0200)
5485                             {
5486                                 CreateWordField (Arg0, 0x9C, W782)
5487                                 CreateWordField (Arg0, 0x9E, W792)
5488                                 If (W782 && 0x04)
5489                                 {
5490                                     If ((W792 & 0x04) == Zero)
5491                                     {
5492                                         GB20 = 0x10
5493                                         GB21 = 0x03
5494                                         GB26 = 0xEF
5495                                     }
5496                                 }
5497                             }
5498 
5499                             GTF2 = GBU2 /* \_SB_.PCI0.SATA.PRT2._SDD.GBU2 */
5500                         }
5501                     }
5502 
5503                     Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
5504                     {
5505                         If ((SCFG == 0x04) && (AIBT == Zero))
5506                         {
5507                             Return (GTF2) /* \GTF2 */
5508                         }
5509 
5510                         Return (Zero)
5511                     }
5512                 }
5513             }
5514 
5515             Device (WMID)
5516             {
5517                 Name (_HID, "PNP0C14" /* Windows Management Instrumentation Device */)  // _HID: Hardware ID
5518                 Name (_UID, Zero)  // _UID: Unique ID
5519                 Name (ERRD, 0x00010000)
5520                 Name (BUFF, Buffer (0x04)
5521                 {
5522                      0x00, 0x00, 0x00, 0x00                           /* .... */
5523                 })
5524                 CreateByteField (BUFF, Zero, BF00)
5525                 CreateByteField (BUFF, One, BF01)
5526                 CreateByteField (BUFF, 0x02, BF02)
5527                 CreateByteField (BUFF, 0x03, BF03)
5528                 Name (BUF1, Buffer (0x04)
5529                 {
5530                      0x00, 0x00, 0x00, 0x00                           /* .... */
5531                 })
5532                 Name (AADS, Buffer (0x04)
5533                 {
5534                      0x00                                             /* . */
5535                 })
5536                 CreateField (AADS, Zero, 0x04, AS00)
5537                 CreateField (AADS, 0x04, One, AS01)
5538                 CreateField (AADS, 0x05, One, AS02)
5539                 CreateField (AADS, 0x10, 0x10, AS03)
5540                 Name (BAEF, Zero)
5541                 Name (BADF, Zero)
5542                 Name (BADG, Package (0x0D)
5543                 {
5544                     Zero, 
5545                     Zero, 
5546                     Zero, 
5547                     Zero, 
5548                     Zero, 
5549                     Zero, 
5550                     Zero, 
5551                     0x00010000, 
5552                     0x00010000, 
5553                     0x00010000, 
5554                     0x00010000, 
5555                     Zero, 
5556                     0x00010000
5557                 })
5558                 Name (WLDS, Zero)
5559                 Name (WLED, Zero)
5560                 Name (BTDS, Zero)
5561                 Name (BTED, Zero)
5562                 Name (BLDS, Zero)
5563                 Name (BLED, Zero)
5564                 Name (NTDC, Zero)
5565                 Name (NTDV, Zero)
5566                 Name (WLSD, 0x0100)
5567                 Name (WLSE, 0x0101)
5568                 Name (BLTD, 0x0200)
5569                 Name (BLTE, 0x0201)
5570                 Name (LBL0, 0x0300)
5571                 Name (LBL1, 0x0301)
5572                 Name (LBL2, 0x0302)
5573                 Name (LBL3, 0x0303)
5574                 Name (LBL4, 0x0304)
5575                 Name (LBL5, 0x0305)
5576                 Name (LBL6, 0x0306)
5577                 Name (LBL7, 0x0307)
5578                 Name (LBL8, 0x0308)
5579                 Name (LBL9, 0x0309)
5580                 Name (LBLA, 0x030A)
5581                 Name (LBLB, 0x030B)
5582                 Name (LBLC, 0x030C)
5583                 Name (LBLD, 0x030D)
5584                 Name (LBLE, 0x030E)
5585                 Name (LBLF, 0x030F)
5586                 Name (CADI, 0x0401)
5587                 Name (CADO, 0x0400)
5588                 Name (GSEE, 0x0501)
5589                 Name (GSED, 0x0502)
5590                 Name (VAPI, 0x0601)
5591                 Name (VAPO, 0x0600)
5592                 Name (WBBO, 0x0701)
5593                 Name (WBBI, 0x0700)
5594                 Name (G3MD, 0x0800)
5595                 Name (G3ME, 0x0801)
5596                 Name (LANI, 0x0900)
5597                 Name (LANO, 0x0901)
5598                 Name (LDOF, 0x0A00)
5599                 Name (LDON, 0x0A01)
5600                 Name (FNKE, 0x00010002)
5601                 Name (FNF5, 0x00015001)
5602                 Name (BBSB, Buffer (0x04)
5603                 {
5604                      0x00, 0x00, 0x00, 0x00                           /* .... */
5605                 })
5606                 CreateField (BBSB, Zero, 0x10, BBD0)
5607                 CreateField (BBSB, 0x10, 0x10, BBD1)
5608                 Name (TLS0, Zero)
5609                 Name (TLS1, One)
5610                 Name (TLS2, 0x02)
5611                 Name (TLS3, 0x03)
5612                 Name (TLS4, 0x04)
5613                 Name (TLS5, 0x05)
5614                 Name (TLS6, 0x06)
5615                 Name (TLS7, 0x07)
5616                 Name (BCDS, Package (0x0D)
5617                 {
5618                     0x00010000, 
5619                     0x00010000, 
5620                     0x00010000, 
5621                     0x00010000, 
5622                     0x00010000, 
5623                     0x00010000, 
5624                     0x00010000, 
5625                     0x00010000, 
5626                     0x00010000, 
5627                     0x00010000, 
5628                     0x00010000, 
5629                     0x00010000, 
5630                     0x00010000
5631                 })
5632                 Name (BDDS, Buffer (0x04)
5633                 {
5634                      0x00, 0x00, 0x00, 0x00                           /* .... */
5635                 })
5636                 CreateField (BDDS, Zero, 0x10, BDD0)
5637                 CreateField (BDDS, 0x10, 0x10, BDD1)
5638                 Name (DSY0, Buffer (0x28)
5639                 {
5640                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5641                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5642                     /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5643                     /* 0018 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5644                     /* 0020 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
5645                 })
5646                 Name (DSY1, Buffer (0x18)
5647                 {
5648                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5649                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5650                     /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
5651                 })
5652                 Name (DSY2, Buffer (0x10)
5653                 {
5654                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5655                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
5656                 })
5657                 Name (DSY3, Buffer (0x18)
5658                 {
5659                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5660                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5661                     /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
5662                 })
5663                 Name (DSY4, Buffer (0x10)
5664                 {
5665                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5666                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
5667                 })
5668                 Name (DSY5, Buffer (0x28)
5669                 {
5670                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5671                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5672                     /* 0010 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5673                     /* 0018 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5674                     /* 0020 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
5675                 })
5676                 CreateField (DSY0, Zero, 0x40, DY00)
5677                 CreateField (DSY0, 0x40, 0x40, DY01)
5678                 CreateField (DSY0, 0x80, 0x40, DY02)
5679                 CreateField (DSY0, 0xC0, 0x40, DY03)
5680                 CreateField (DSY0, 0x0100, 0x40, DY04)
5681                 CreateField (DSY1, Zero, 0x40, DY10)
5682                 CreateField (DSY1, 0x40, 0x40, DY11)
5683                 CreateField (DSY1, 0x80, 0x40, DY12)
5684                 CreateField (DSY2, Zero, 0x40, DY20)
5685                 CreateField (DSY2, 0x40, 0x10, DY21)
5686                 CreateField (DSY2, 0x50, 0x10, DY22)
5687                 CreateField (DSY0, Zero, 0xC0, DSX4)
5688                 Name (BEDS, Package (0x12)
5689                 {
5690                     0x00010000, 
5691                     0x00010000, 
5692                     0x00010000, 
5693                     0x00010000, 
5694                     0x00010000, 
5695                     0x00010000, 
5696                     0x00010000, 
5697                     0x00010000, 
5698                     0x00010000, 
5699                     0x00010000, 
5700                     0x00010000, 
5701                     0x00010000, 
5702                     0x00010000, 
5703                     0x00010000, 
5704                     0x00010000, 
5705                     0x00010000, 
5706                     0x00010000, 
5707                     0x00010000
5708                 })
5709                 Name (WIT0, Zero)
5710                 Name (DSY6, Buffer (0x14)
5711                 {
5712                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5713                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5714                     /* 0010 */  0x00, 0x00, 0x00, 0x00                           /* .... */
5715                 })
5716                 CreateField (DSY6, Zero, 0x20, DY60)
5717                 CreateField (DSY6, 0x20, 0x20, DY61)
5718                 CreateField (DSY6, 0x40, 0x20, DY62)
5719                 CreateField (DSY6, 0x60, 0x20, DY63)
5720                 CreateField (DSY6, 0x80, 0x20, DY64)
5721                 Name (WPRW, Buffer (0x14)
5722                 {
5723                     /* 0000 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5724                     /* 0008 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
5725                     /* 0010 */  0x00, 0x00, 0x00, 0x00                           /* .... */
5726                 })
5727                 CreateField (WPRW, Zero, 0x08, WWD0)
5728                 CreateField (WPRW, 0x08, 0x08, WWD1)
5729                 CreateField (WPRW, 0x10, 0x08, WWD2)
5730                 CreateField (WPRW, 0x18, 0x08, WWD3)
5731                 CreateField (WPRW, 0x20, 0x08, WWD4)
5732                 CreateField (WPRW, 0x28, 0x20, WWD5)
5733                 Name (WPCI, Buffer (0x04)
5734                 {
5735                      0x00, 0x00, 0x00, 0x00                           /* .... */
5736                 })
5737                 CreateField (WPCI, Zero, 0x08, WPIR)
5738                 CreateField (WPCI, 0x08, 0x03, WPIF)
5739                 CreateField (WPCI, 0x0B, 0x05, WPID)
5740                 CreateField (WPCI, 0x10, 0x08, WPIB)
5741                 Name (BFDS, Package (0x04)
5742                 {
5743                     0x02, 
5744                     0x02, 
5745                     0x02, 
5746                     0x02
5747                 })
5748                 Name (GSTS, Zero)
5749                 Name (BFEF, Zero)
5750                 Name (BGEF, Zero)
5751                 Name (BGDS, Package (0x01)
5752                 {
5753                     One
5754                 })
5755                 Method (AAF1, 0, NotSerialized)
5756                 {
5757                     AS02 = Zero
5758                     AS03 = Zero
5759                 }
5760 
5761                 Method (WGDS, 1, NotSerialized)
5762                 {
5763                     Name (T_0, Zero)
5764                     T_0 = Arg0
5765                     If (T_0 == One) {}
5766                     ElseIf (T_0 == 0x02) {}
5767                     ElseIf (T_0 == 0x03) {}
5768                     ElseIf (T_0 == 0x08)
5769                     {
5770                         BADG [0x07] = One
5771                     }
5772                     ElseIf (T_0 == 0x09)
5773                     {
5774                         BADG [0x08] = Zero
5775                     }
5776                     ElseIf (T_0 == 0x0C) {}
5777                     ElseIf (T_0 == 0x0D) {}
5778                 }
5779 
5780                 Method (WSDS, 2, NotSerialized)
5781                 {
5782                     BUFF = Arg1
5783                     Local0 = Arg0
5784                     Local1 = BF00 /* \_SB_.PCI0.WMID.BF00 */
5785                     BADG [(Local0 - One)] = Zero
5786                     Name (T_0, Zero)
5787                     T_0 = Local1
5788                     If (T_0 == Zero)
5789                     {
5790                         Name (T_1, Zero)
5791                         T_1 = Local0
5792                         If (T_1 == 0x04) {}
5793                         ElseIf (T_1 == 0x05) {}
5794                         ElseIf (T_1 == 0x06) {}
5795                         ElseIf (T_1 == 0x07)
5796                         {
5797                             BAEF = Zero
5798                         }
5799                         Else
5800                         {
5801                             BADG [(Local0 - One)] = 0x0100
5802                         }
5803                     }
5804                     Else
5805                     {
5806                         Name (T_2, Zero)
5807                         T_2 = Local0
5808                         If (T_2 == 0x04) {}
5809                         ElseIf (T_2 == 0x05) {}
5810                         ElseIf (T_2 == 0x06) {}
5811                         ElseIf (T_2 == 0x07)
5812                         {
5813                             BAEF = One
5814                         }
5815                         Else
5816                         {
5817                             BADG [(Local0 - One)] = 0x0100
5818                         }
5819                     }
5820                 }
5821 
5822                 Method (OEMN, 0, NotSerialized)
5823                 {
5824                     If (BGEF == One)
5825                     {
5826                         Local0 = NTDV /* \_SB_.PCI0.WMID.NTDV */
5827                         If (Local0 != Zero)
5828                         {
5829                             NTDV = Zero
5830                             Return (Local0)
5831                         }
5832                     }
5833 
5834                     If (BAEF == One)
5835                     {
5836                         Local0 = NTDC /* \_SB_.PCI0.WMID.NTDC */
5837                         If (Local0 != Zero)
5838                         {
5839                             NTDC = Zero
5840                             Return (Local0)
5841                         }
5842                     }
5843 
5844                     If (BFEF == One) {}
5845                     Return (Zero)
5846                 }
5847 
5848                 Method (STRL, 2, NotSerialized)
5849                 {
5850                     Local0 = Arg0
5851                     BUFF = Arg1
5852                     BBSB = Zero
5853                     Name (T_0, Zero)
5854                     T_0 = Local0
5855                     If (T_0 == One) {}
5856                     ElseIf (T_0 == 0x02) {}
5857                     Else
5858                     {
5859                         BBSB = 0x00010000
5860                     }
5861                 }
5862 
5863                 Method (WODP, 2, NotSerialized)
5864                 {
5865                     If (Arg0 == 0x03) {}
5866                     Else
5867                     {
5868                         BCDS [(Arg0 - One)] = One
5869                     }
5870 
5871                     If (Arg0 == 0x0C)
5872                     {
5873                         If (Arg1) {}
5874                         Else
5875                         {
5876                         }
5877                     }
5878                     Else
5879                     {
5880                     }
5881                 }
5882 
5883                 Method (GCPU, 1, NotSerialized)
5884                 {
5885                     DSY0 = DSY5 /* \_SB_.PCI0.WMID.DSY5 */
5886                     Local0 = Arg0
5887                     Local2 = IHWM (Zero, Arg0)
5888                     DSY6 = Local2
5889                     DY00 = DY60 /* \_SB_.PCI0.WMID.DY60 */
5890                     DY01 = DY61 /* \_SB_.PCI0.WMID.DY61 */
5891                     DY02 = DY62 /* \_SB_.PCI0.WMID.DY62 */
5892                     DY03 = DY63 /* \_SB_.PCI0.WMID.DY63 */
5893                 }
5894 
5895                 Method (MSRR, 1, NotSerialized)
5896                 {
5897                     DSY1 = DSY3 /* \_SB_.PCI0.WMID.DSY3 */
5898                     DY00 = Arg0
5899                     Local2 = IHWM (One, Arg0)
5900                     DSY6 = Local2
5901                     DY10 = DY60 /* \_SB_.PCI0.WMID.DY60 */
5902                     DY11 = DY61 /* \_SB_.PCI0.WMID.DY61 */
5903                     WIT0 = Zero
5904                     DY12 = WIT0 /* \_SB_.PCI0.WMID.WIT0 */
5905                 }
5906 
5907                 Method (MSRW, 1, NotSerialized)
5908                 {
5909                     DSY1 = DSY3 /* \_SB_.PCI0.WMID.DSY3 */
5910                     Local2 = IHWM (0x02, Arg0)
5911                     DSY6 = Local2
5912                     DY10 = DY60 /* \_SB_.PCI0.WMID.DY60 */
5913                     DY11 = DY61 /* \_SB_.PCI0.WMID.DY61 */
5914                     WIT0 = Zero
5915                     DY12 = WIT0 /* \_SB_.PCI0.WMID.WIT0 */
5916                 }
5917 
5918                 Method (C4C3, 2, NotSerialized)
5919                 {
5920                 }
5921 
5922                 Method (CPUF, 0, NotSerialized)
5923                 {
5924                 }
5925 
5926                 Method (CPUT, 0, NotSerialized)
5927                 {
5928                 }
5929 
5930                 Method (PCIR, 1, NotSerialized)
5931                 {
5932                     Local0 = Arg0
5933                     Local2 = IHWM (0x03, Arg0)
5934                     DY20 = Local2
5935                     DSY6 = Local2
5936                     DSY2 = DSY4 /* \_SB_.PCI0.WMID.DSY4 */
5937                     DY20 = DY60 /* \_SB_.PCI0.WMID.DY60 */
5938                 }
5939 
5940                 Method (PCIW, 1, NotSerialized)
5941                 {
5942                     Local0 = Arg0
5943                     DY20 = Arg0
5944                     Local2 = IHWM (0x04, Arg0)
5945                     DSY6 = Local2
5946                     BUFF = DY61 /* \_SB_.PCI0.WMID.DY61 */
5947                 }
5948 
5949                 Method (CPUS, 0, NotSerialized)
5950                 {
5951                     Local2 = IHWM (0x05, Zero)
5952                     BUFF = Local2
5953                     BCDS [0x0C] = BUFF /* \_SB_.PCI0.WMID.BUFF */
5954                 }
5955 
5956                 Method (PCID, 1, NotSerialized)
5957                 {
5958                     Local2 = IHWM (0x06, Arg0)
5959                     DSY6 = Local2
5960                 }
5961 
5962                 Method (BTIF, 2, NotSerialized)
5963                 {
5964                     Local0 = Arg0
5965                     BUFF = Arg1
5966                     If (Local0 == 0x0D)
5967                     {
5968                         BF00 = BF02 /* \_SB_.PCI0.WMID.BF02 */
5969                         Local1 = BF01 /* \_SB_.PCI0.WMID.BF01 */
5970                         BF00 = BF02 /* \_SB_.PCI0.WMID.BF02 */
5971                         Local1 = BF01 /* \_SB_.PCI0.WMID.BF01 */
5972                     }
5973 
5974                     If (Local0 == 0x0E)
5975                     {
5976                         If (BF00 == Zero)
5977                         {
5978                             BF00 = 0xFF
5979                         }
5980                         Else
5981                         {
5982                             Local1 = BF00 /* \_SB_.PCI0.WMID.BF00 */
5983                             BF00 = One
5984                         }
5985                     }
5986                 }
5987 
5988                 Method (CKGS, 0, NotSerialized)
5989                 {
5990                     GSTS = One
5991                     Return (GSTS) /* \_SB_.PCI0.WMID.GSTS */
5992                 }
5993 
5994                 Method (WSHP, 1, NotSerialized)
5995                 {
5996                 }
5997 
5998                 Method (WSSL, 1, NotSerialized)
5999                 {
6000                 }
6001 
6002                 Method (WSSP, 1, NotSerialized)
6003                 {
6004                 }
6005 
6006                 Method (WSSE, 1, NotSerialized)
6007                 {
6008                 }
6009 
6010                 Method (WSVE, 1, NotSerialized)
6011                 {
6012                     Local0 = Arg0
6013                     If (Local0 == One)
6014                     {
6015                         BGEF = One
6016                     }
6017                     Else
6018                     {
6019                         BGEF = Zero
6020                     }
6021 
6022                     BGDS [Zero] = Zero
6023                 }
6024 
6025                 Name (_WDG, Buffer (0xDC)
6026                 {
6027                     /* 0000 */  0x09, 0x4E, 0x76, 0x95, 0x56, 0xFB, 0x83, 0x4E,  /* .Nv.V..N */
6028                     /* 0008 */  0xB3, 0x1A, 0x37, 0x76, 0x1F, 0x60, 0x99, 0x4A,  /* ..7v.`.J */
6029                     /* 0010 */  0x41, 0x41, 0x01, 0x01, 0x58, 0xF2, 0xF4, 0x6A,  /* AA..X..j */
6030                     /* 0018 */  0x01, 0xB4, 0xFD, 0x42, 0xBE, 0x91, 0x3D, 0x4A,  /* ...B..=J */
6031                     /* 0020 */  0xC2, 0xD7, 0xC0, 0xD3, 0x42, 0x41, 0x01, 0x02,  /* ....BA.. */
6032                     /* 0028 */  0xAC, 0x61, 0x1A, 0xCC, 0x56, 0x42, 0xA3, 0x41,  /* .a..VB.A */
6033                     /* 0030 */  0xB9, 0xE0, 0x05, 0xA4, 0x45, 0xAD, 0xE2, 0xF5,  /* ....E... */
6034                     /* 0038 */  0x80, 0x00, 0x01, 0x08, 0x53, 0x44, 0x8C, 0xE7,  /* ....SD.. */
6035                     /* 0040 */  0x27, 0x02, 0x61, 0x48, 0x9E, 0xDE, 0xF5, 0x60,  /* '.aH...` */
6036                     /* 0048 */  0x0B, 0x4A, 0x3D, 0x39, 0x42, 0x42, 0x01, 0x02,  /* .J=9BB.. */
6037                     /* 0050 */  0x7B, 0x4F, 0xE0, 0xAA, 0xC5, 0xB3, 0x65, 0x48,  /* {O....eH */
6038                     /* 0058 */  0x95, 0xD6, 0x9F, 0xAC, 0x7F, 0xF3, 0xE9, 0x2B,  /* .......+ */
6039                     /* 0060 */  0x42, 0x43, 0x01, 0x02, 0x79, 0x4C, 0xF9, 0xCF,  /* BC..yL.. */
6040                     /* 0068 */  0x77, 0x6C, 0xF7, 0x4A, 0xAC, 0x56, 0x7D, 0xD0,  /* wl.J.V}. */
6041                     /* 0070 */  0xCE, 0x01, 0xC9, 0x97, 0x42, 0x44, 0x01, 0x02,  /* ....BD.. */
6042                     /* 0078 */  0xC5, 0x2E, 0x77, 0x79, 0xB1, 0x04, 0xFD, 0x4B,  /* ..wy...K */
6043                     /* 0080 */  0x84, 0x3C, 0x61, 0xE7, 0xF7, 0x7B, 0x6C, 0xC9,  /* .<a..{l. */
6044                     /* 0088 */  0x42, 0x45, 0x01, 0x02, 0xB7, 0xA0, 0xC9, 0xA7,  /* BE...... */
6045                     /* 0090 */  0x9D, 0x4C, 0x72, 0x4C, 0x83, 0xBB, 0x53, 0xA3,  /* .LrL..S. */
6046                     /* 0098 */  0x45, 0x91, 0x71, 0xDF, 0x42, 0x46, 0x01, 0x02,  /* E.q.BF.. */
6047                     /* 00A0 */  0x4F, 0x06, 0x3A, 0x65, 0x3A, 0xA2, 0x5F, 0x48,  /* O.:e:._H */
6048                     /* 00A8 */  0xB3, 0xD9, 0x13, 0xF6, 0x53, 0x2A, 0x01, 0x82,  /* ....S*.. */
6049                     /* 00B0 */  0x42, 0x47, 0x01, 0x02, 0xA7, 0xB1, 0x85, 0xDB,  /* BG...... */
6050                     /* 00B8 */  0x9A, 0x06, 0xBB, 0x4A, 0xA2, 0xB5, 0xD1, 0x86,  /* ...J.... */
6051                     /* 00C0 */  0xA2, 0x1B, 0x80, 0xF1, 0x81, 0x00, 0x01, 0x08,  /* ........ */
6052                     /* 00C8 */  0x91, 0x6B, 0x91, 0x36, 0x64, 0x1A, 0x83, 0x45,  /* .k.6d..E */
6053                     /* 00D0 */  0x84, 0xD0, 0x53, 0x83, 0x0F, 0xB9, 0x10, 0x8D,  /* ..S..... */
6054                     /* 00D8 */  0x82, 0x00, 0x01, 0x08                           /* .... */
6055                 })
6056                 Method (WQAA, 1, NotSerialized)
6057                 {
6058                     AAF1 ()
6059                     BUFF = AADS /* \_SB_.PCI0.WMID.AADS */
6060                     Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6061                 }
6062 
6063                 Method (WMBA, 3, NotSerialized)
6064                 {
6065                     Name (T_0, Zero)
6066                     T_0 = Arg1
6067                     If (Match (Package (0x08)
6068                                     {
6069                                         One, 
6070                                         0x02, 
6071                                         0x03, 
6072                                         0x08, 
6073                                         0x09, 
6074                                         0x0A, 
6075                                         0x0C, 
6076                                         0x0D
6077                                     }, MEQ, T_0, MTR, Zero, Zero) != Ones)
6078                     {
6079                         Local0 = Zero
6080                     }
6081                     ElseIf (Match (Package (0x05)
6082                                     {
6083                                         0x04, 
6084                                         0x05, 
6085                                         0x06, 
6086                                         0x07, 
6087                                         0x0B
6088                                     }, MEQ, T_0, MTR, Zero, Zero) != Ones)
6089                     {
6090                         If (Arg1 == 0x07)
6091                         {
6092                             BUFF = Arg2
6093                             If (BF00)
6094                             {
6095                                 BAEF = One
6096                             }
6097                         }
6098 
6099                         Local0 = One
6100                     }
6101 
6102                     If (Local0)
6103                     {
6104                         WSDS (Arg1, Arg2)
6105                     }
6106                     Else
6107                     {
6108                         WGDS (Arg1)
6109                     }
6110 
6111                     BUFF = DerefOf (BADG [(Arg1 - One)])
6112                     Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6113                 }
6114 
6115                 Method (_WED, 1, NotSerialized)  // _Wxx: Wake Event
6116                 {
6117                     If (Arg0 >= 0x80)
6118                     {
6119                         If (Arg0 < 0x83)
6120                         {
6121                             Return (OEMN ())
6122                         }
6123                     }
6124 
6125                     Return (Zero)
6126                 }
6127 
6128                 Method (WMBB, 3, NotSerialized)
6129                 {
6130                     STRL (Arg1, Arg2)
6131                     If (Arg1 == One)
6132                     {
6133                         BUFF = BBSB /* \_SB_.PCI0.WMID.BBSB */
6134                     }
6135 
6136                     If (Arg1 == 0x02)
6137                     {
6138                         BUFF = BBD1 /* \_SB_.PCI0.WMID.BBD1 */
6139                     }
6140 
6141                     Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6142                 }
6143 
6144                 Method (WMBC, 3, NotSerialized)
6145                 {
6146                     WODP (Arg1, Arg2)
6147                     If (Arg1 < 0x0A)
6148                     {
6149                         Local0 = (Arg1 - One)
6150                         BUFF = DerefOf (BCDS [(Arg1 - One)])
6151                     }
6152                     Else
6153                     {
6154                         BUFF = (DerefOf (BCDS [(Arg1 - 0x0A)]) >> 0x10)
6155                     }
6156 
6157                     Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6158                 }
6159 
6160                 Method (WMBD, 3, NotSerialized)
6161                 {
6162                     If (Arg1 == One)
6163                     {
6164                         BUFF = Arg2
6165                         Local0 = BUFF /* \_SB_.PCI0.WMID.BUFF */
6166                         WIT0 = Arg2
6167                         GCPU (WIT0)
6168                         Return (DSY0) /* \_SB_.PCI0.WMID.DSY0 */
6169                     }
6170 
6171                     If (Arg1 == 0x02)
6172                     {
6173                         Local0 = Arg2
6174                         MSRR (Arg2)
6175                         Return (DSY1) /* \_SB_.PCI0.WMID.DSY1 */
6176                     }
6177 
6178                     If (Arg1 == 0x03)
6179                     {
6180                         Local0 = Arg2
6181                         MSRW (Arg2)
6182                         Return (DSY1) /* \_SB_.PCI0.WMID.DSY1 */
6183                     }
6184 
6185                     If (Arg1 == 0x04)
6186                     {
6187                         C4C3 (Arg1, Arg2)
6188                         BUFF = (DerefOf (BCDS [(Arg1 + 0x05)]) >> 0x10)
6189                         Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6190                     }
6191 
6192                     If (Arg1 == 0x05)
6193                     {
6194                         C4C3 (Arg1, Arg2)
6195                         BUFF = DerefOf (BCDS [(Arg1 + 0x04)])
6196                         Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6197                     }
6198 
6199                     If (Arg1 == 0x06)
6200                     {
6201                         CPUF ()
6202                         BUFF = DerefOf (BCDS [(Arg1 + 0x04)])
6203                         Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6204                     }
6205 
6206                     If (Arg1 == 0x07)
6207                     {
6208                         CPUT ()
6209                         BUFF = DerefOf (BCDS [(Arg1 + 0x04)])
6210                         Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6211                     }
6212 
6213                     If (Arg1 == 0x08)
6214                     {
6215                         WPRW = Arg2
6216                         WPIR = WWD1 /* \_SB_.PCI0.WMID.WWD1 */
6217                         WPIF = WWD2 /* \_SB_.PCI0.WMID.WWD2 */
6218                         WPID = WWD3 /* \_SB_.PCI0.WMID.WWD3 */
6219                         WPIB = WWD4 /* \_SB_.PCI0.WMID.WWD4 */
6220                         Concatenate (WPCI, WWD0, Local0)
6221                         PCIR (Local0)
6222                         Return (DSY2) /* \_SB_.PCI0.WMID.DSY2 */
6223                     }
6224 
6225                     If (Arg1 == 0x09)
6226                     {
6227                         DSY6 = Arg2
6228                         Local0 = DY60 /* \_SB_.PCI0.WMID.DY60 */
6229                         DSY0 = Arg2
6230                         WPRW = DY01 /* \_SB_.PCI0.WMID.DY01 */
6231                         WPIR = WWD1 /* \_SB_.PCI0.WMID.WWD1 */
6232                         WPIF = WWD2 /* \_SB_.PCI0.WMID.WWD2 */
6233                         WPID = WWD3 /* \_SB_.PCI0.WMID.WWD3 */
6234                         WPIB = WWD4 /* \_SB_.PCI0.WMID.WWD4 */
6235                         Local1 = WPCI /* \_SB_.PCI0.WMID.WPCI */
6236                         Concatenate (DY60, WPCI, Local0)
6237                         Concatenate (Local0, WWD0, Local1)
6238                         PCIW (Local1)
6239                         Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6240                     }
6241 
6242                     If (Arg1 == 0x0A)
6243                     {
6244                         CPUS ()
6245                         BUFF = DerefOf (BCDS [(Arg1 + 0x02)])
6246                         Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6247                     }
6248 
6249                     If (Arg1 == 0x0B)
6250                     {
6251                         PCID (Arg2)
6252                         Return (DSY6) /* \_SB_.PCI0.WMID.DSY6 */
6253                     }
6254 
6255                     Return (Zero)
6256                 }
6257 
6258                 Method (WMBE, 3, NotSerialized)
6259                 {
6260                     BTIF (Arg1, Arg2)
6261                     Debug = BUFF /* \_SB_.PCI0.WMID.BUFF */
6262                     Debug = BEDS /* \_SB_.PCI0.WMID.BEDS */
6263                     BUFF = DerefOf (BEDS [(Arg1 - One)])
6264                     Debug = BUFF /* \_SB_.PCI0.WMID.BUFF */
6265                     Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6266                 }
6267 
6268                 Method (WMBF, 3, NotSerialized)
6269                 {
6270                 }
6271 
6272                 Method (WMBG, 3, NotSerialized)
6273                 {
6274                     BUFF = Arg2
6275                     WSVE (BF00)
6276                     BUFF = DerefOf (BGDS [(Arg1 - One)])
6277                     Debug = BUFF /* \_SB_.PCI0.WMID.BUFF */
6278                     Return (BUFF) /* \_SB_.PCI0.WMID.BUFF */
6279                 }
6280             }
6281         }
6282     }
6283 
6284     Scope (\)
6285     {
6286         Name (SSDT, Package (0x0C)
6287         {
6288             "CPU0IST ", 
6289             0x5F380C90, 
6290             0x00000239, 
6291             "CPU1IST ", 
6292             0x5F380F10, 
6293             0x000000D0, 
6294             "CPU0CST ", 
6295             0x5F37FE10, 
6296             0x000001C7, 
6297             "CPU1CST ", 
6298             0x5F37EF10, 
6299             0x00000083
6300         })
6301         Name (CFGD, 0x013068B1)
6302         Name (\PDC0, 0x80000000)
6303         Name (\PDC1, 0x80000000)
6304         Name (\SDTL, Zero)
6305     }
6306 
6307     Scope (\_PR.CPU0)
6308     {
6309         Name (HI0, Zero)
6310         Name (HC0, Zero)
6311         Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
6312         {
6313             CreateDWordField (Arg0, Zero, REVS)
6314             CreateDWordField (Arg0, 0x04, SIZE)
6315             Local0 = SizeOf (Arg0)
6316             Local1 = (Local0 - 0x08)
6317             CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP)
6318             Name (STS0, Buffer (0x04)
6319             {
6320                  0x00, 0x00, 0x00, 0x00                           /* .... */
6321             })
6322             Concatenate (STS0, TEMP, Local2)
6323             _OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2)
6324         }
6325 
6326         Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
6327         {
6328             CreateDWordField (Arg3, Zero, STS0)
6329             CreateDWordField (Arg3, 0x04, CAP0)
6330             CreateDWordField (Arg0, Zero, IID0)
6331             CreateDWordField (Arg0, 0x04, IID1)
6332             CreateDWordField (Arg0, 0x08, IID2)
6333             CreateDWordField (Arg0, 0x0C, IID3)
6334             Name (UID0, ToUUID ("4077a616-290c-47be-9ebd-d87058713953"))
6335             CreateDWordField (UID0, Zero, EID0)
6336             CreateDWordField (UID0, 0x04, EID1)
6337             CreateDWordField (UID0, 0x08, EID2)
6338             CreateDWordField (UID0, 0x0C, EID3)
6339             If (!(((IID0 == EID0) && (IID1 == EID1)) && ((
6340                 IID2 == EID2) && (IID3 == EID3))))
6341             {
6342                 STS0 [Zero] = 0x06
6343                 Return (Arg3)
6344             }
6345 
6346             If (Arg1 != One)
6347             {
6348                 STS0 [Zero] = 0x0A
6349                 Return (Arg3)
6350             }
6351 
6352             PDC0 = ((PDC0 & 0x7FFFFFFF) | CAP0) /* \_PR_.CPU0._OSC.CAP0 */
6353             If (CFGD & One)
6354             {
6355                 If (((CFGD & 0x01000000) && ((PDC0 & 0x09) == 
6356                     0x09)) && !(SDTL & One))
6357                 {
6358                     SDTL |= One
6359                     OperationRegion (IST0, SystemMemory, DerefOf (SSDT [One]), DerefOf (SSDT [0x02]))
6360                     Load (IST0, HI0) /* \_PR_.CPU0.HI0_ */
6361                 }
6362             }
6363 
6364             If (CFGD & 0xF0)
6365             {
6366                 If (((CFGD & 0x01000000) && (PDC0 & 0x18)) && !
6367                     (SDTL & 0x02))
6368                 {
6369                     SDTL |= 0x02
6370                     OperationRegion (CST0, SystemMemory, DerefOf (SSDT [0x07]), DerefOf (SSDT [0x08]))
6371                     Load (CST0, HC0) /* \_PR_.CPU0.HC0_ */
6372                 }
6373             }
6374 
6375             Return (Arg3)
6376         }
6377     }
6378 
6379     Scope (\_PR.CPU1)
6380     {
6381         Name (HI1, Zero)
6382         Name (HC1, Zero)
6383         Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
6384         {
6385             CreateDWordField (Arg0, Zero, REVS)
6386             CreateDWordField (Arg0, 0x04, SIZE)
6387             Local0 = SizeOf (Arg0)
6388             Local1 = (Local0 - 0x08)
6389             CreateField (Arg0, 0x40, (Local1 * 0x08), TEMP)
6390             Name (STS1, Buffer (0x04)
6391             {
6392                  0x00, 0x00, 0x00, 0x00                           /* .... */
6393             })
6394             Concatenate (STS1, TEMP, Local2)
6395             _OSC (ToUUID ("4077a616-290c-47be-9ebd-d87058713953"), REVS, SIZE, Local2)
6396         }
6397 
6398         Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
6399         {
6400             CreateDWordField (Arg3, Zero, STS1)
6401             CreateDWordField (Arg3, 0x04, CAP1)
6402             CreateDWordField (Arg0, Zero, IID0)
6403             CreateDWordField (Arg0, 0x04, IID1)
6404             CreateDWordField (Arg0, 0x08, IID2)
6405             CreateDWordField (Arg0, 0x0C, IID3)
6406             Name (UID1, ToUUID ("4077a616-290c-47be-9ebd-d87058713953"))
6407             CreateDWordField (UID1, Zero, EID0)
6408             CreateDWordField (UID1, 0x04, EID1)
6409             CreateDWordField (UID1, 0x08, EID2)
6410             CreateDWordField (UID1, 0x0C, EID3)
6411             If (!(((IID0 == EID0) && (IID1 == EID1)) && ((
6412                 IID2 == EID2) && (IID3 == EID3))))
6413             {
6414                 STS1 [Zero] = 0x06
6415                 Return (Arg3)
6416             }
6417 
6418             If (Arg1 != One)
6419             {
6420                 STS1 [Zero] = 0x0A
6421                 Return (Arg3)
6422             }
6423 
6424             PDC1 = ((PDC1 & 0x7FFFFFFF) | CAP1) /* \_PR_.CPU1._OSC.CAP1 */
6425             If (CFGD & One)
6426             {
6427                 If (((CFGD & 0x01000000) && ((PDC1 & 0x09) == 
6428                     0x09)) && !(SDTL & 0x10))
6429                 {
6430                     SDTL |= 0x10
6431                     OperationRegion (IST1, SystemMemory, DerefOf (SSDT [0x04]), DerefOf (SSDT [0x05]))
6432                     Load (IST1, HI1) /* \_PR_.CPU1.HI1_ */
6433                 }
6434             }
6435 
6436             If (CFGD & 0xF0)
6437             {
6438                 If (((CFGD & 0x01000000) && (PDC1 & 0x18)) && !
6439                     (SDTL & 0x20))
6440                 {
6441                     SDTL |= 0x20
6442                     OperationRegion (CST1, SystemMemory, DerefOf (SSDT [0x0A]), DerefOf (SSDT [0x0B]))
6443                     Load (CST1, HC1) /* \_PR_.CPU1.HC1_ */
6444                 }
6445             }
6446 
6447             Return (Arg3)
6448         }
6449     }
6450 }

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] (2017-01-06T17:31:28+0000, 224.4 KB) [[attachment:acer-aspireone-zg5-acpidump.txt]]
  • [get | view] (2017-01-06T17:30:40+0000, 7.2 KB) [[attachment:acer-aspireone-zg5-devinfo.txt]]
  • [get | view] (2017-01-06T17:27:37+0000, 9.2 KB) [[attachment:acer-aspireone-zg5-dmesg.txt]]
  • [get | view] (2017-01-06T17:29:51+0000, 4.3 KB) [[attachment:acer-aspireone-zg5-pciconf.txt]]
  • [get | view] (2017-01-06T17:32:18+0000, 0.5 KB) [[attachment:acer-aspireone-zg5-usbconfig.txt]]
 All files | Selected Files: delete move to page copy to page

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