Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jun 2009 03:09:15 -0500
From:      "Sam Fourman Jr." <sfourman@gmail.com>
To:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   FreeBSD 8.0 Asus P5N64 WS Professional ACPI error
Message-ID:  <11167f520906140109s52df389ode319bfded32613c@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
hello,

I am putting this information out there for archival pourposes, but I
was wondering if someone would know how to fix this error in the dmesg
I am not sure if this is somthing to worry about or not.

atrtc1: <AT realtime clock> port 0x70-0x71 on acpi0
cpu0: <ACPI CPU> on acpi0
ACPI Warning (tbutils-0243): Incorrect checksum in table [OEMB] -  D6,
should be CE [20070320]


here is a link to the motherboard
http://www.asus.com/product.aspx?P_ID=o5ztautLyFiNMFcJ&templete=2

# dmesg
Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #2: Mon Apr 13 18:21:46 CDT 2009
    sfourman@:/usr/obj/usr/src/sys/Ziggy3
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 Quad CPU    Q8400  @ 2.66GHz (2666.65-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x1067a  Stepping = 10
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x408e3bd<SSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,XSAVE>
  AMD Features=0x20100000<NX,LM>
  AMD Features2=0x1<LAHF>
  TSC: P-state invariant
  Cores per package: 4
real memory  = 4294967296 (4096 MB)
avail memory = 3139842048 (2994 MB)
ACPI APIC Table: <101308 APIC1117>
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
ioapic0 <Version 1.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <101308 XSDT1117> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
acpi0: reservation of fec00000, 1000 (3) failed
acpi0: reservation of fee00000, 1000 (3) failed
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, bff00000 (3) failed
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x2008-0x200b on acpi0
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 25000000 Hz quality 900
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: <memory, RAM> at device 0.1 (no driver attached)
pci0: <memory, RAM> at device 0.2 (no driver attached)
pci0: <memory, RAM> at device 0.3 (no driver attached)
pci0: <memory, RAM> at device 0.4 (no driver attached)
pci0: <memory, RAM> at device 0.5 (no driver attached)
pci0: <memory, RAM> at device 0.6 (no driver attached)
pci0: <memory, RAM> at device 0.7 (no driver attached)
pci0: <memory, RAM> at device 1.0 (no driver attached)
pci0: <memory, RAM> at device 1.1 (no driver attached)
pci0: <memory, RAM> at device 1.2 (no driver attached)
pci0: <memory, RAM> at device 1.3 (no driver attached)
pci0: <memory, RAM> at device 1.4 (no driver attached)
pci0: <memory, RAM> at device 1.5 (no driver attached)
pci0: <memory, RAM> at device 1.6 (no driver attached)
pci0: <memory, RAM> at device 1.7 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 2.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xdc00-0xdc7f mem
0xfa000000-0xfaffffff,0xd0000000-0xdfffffff,0xf8000000-0xf9ffffff irq
16 at device 0.0 on pci1
nvidia0: <GeForce GTX 275> on vgapci0
vgapci0: child nvidia0 requested pci_enable_busmaster
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
nvidia0: [GIANT-LOCKED]
nvidia0: [ITHREAD]
pcib2: <ACPI PCI-PCI bridge> irq 17 at device 4.0 on pci0
pci2: <ACPI PCI bus> on pcib2
pci0: <memory, RAM> at device 9.0 (no driver attached)
isab0: <PCI-ISA bridge> port 0x2f00-0x2f7f at device 10.0 on pci0
isa0: <ISA bus> on isab0
pci0: <serial bus, SMBus> at device 10.1 (no driver attached)
ohci0: <OHCI (generic) USB controller> mem 0xf7ffb000-0xf7ffbfff irq
22 at device 11.0 on pci0
ohci0: [ITHREAD]
usbus0: <OHCI (generic) USB controller> on ohci0
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xf7ffac00-0xf7ffacff
irq 23 at device 11.1 on pci0
ehci0: [ITHREAD]
usbus1: EHCI version 1.0
usbus1: <EHCI (generic) USB 2.0 controller> on ehci0
atapci0: <nVidia nForce MCP55 UDMA133 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 13.0 on
pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
atapci1: <nVidia nForce MCP55 SATA300 controller> port
0xc400-0xc407,0xc080-0xc083,0xc000-0xc007,0xbc00-0xbc03,0xb880-0xb88f
mem 0xf7ff9000-0xf7ff9fff irq 21 at device 14.0 on pci0
atapci1: [ITHREAD]
ata2: <ATA channel 0> on atapci1
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci1
ata3: [ITHREAD]
atapci2: <nVidia nForce MCP55 SATA300 controller> port
0xb800-0xb807,0xb480-0xb483,0xb400-0xb407,0xb080-0xb083,0xb000-0xb00f
mem 0xf7ff8000-0xf7ff8fff irq 22 at device 14.1 on pci0
atapci2: [ITHREAD]
ata4: <ATA channel 0> on atapci2
ata4: [ITHREAD]
ata5: <ATA channel 1> on atapci2
ata5: [ITHREAD]
atapci3: <nVidia nForce MCP55 SATA300 controller> port
0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa40f
mem 0xf7ff7000-0xf7ff7fff irq 23 at device 14.2 on pci0
atapci3: [ITHREAD]
ata6: <ATA channel 0> on atapci3
ata6: [ITHREAD]
ata7: <ATA channel 1> on atapci3
ata7: [ITHREAD]
pcib3: <ACPI PCI-PCI bridge> at device 15.0 on pci0
pci3: <ACPI PCI bus> on pcib3
fwohci0: <VIA Fire II (VT6306)> port 0xec00-0xec7f mem
0xfbfff800-0xfbffffff irq 18 at device 7.0 on pci3
fwohci0: [ITHREAD]
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:1e:8c:00:01:af:44:a4
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
dcons_crom0: <dcons configuration ROM> on firewire0
dcons_crom0: bus_addr 0xbcba8000
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:1e:8c:af:44:a4
fwe0: Ethernet address: 02:1e:8c:af:44:a4
fwip0: <IP over FireWire> on firewire0
fwip0: Firewire address: 00:1e:8c:00:01:af:44:a4 @ 0xfffe00000000,
S400, maxrec 2048
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: fwohci_intr_core: BUS reset
fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode
hdac0: <NVidia MCP55 High Definition Audio Controller> mem
0xf7ff0000-0xf7ff3fff irq 21 at device 15.1 on pci0
hdac0: HDA Driver Revision: 20090401_0132
hdac0: [ITHREAD]
nfe0: <NVIDIA nForce MCP55 Networking Adapter> port 0xa080-0xa087 mem
0xf7ff6000-0xf7ff6fff,0xf7ffa800-0xf7ffa8ff,0xf7ffa400-0xf7ffa40f irq
20 at device 17.0 on pci0
miibus0: <MII bus> on nfe0
e1000phy0: <Marvell 88E1116 Gigabit PHY> PHY 1 on miibus0
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
nfe0: Ethernet address: 00:23:54:96:dd:8d
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe0: [FILTER]
nfe1: <NVIDIA nForce MCP55 Networking Adapter> port 0xa000-0xa007 mem
0xf7ff5000-0xf7ff5fff,0xf7ffa000-0xf7ffa0ff,0xf7ff4c00-0xf7ff4c0f irq
20 at device 18.0 on pci0
miibus1: <MII bus> on nfe1
e1000phy1: <Marvell 88E1116 Gigabit PHY> PHY 2 on miibus1
e1000phy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
nfe1: Ethernet address: 00:23:54:96:de:2f
nfe1: [FILTER]
nfe1: [FILTER]
nfe1: [FILTER]
nfe1: [FILTER]
nfe1: [FILTER]
nfe1: [FILTER]
nfe1: [FILTER]
nfe1: [FILTER]
pcib4: <ACPI PCI-PCI bridge> at device 19.0 on pci0
pci4: <ACPI PCI bus> on pcib4
pcib5: <ACPI PCI-PCI bridge> at device 22.0 on pci0
pci5: <ACPI PCI bus> on pcib5
pcib6: <ACPI PCI-PCI bridge> at device 23.0 on pci0
pci6: <ACPI PCI bus> on pcib6
pcib7: <ACPI PCI-PCI bridge> at device 24.0 on pci0
pci7: <ACPI PCI bus> on pcib7
acpi_button0: <Power Button> on acpi0
fdc0: <floppy drive controller (FDE)> port 0x3f0-0x3f5,0x3f7 irq 6 drq
2 on acpi0
fdc0: [FILTER]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atrtc1: <AT realtime clock> port 0x70-0x71 on acpi0
cpu0: <ACPI CPU> on acpi0
ACPI Warning (tbutils-0243): Incorrect checksum in table [OEMB] -  D6,
should be CE [20070320]
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
cpu1: <ACPI CPU> on acpi0
coretemp1: <CPU On-Die Thermal Sensors> on cpu1
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
cpu2: <ACPI CPU> on acpi0
coretemp2: <CPU On-Die Thermal Sensors> on cpu2
est2: <Enhanced SpeedStep Frequency Control> on cpu2
p4tcc2: <CPU Frequency Thermal Control> on cpu2
cpu3: <ACPI CPU> on acpi0
coretemp3: <CPU On-Die Thermal Sensors> on cpu3
est3: <Enhanced SpeedStep Frequency Control> on cpu3
p4tcc3: <CPU Frequency Thermal Control> on cpu3
pmtimer0 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
atrtc0: <AT Real Time Clock> at port 0x70 irq 8 on isa0
atrtc0: Warning: Couldn't map I/O.
atrtc0: Warning: Couldn't map Interrupt.
ppc0: parallel port not found.
Timecounters tick every 1.000 msec
firewire0: 1 nodes, maxhop <= 0 Not IRM capable irm(-1)
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 480Mbps High Speed USB v2.0
ad4: 152627MB <Seagate ST3160815AS 3.AAC> at ata2-master SATA300
ugen0.1: <nVidia> at usbus0
uhub0: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <nVidia> at usbus1
uhub1: <nVidia EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ad6: 152627MB <Seagate ST3160815AS 3.AAC> at ata3-master SATA300
ad10: 238475MB <Seagate ST3250820AS 3.AAD> at ata5-master SATA300
acd0: DVDR <SONY DVD RW AW-G170S/1.72> at ata6-master SATA150
acd1: DVDR <SONY DVD RW AW-G170S/1.72> at ata7-master SATA150
hdac0: HDA Codec #0: Analog Devices AD1988B
pcm0: <HDA Analog Devices AD1988B PCM #0 Analog> at cad 0 nid 1 on hdac0
pcm1: <HDA Analog Devices AD1988B PCM #1 Analog> at cad 0 nid 1 on hdac0
pcm2: <HDA Analog Devices AD1988B PCM #2 Digital> at cad 0 nid 1 on hdac0
uhub0: 10 ports with 10 removable, self powered
GEOM: ad6: partition 1 does not end on a track boundary.
GEOM: ad4s1: geometry does not match label (255h,63s != 16h,63s).
GEOM_LABEL: Label for provider ad4s2 is ufsid/49e566dc1068ba46.
GEOM_LABEL: Label for provider ad4s1a is ufsid/488e4b3067839641.
GEOM_LABEL: Label for provider ad4s1d is ufsid/488e4b32de16fc7b.
GEOM_LABEL: Label for provider ad4s1e is ufsid/488e4b305fbaa0dc.
GEOM_LABEL: Label for provider ad4s1f is ufsid/488e4b30ef1fe83e.
GEOM_LABEL: Label for provider ad10s1a is ufsid/4a34732705581f46.
(probe8:ata4:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
(probe8:ata4:0:0:0): CAM Status: SCSI Status Error
(probe8:ata4:0:0:0): SCSI Status: Check Condition
(probe8:ata4:0:0:0): NOT READY asc:3a,0
(probe8:ata4:0:0:0): Medium not present
(probe8:ata4:0:0:0): Unretryable error
uhub1: 10 ports with 10 removable, self powered
(probe7:ata3:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
(probe7:ata3:0:0:0): CAM Status: SCSI Status Error
(probe7:ata3:0:0:0): SCSI Status: Check Condition
(probe7:ata3:0:0:0): NOT READY asc:3a,0
(probe7:ata3:0:0:0): Medium not present
(probe7:ata3:0:0:0): Unretryable error
cd0 at ata3 bus 0 target 0 lun 0
cd0: <SONY DVD RW AW-G170S 1.72> Removable CD-ROM SCSI-0 device
cd0: 3.300MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present
cd1 at ata4 bus 0 target 0 lun 0
cd1: <SONY DVD RW AW-G170S 1.72> Removable CD-ROM SCSI-0 device
cd1: 3.300MB/s transfers
cd1: Attempt to query device size failed: NOT READY, Medium not present
SMP: AP CPU #1 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #2 Launched!
Root mount waiting for: usbus1
Root mount waiting for: usbus1
ugen0.2: <Logitech> at usbus0
uhub2: <Logitech product 0xc223, class 9/0, rev 1.10/1.03, addr 2> on usbus0
ugen1.2: <Ralink> at usbus1
Trying to mount root from ufs:/dev/ad4s1a
uhub2: 4 ports with 2 removable, bus powered
GEOM_LABEL: Label ufsid/488e4b3067839641 removed.
GEOM_LABEL: Label for provider ad4s1a is ufsid/488e4b3067839641.
GEOM_LABEL: Label ufsid/488e4b305fbaa0dc removed.
GEOM_LABEL: Label for provider ad4s1e is ufsid/488e4b305fbaa0dc.
GEOM_LABEL: Label ufsid/488e4b30ef1fe83e removed.
GEOM_LABEL: Label for provider ad4s1f is ufsid/488e4b30ef1fe83e.
GEOM_LABEL: Label ufsid/488e4b32de16fc7b removed.
GEOM_LABEL: Label for provider ad4s1d is ufsid/488e4b32de16fc7b.
GEOM_LABEL: Label ufsid/49e566dc1068ba46 removed.
GEOM_LABEL: Label for provider ad4s2 is ufsid/49e566dc1068ba46.
GEOM_LABEL: Label ufsid/488e4b3067839641 removed.
ugen0.3: <Logitech> at usbus0
ukbd0: <Logitech Logitech Gaming Keyboard, class 0/0, rev 2.00/1.70,
addr 3> on usbus0
kbd2 at ukbd0
uhid0: <Logitech Logitech Gaming Keyboard, class 0/0, rev 2.00/1.70,
addr 3> on usbus0
GEOM_LABEL: Label ufsid/488e4b305fbaa0dc removed.
GEOM_LABEL: Label ufsid/488e4b30ef1fe83e removed.
GEOM_LABEL: Label ufsid/488e4b32de16fc7b removed.
warning: KLD '/boot/kernel.working/linprocfs.ko' is newer than the
linker.hints file
GEOM_LABEL: Label ufsid/49e566dc1068ba46 removed.
ugen0.4: <Logitech> at usbus0
ums0: <Logitech USB-PS/2 Optical Mouse, class 0/0, rev 2.00/21.00,
addr 4> on usbus0
ums0: 8 buttons and [XYZ] coordinates ID=0
ugen0.5: <Logitech> at usbus0
uhid1: <Logitech product 0xc222, class 0/0, rev 2.00/1.03, addr 5> on usbus0
hid_get_item:286: Number of items truncated to 255
hid_get_item:286: Number of items truncated to 255
hid_get_item:286: Number of items truncated to 255
fuse4bsd: version 0.3.9-pre1, FUSE ABI 7.8
nfe0: link state changed to UP
#


Here is a acpidump

# acpidump -t -d < acpi.txt
/*
  RSD PTR: OEM=ACPIAM, ACPI_Rev=2.0x (2)
	XSDT=0xbff40100, length=36, cksum=40
 */
/*
  XSDT: Length=76, Revision=1, Checksum=63,
	OEMID=101308, OEM Table ID=XSDT1117, OEM Revision=0x20081013,
	Creator ID=MSFT, Creator Revision=0x97
	Entries={ 0xbff40290, 0xbff40390, 0xbff40410, 0xbff4e040, 0xbff49370 }
 */
/*
  FACP: Length=244, Revision=3, Checksum=195,
	OEMID=101308, OEM Table ID=FACP1117, OEM Revision=0x20081013,
	Creator ID=MSFT, Creator Revision=0x97
 	FACS=0xbff4e000, DSDT=0xbff40450
	INT_MODEL=APIC
	Preferred_PM_Profile=Desktop (1)
	SCI_INT=9
	SMI_CMD=0x242e, ACPI_ENABLE=0xe1, ACPI_DISABLE=0x1e, S4BIOS_REQ=0x0
	PSTATE_CNT=0xe2
	PM1a_EVT_BLK=0x2000-0x2003
	PM1a_CNT_BLK=0x2004-0x2005
	PM_TMR_BLK=0x2008-0x200b
	GPE0_BLK=0x2020-0x2027
	GPE1_BLK=0x24a0-0x24af, GPE1_BASE=32
	CST_CNT=0xe3
	P_LVL2_LAT=101 us, P_LVL3_LAT=1001 us
	FLUSH_SIZE=1024, FLUSH_STRIDE=16
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=125, MON_ALRM=126, CENTURY=50
	IAPC_BOOT_ARCH={LEGACY_DEV,8042}
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
	X_FACS=0xbff4e000, X_DSDT=0xbff40450
	X_PM1a_EVT_BLK=0x2000:0[32] (IO)
	X_PM1a_CNT_BLK=0x2004:0[16] (IO)
	X_PM_TMR_BLK=0x2008:0[32] (IO)
	X_GPE0_BLK=0x2020:0[64] (IO)
	X_GPE1_BLK=0x24a0:0[128] (IO)
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=1
 */
/*
  DSDT: Length=36639, Revision=1, Checksum=208,
	OEMID=A0939, OEM Table ID=A0939058, OEM Revision=0x58,
	Creator ID=INTL, Creator Revision=0x20060113
 */
/*
  APIC: Length=128, Revision=1, Checksum=187,
	OEMID=101308, OEM Table ID=APIC1117, OEM Revision=0x20081013,
	Creator ID=MSFT, Creator Revision=0x97
	Local APIC ADDR=0xfee00000
	Flags={PC-AT}

	Type=Local APIC
	ACPI CPU=1
	Flags={ENABLED}
	APIC ID=0

	Type=Local APIC
	ACPI CPU=2
	Flags={ENABLED}
	APIC ID=1

	Type=Local APIC
	ACPI CPU=3
	Flags={ENABLED}
	APIC ID=2

	Type=Local APIC
	ACPI CPU=4
	Flags={ENABLED}
	APIC ID=3

	Type=IO APIC
	APIC ID=4
	INT BASE=0
	ADDR=0x00000000fec00000

	Type=INT Override
	BUS=0
	IRQ=0
	INTR=2
	Flags={Polarity=conforming, Trigger=conforming}

	Type=INT Override
	BUS=0
	IRQ=9
	INTR=9
	Flags={Polarity=active-hi, Trigger=level}

	Type=INT Override
	BUS=0
	IRQ=14
	INTR=14
	Flags={Polarity=active-hi, Trigger=edge}

	Type=INT Override
	BUS=0
	IRQ=15
	INTR=15
	Flags={Polarity=active-hi, Trigger=edge}
 */
/*
  MCFG: Length=60, Revision=1, Checksum=96,
	OEMID=101308, OEM Table ID=OEMMCFG, OEM Revision=0x20081013,
	Creator ID=MSFT, Creator Revision=0x97

	Base Address= 0x00000000e0000000
	Segment Group= 0x0000
	Start Bus= 0
	End Bus= 255
 */
/*
  HPET: Length=56, Revision=1, Checksum=159,
	OEMID=101308, OEM Table ID=OEMHPET0, OEM Revision=0x20081013,
	Creator ID=MSFT, Creator Revision=0x97
	HPET Number=0
	ADDR=0xfed00000:0[8] (Memory)	HW Rev=0x1
	Comparitors=2
	Counter Size=0
	Legacy IRQ routing capable={TRUE}
	PCI Vendor ID=0x10de
	Minimal Tick=14318
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20070320
 *
 * Disassembly of /tmp/acpidump.ghdSXi, Sun Jun 14 02:28:43 2009
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x00008F1F (36639)
 *     Revision         0x01
 *     OEM ID           "A0939"
 *     OEM Table ID     "A0939058"
 *     OEM Revision     0x00000058 (88)
 *     Creator ID       "INTL"
 *     Creator Revision 0x20060113 (537264403)
 */
DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "A0939", "A0939058",
0x00000058)
{
    Scope (_PR)
    {
        Processor (CPU1, 0x01, 0x00002010, 0x06)
        {
            OperationRegion (STBL, SystemMemory, 0xBFF4E0C0, 0x01D2)
            Name (NCPU, 0x04)
            Name (TYPE, 0x80000000)
            Name (HNDL, 0x80000000)
            Name (CFGD, 0x01000007)
            Name (TBLD, 0x80)
            Method (_PDC, 1, NotSerialized)
            {
                CreateDWordField (Arg0, Zero, REVS)
                CreateDWordField (Arg0, 0x04, SIZE)
                Store (SizeOf (Arg0), Local0)
                Store (Subtract (Local0, 0x08), Local1)
                CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
                Name (STS0, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Concatenate (STS0, TEMP, Local2)
                _OSC (Buffer (0x10)
                    {
                        /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C,
0x29, 0xBE, 0x47,
                        /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58,
0x71, 0x39, 0x53
                    }, REVS, SIZE, Local2)
            }

            Method (_OSC, 4, NotSerialized)
            {
                CreateDWordField (Arg3, Zero, STS0)
                CreateDWordField (Arg3, 0x04, CAP0)
                CreateDWordField (Arg0, Zero, IID0)
                CreateDWordField (Arg0, 0x04, IID1)
                CreateDWordField (Arg0, 0x08, IID2)
                CreateDWordField (Arg0, 0x0C, IID3)
                Name (UID0, Buffer (0x10)
                {
                    /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29,
0xBE, 0x47,
                    /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                })
                CreateDWordField (UID0, Zero, EID0)
                CreateDWordField (UID0, 0x04, EID1)
                CreateDWordField (UID0, 0x08, EID2)
                CreateDWordField (UID0, 0x0C, EID3)
                If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual
(IID1, EID1)),
                    LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
                {
                    Store (0x06, STS0)
                    Return (Arg3)
                }

                If (LNotEqual (Arg1, One))
                {
                    Store (0x0A, STS0)
                    Return (Arg3)
                }

                Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE)
                If (And (CFGD, One))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE,
                        0x09), 0x09)), LNot (And (TBLD, One))))
                    {
                        Or (TBLD, One, TBLD)
                        Load (STBL, HNDL)
                    }
                }

                If (And (CFGD, 0xF0))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                        )), LNot (And (TBLD, 0x02))))
                    {
                        Or (TBLD, 0x02, TBLD)
                    }
                }

                Return (Arg3)
            }
        }
    }

    Scope (_PR)
    {
        Processor (CPU2, 0x02, 0x00000810, 0x06)
        {
            OperationRegion (STBL, SystemMemory, 0xBFF4E2A0, 0x0143)
            Name (NCPU, 0x04)
            Name (TYPE, 0x80000000)
            Name (HNDL, 0x80000000)
            Name (CFGD, 0x01000007)
            Name (TBLD, 0x80)
            Method (_PDC, 1, NotSerialized)
            {
                CreateDWordField (Arg0, Zero, REVS)
                CreateDWordField (Arg0, 0x04, SIZE)
                Store (SizeOf (Arg0), Local0)
                Store (Subtract (Local0, 0x08), Local1)
                CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
                Name (STS1, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Concatenate (STS1, TEMP, Local2)
                _OSC (Buffer (0x10)
                    {
                        /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C,
0x29, 0xBE, 0x47,
                        /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58,
0x71, 0x39, 0x53
                    }, REVS, SIZE, Local2)
            }

            Method (_OSC, 4, NotSerialized)
            {
                CreateDWordField (Arg3, Zero, STS1)
                CreateDWordField (Arg3, 0x04, CAP1)
                CreateDWordField (Arg0, Zero, IID0)
                CreateDWordField (Arg0, 0x04, IID1)
                CreateDWordField (Arg0, 0x08, IID2)
                CreateDWordField (Arg0, 0x0C, IID3)
                Name (UID0, Buffer (0x10)
                {
                    /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29,
0xBE, 0x47,
                    /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                })
                CreateDWordField (UID0, Zero, EID0)
                CreateDWordField (UID0, 0x04, EID1)
                CreateDWordField (UID0, 0x08, EID2)
                CreateDWordField (UID0, 0x0C, EID3)
                If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual
(IID1, EID1)),
                    LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
                {
                    Store (0x06, STS1)
                    Return (Arg3)
                }

                If (LNotEqual (Arg1, One))
                {
                    Store (0x0A, STS1)
                    Return (Arg3)
                }

                Or (And (TYPE, 0x7FFFFFFF), CAP1, TYPE)
                If (And (CFGD, One))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE,
                        0x09), 0x09)), LNot (And (TBLD, One))))
                    {
                        Or (TBLD, One, TBLD)
                        Load (STBL, HNDL)
                    }
                }

                If (And (CFGD, 0xF0))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                        )), LNot (And (TBLD, 0x02))))
                    {
                        Or (TBLD, 0x02, TBLD)
                    }
                }

                Return (Arg3)
            }
        }
    }

    Scope (_PR)
    {
        Processor (CPU3, 0x03, 0x00000810, 0x06)
        {
            OperationRegion (STBL, SystemMemory, 0xBFF4E3F0, 0x0143)
            Name (NCPU, 0x04)
            Name (TYPE, 0x80000000)
            Name (HNDL, 0x80000000)
            Name (CFGD, 0x01000007)
            Name (TBLD, 0x80)
            Method (_PDC, 1, NotSerialized)
            {
                CreateDWordField (Arg0, Zero, REVS)
                CreateDWordField (Arg0, 0x04, SIZE)
                Store (SizeOf (Arg0), Local0)
                Store (Subtract (Local0, 0x08), Local1)
                CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
                Name (STS2, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Concatenate (STS2, TEMP, Local2)
                _OSC (Buffer (0x10)
                    {
                        /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C,
0x29, 0xBE, 0x47,
                        /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58,
0x71, 0x39, 0x53
                    }, REVS, SIZE, Local2)
            }

            Method (_OSC, 4, NotSerialized)
            {
                CreateDWordField (Arg3, Zero, STS2)
                CreateDWordField (Arg3, 0x04, CAP2)
                CreateDWordField (Arg0, Zero, IID0)
                CreateDWordField (Arg0, 0x04, IID1)
                CreateDWordField (Arg0, 0x08, IID2)
                CreateDWordField (Arg0, 0x0C, IID3)
                Name (UID0, Buffer (0x10)
                {
                    /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29,
0xBE, 0x47,
                    /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                })
                CreateDWordField (UID0, Zero, EID0)
                CreateDWordField (UID0, 0x04, EID1)
                CreateDWordField (UID0, 0x08, EID2)
                CreateDWordField (UID0, 0x0C, EID3)
                If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual
(IID1, EID1)),
                    LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
                {
                    Store (0x06, STS2)
                    Return (Arg3)
                }

                If (LNotEqual (Arg1, One))
                {
                    Store (0x0A, STS2)
                    Return (Arg3)
                }

                Or (And (TYPE, 0x7FFFFFFF), CAP2, TYPE)
                If (And (CFGD, One))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE,
                        0x09), 0x09)), LNot (And (TBLD, One))))
                    {
                        Or (TBLD, One, TBLD)
                        Load (STBL, HNDL)
                    }
                }

                If (And (CFGD, 0xF0))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                        )), LNot (And (TBLD, 0x02))))
                    {
                        Or (TBLD, 0x02, TBLD)
                    }
                }

                Return (Arg3)
            }
        }
    }

    Scope (_PR)
    {
        Processor (CPU4, 0x04, 0x00000810, 0x06)
        {
            OperationRegion (STBL, SystemMemory, 0xBFF4E540, 0x0143)
            Name (NCPU, 0x04)
            Name (TYPE, 0x80000000)
            Name (HNDL, 0x80000000)
            Name (CFGD, 0x01000007)
            Name (TBLD, 0x80)
            Method (_PDC, 1, NotSerialized)
            {
                CreateDWordField (Arg0, Zero, REVS)
                CreateDWordField (Arg0, 0x04, SIZE)
                Store (SizeOf (Arg0), Local0)
                Store (Subtract (Local0, 0x08), Local1)
                CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
                Name (STS3, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Concatenate (STS3, TEMP, Local2)
                _OSC (Buffer (0x10)
                    {
                        /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C,
0x29, 0xBE, 0x47,
                        /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58,
0x71, 0x39, 0x53
                    }, REVS, SIZE, Local2)
            }

            Method (_OSC, 4, NotSerialized)
            {
                CreateDWordField (Arg3, Zero, STS3)
                CreateDWordField (Arg3, 0x04, CAP3)
                CreateDWordField (Arg0, Zero, IID0)
                CreateDWordField (Arg0, 0x04, IID1)
                CreateDWordField (Arg0, 0x08, IID2)
                CreateDWordField (Arg0, 0x0C, IID3)
                Name (UID0, Buffer (0x10)
                {
                    /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29,
0xBE, 0x47,
                    /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
                })
                CreateDWordField (UID0, Zero, EID0)
                CreateDWordField (UID0, 0x04, EID1)
                CreateDWordField (UID0, 0x08, EID2)
                CreateDWordField (UID0, 0x0C, EID3)
                If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual
(IID1, EID1)),
                    LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
                {
                    Store (0x06, STS3)
                    Return (Arg3)
                }

                If (LNotEqual (Arg1, One))
                {
                    Store (0x0A, STS3)
                    Return (Arg3)
                }

                Or (And (TYPE, 0x7FFFFFFF), CAP3, TYPE)
                If (And (CFGD, One))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE,
                        0x09), 0x09)), LNot (And (TBLD, One))))
                    {
                        Or (TBLD, One, TBLD)
                        Load (STBL, HNDL)
                    }
                }

                If (And (CFGD, 0xF0))
                {
                    If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18
                        )), LNot (And (TBLD, 0x02))))
                    {
                        Or (TBLD, 0x02, TBLD)
                    }
                }

                Return (Arg3)
            }
        }
    }

    Name (FZTF, Buffer (0x07)
    {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5
    })
    Name (DP80, 0x80)
    Name (DP90, 0x90)
    Name (SPIO, 0x2E)
    Name (IOPB, 0x0C00)
    Name (IOPL, 0x10)
    Name (IOEB, 0x0D00)
    Name (IOEL, 0x10)
    Name (IOGB, 0x0A20)
    Name (IOGL, 0x10)
    Name (IODB, 0x0A30)
    Name (IODL, 0x10)
    Name (IO1B, 0x0A20)
    Name (IO1L, 0x08)
    Name (IO3B, 0x0D00)
    Name (IO3L, 0x80)
    Name (SSMI, 0x242E)
    Name (SSEP, 0x99)
    Name (SSEN, One)
    Name (SHPB, 0xFED00000)
    Name (SHPL, 0x1000)
    Name (PMBS, 0x2000)
    Name (PMLN, 0x0100)
    Name (SCBS, 0x2400)
    Name (SCLN, 0x0100)
    Name (ACBS, 0x2800)
    Name (ACLN, 0x0100)
    Name (MTAB, 0x2F00)
    Name (MTAL, 0x0100)
    Name (IGPB, 0x2C00)
    Name (IGLN, 0x0100)
    Name (ACA4, 0x20A4)
    Name (SCIO, 0x2400)
    Name (SCTL, 0x2090)
    Name (EXTS, Zero)
    Name (MUAE, Zero)
    Name (APIC, One)
    Name (T1OF, Zero)
    Name (T2OF, Zero)
    Name (T3OF, Zero)
    Name (CQST, 0x3C)
    Name (PCIB, 0xE0000000)
    Name (PCIL, 0x10000000)
    Name (SMIT, 0x242E)
    Name (CMRQ, 0xE0)
    Name (CMER, 0xE1)
    Name (CMOR, 0xE3)
    Name (NSLB, 0xD0000000)
    Name (SMBS, 0x2D00)
    OperationRegion (BIOS, SystemMemory, 0xBFF4E064, 0xFF)
    Field (BIOS, ByteAcc, NoLock, Preserve)
    {
        SS1,    1,
        SS2,    1,
        SS3,    1,
        SS4,    1,
                Offset (0x01),
        IOST,   16,
        TOPM,   32,
        ROMS,   32,
        MG1B,   32,
        MG1L,   32,
        MG2B,   32,
        MG2L,   32,
                Offset (0x1C),
        DMAX,   8,
        HPTA,   32,
        CPB0,   32,
        CPB1,   32,
        CPB2,   32,
        CPB3,   32,
        ASSB,   8,
        AOTB,   8,
        AAXB,   32,
        SMIF,   8,
        DTSE,   8,
        DTS1,   8,
        DTS2,   8,
        MPEN,   8,
        TPMF,   8,
        MG3B,   32,
        MG3L,   32,
        MH1B,   32,
        MH1L,   32
    }

    Method (RRIO, 4, NotSerialized)
    {
        Store ("RRIO", Debug)
    }

    Method (RDMA, 3, NotSerialized)
    {
        Store ("rDMA", Debug)
    }

    Name (PICM, Zero)
    Method (_PIC, 1, NotSerialized)
    {
        If (Arg0)
        {
            Store (0xAA, DBG8)
        }
        Else
        {
            Store (0xAC, DBG8)
        }

        Store (Arg0, PICM)
    }

    Name (OSVR, Ones)
    Method (OSFL, 0, NotSerialized)
    {
        If (LNotEqual (OSVR, Ones))
        {
            Return (OSVR)
        }

        If (LEqual (PICM, Zero))
        {
            Store (0xAC, DBG8)
        }

        Store (One, OSVR)
        If (CondRefOf (_OSI, Local1))
        {
            If (_OSI ("Windows 2000"))
            {
                Store (0x04, OSVR)
            }

            If (_OSI ("Windows 2001"))
            {
                Store (Zero, OSVR)
            }

            If (_OSI ("Windows 2001 SP1"))
            {
                Store (Zero, OSVR)
            }

            If (_OSI ("Windows 2001 SP2"))
            {
                Store (Zero, OSVR)
            }

            If (_OSI ("Windows 2001.1"))
            {
                Store (Zero, OSVR)
            }

            If (_OSI ("Windows 2001.1 SP1"))
            {
                Store (Zero, OSVR)
            }

            If (_OSI ("Windows 2006"))
            {
                Store (Zero, OSVR)
            }
        }
        Else
        {
            If (MCTH (_OS, "Microsoft Windows NT"))
            {
                Store (0x04, OSVR)
            }
            Else
            {
                If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
                {
                    Store (0x02, OSVR)
                }

                If (MCTH (_OS, "Linux"))
                {
                    Store (0x03, OSVR)
                }
            }
        }

        Return (OSVR)
    }

    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

        Add (SizeOf (Arg0), One, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
            If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
                BUF1, Local0))))
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    Name (PRWP, Package (0x02)
    {
        Zero,
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        Store (Arg0, Index (PRWP, Zero))
        Store (ShiftLeft (SS1, One), Local0)
        Or (Local0, ShiftLeft (SS2, 0x02), Local0)
        Or (Local0, ShiftLeft (SS3, 0x03), Local0)
        Or (Local0, ShiftLeft (SS4, 0x04), Local0)
        If (And (ShiftLeft (One, Arg1), Local0))
        {
            Store (Arg1, Index (PRWP, One))
        }
        Else
        {
            ShiftRight (Local0, One, Local0)
            If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
            {
                FindSetLeftBit (Local0, Index (PRWP, One))
            }
            Else
            {
                FindSetRightBit (Local0, Index (PRWP, One))
            }
        }

        Return (PRWP)
    }

    Name (WAKP, Package (0x02)
    {
        Zero,
        Zero
    })
    OperationRegion (DEB0, SystemIO, DP80, One)
    Field (DEB0, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }

    OperationRegion (DEB1, SystemIO, DP90, 0x02)
    Field (DEB1, WordAcc, NoLock, Preserve)
    {
        DBG9,   16
    }

    Scope (_SB)
    {
        Name (PR00, Package (0x36)
        {
            Package (0x04)
            {
                0x000AFFFF,
                Zero,
                LSMB,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                One,
                LPMU,
                Zero
            },

            Package (0x04)
            {
                0x000BFFFF,
                One,
                LUB2,
                Zero
            },

            Package (0x04)
            {
                0x0011FFFF,
                Zero,
                LMAC,
                Zero
            },

            Package (0x04)
            {
                0x0012FFFF,
                Zero,
                LMAD,
                Zero
            },

            Package (0x04)
            {
                0x000EFFFF,
                Zero,
                LSA0,
                Zero
            },

            Package (0x04)
            {
                0x000EFFFF,
                One,
                LSA1,
                Zero
            },

            Package (0x04)
            {
                0x000EFFFF,
                0x02,
                LSA2,
                Zero
            },

            Package (0x04)
            {
                0x000FFFFF,
                One,
                LAZA,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                0x03,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                0x03,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                0x03,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                0x03,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                0x03,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                0x03,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                0x03,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x000BFFFF,
                Zero,
                LUB0,
                Zero
            }
        })
        Name (AR00, Package (0x36)
        {
            Package (0x04)
            {
                0x000AFFFF,
                Zero,
                LSMB,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                One,
                LPMU,
                Zero
            },

            Package (0x04)
            {
                0x000BFFFF,
                One,
                LUB2,
                Zero
            },

            Package (0x04)
            {
                0x0011FFFF,
                Zero,
                LMAC,
                Zero
            },

            Package (0x04)
            {
                0x0012FFFF,
                Zero,
                LMAD,
                Zero
            },

            Package (0x04)
            {
                0x000EFFFF,
                Zero,
                LSA0,
                Zero
            },

            Package (0x04)
            {
                0x000EFFFF,
                One,
                LSA1,
                Zero
            },

            Package (0x04)
            {
                0x000EFFFF,
                0x02,
                LSA2,
                Zero
            },

            Package (0x04)
            {
                0x000FFFFF,
                One,
                LAZA,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0018FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0017FFFF,
                0x03,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0016FFFF,
                0x03,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0015FFFF,
                0x03,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0014FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0013FFFF,
                0x03,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0002FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0003FFFF,
                0x03,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0004FFFF,
                0x03,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0005FFFF,
                0x03,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0x0006FFFF,
                0x03,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0x000BFFFF,
                Zero,
                LUB0,
                Zero
            }
        })
        Name (PR10, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (AR10, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (PR11, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEA,
                Zero
            }
        })
        Name (AR11, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEA,
                Zero
            }
        })
        Name (PR12, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEB,
                Zero
            }
        })
        Name (AR12, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEB,
                Zero
            }
        })
        Name (PR13, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEC,
                Zero
            }
        })
        Name (AR13, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEC,
                Zero
            }
        })
        Name (PR14, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (AR14, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (PR15, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEA,
                Zero
            }
        })
        Name (AR15, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEA,
                Zero
            }
        })
        Name (PR08, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (AR08, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (PR0A, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEA,
                Zero
            }
        })
        Name (AR0A, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEA,
                Zero
            }
        })
        Name (PR0B, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEB,
                Zero
            }
        })
        Name (AR0B, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEB,
                Zero
            }
        })
        Name (PR0C, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEC,
                Zero
            }
        })
        Name (AR0C, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNED,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNEC,
                Zero
            }
        })
        Name (PR0D, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (AR0D, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF,
                Zero,
                LNEA,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                One,
                LNEB,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x02,
                LNEC,
                Zero
            },

            Package (0x04)
            {
                0xFFFF,
                0x03,
                LNED,
                Zero
            }
        })
        Name (PR01, Package (0x09)
        {
            Package (0x04)
            {
                0x000AFFFF,
                Zero,
                LNKA,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                One,
                LNKB,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                0x02,
                LNKC,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                0x03,
                LNKD,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                Zero,
                LNKB,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                One,
                LNKC,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                0x02,
                LNKD,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                0x03,
                LNKA,
                Zero
            },

            Package (0x04)
            {
                0x0007FFFF,
                Zero,
                LNKD,
                Zero
            }
        })
        Name (AR01, Package (0x09)
        {
            Package (0x04)
            {
                0x000AFFFF,
                Zero,
                LNKA,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                One,
                LNKB,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                0x02,
                LNKC,
                Zero
            },

            Package (0x04)
            {
                0x000AFFFF,
                0x03,
                LNKD,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                Zero,
                LNKB,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                One,
                LNKC,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                0x02,
                LNKD,
                Zero
            },

            Package (0x04)
            {
                0x0009FFFF,
                0x03,
                LNKA,
                Zero
            },

            Package (0x04)
            {
                0x0007FFFF,
                Zero,
                LNKD,
                Zero
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,7,10,11,14}
        })
        Alias (PRSA, PRSB)
        Alias (PRSA, PRSC)
        Alias (PRSA, PRSD)
        Alias (PRSA, RSEA)
        Alias (PRSA, RSEB)
        Alias (PRSA, RSEC)
        Alias (PRSA, RSED)
        Alias (PRSA, RSMB)
        Alias (PRSA, RSB2)
        Alias (PRSA, RSMU)
        Alias (PRSA, RSA1)
        Alias (PRSA, RSA0)
        Alias (PRSA, RSB0)
        Alias (PRSA, RSAD)
        Alias (PRSA, RSAC)
        Alias (PRSA, RSZA)
        Alias (PRSA, RSTA)
        Alias (PRSA, RSA2)
        Name (RSIR, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
            {
                0x00000010,
                0x00000011,
                0x00000012,
                0x00000013,
            }
        })
        Name (RS20, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
            {
                0x00000014,
            }
        })
        Name (RSII, ResourceTemplate ()
        {
            Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
            {
                0x00000015,
                0x00000016,
                0x00000017,
            }
        })
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            Method (^BN00, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (_BBN, 0, NotSerialized)
            {
                Return (BN00 ())
            }

            Name (_UID, Zero)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Method (NPTS, 1, NotSerialized)
            {
            }

            Method (NWAK, 1, NotSerialized)
            {
            }

            Device (MICP)
            {
                Name (_ADR, 0x02)
            }

            Device (SBRG)
            {
                Name (_ADR, 0x000A0000)
                Method (SPTS, 1, NotSerialized)
                {
                    Store (Arg0, ^^IDE0.PTS0)
                    Store (^^IDE0.ID20, ^^IDE0.SID0)
                    Store (^^IDE0.IDTS, ^^IDE0.SID1)
                    Store (^^IDE0.IDTP, ^^IDE0.SID2)
                    Store (^^IDE0.ID22, ^^IDE0.SID3)
                    Store (^^IDE0.UMSS, ^^IDE0.SID4)
                    Store (^^IDE0.UMSP, ^^IDE0.SID5)
                    Store (One, PS1S)
                    Store (One, PS1E)
                    Store (One, SLPS)
                }

                Method (SWAK, 1, NotSerialized)
                {
                    Store (Zero, SLPS)
                    Store (Zero, PS1E)
                    Store (0x02, S1CT)
                    Store (0x02, S3CT)
                    Store (0x02, S4CT)
                    Store (0x02, S5CT)
                }

                OperationRegion (SMIE, SystemIO, SCIO, 0x08)
                Field (SMIE, ByteAcc, NoLock, Preserve)
                {
                        ,   15,
                    PS1S,   1,
                        ,   31,
                    PS1E,   1,
                            Offset (0x08)
                }

                OperationRegion (SXCT, SystemIO, SCTL, 0x10)
                Field (SXCT, ByteAcc, NoLock, Preserve)
                {
                    S1CT,   2,
                            Offset (0x04),
                    S3CT,   2,
                            Offset (0x08),
                    S4CT,   2,
                            Offset (0x0C),
                    S5CT,   2,
                            Offset (0x10)
                }

                Scope (\_SB)
                {
                    OperationRegion (\SCPP, SystemIO, SSMI, One)
                    Field (SCPP, ByteAcc, NoLock, Preserve)
                    {
                        SMIP,   8
                    }

                    OperationRegion (\APA4, SystemIO, ACA4, 0x04)
                    Field (APA4, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x02),
                        LCTM,   1,
                        LCNM,   1
                    }

                    Name (SLPS, Zero)
                    Device (SLPB)
                    {
                        Name (_HID, EisaId ("PNP0C0E"))
                        Method (_STA, 0, NotSerialized)
                        {
                            If (EXTS)
                            {
                                Return (0x0F)
                            }

                            Return (Zero)
                        }

                        Method (SBEV, 0, NotSerialized)
                        {
                            If (SLPS)
                            {
                                Notify (SLPB, 0x02)
                            }
                            Else
                            {
                                Notify (SLPB, 0x80)
                            }
                        }

                        Method (\_GPE._L01, 0, NotSerialized)
                        {
                            \_SB.SLPB.SBEV ()
                        }

                        Method (_PRW, 0, NotSerialized)
                        {
                            Return (Package (0x02)
                            {
                                One,
                                0x04
                            })
                        }
                    }

                    Scope (PCI0)
                    {
                        Method (_S3D, 0, NotSerialized)
                        {
                            If (LEqual (OSFL (), 0x02))
                            {
                                Return (0x02)
                            }
                            Else
                            {
                                Return (0x03)
                            }
                        }

                        Name (_S1D, One)
                        Name (NATA, Package (0x01)
                        {
                            0x00050000
                        })
                        Device (NVRB)
                        {
                            Name (_HID, "NVRAID20")
                            Name (FNVR, 0xFF)
                            Method (_DIS, 0, NotSerialized)
                            {
                                Store (Zero, FNVR)
                            }

                            Method (_SRS, 1, NotSerialized)
                            {
                                Store (0xFF, FNVR)
                            }

                            Method (_STA, 0, NotSerialized)
                            {
                                If (And (CPB0, One))
                                {
                                    If (LEqual (FNVR, 0xFF))
                                    {
                                        Return (0x0F)
                                    }
                                    Else
                                    {
                                        Return (0x0D)
                                    }
                                }
                                Else
                                {
                                    Return (Zero)
                                }
                            }

                            Name (_CRS, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x04D2,             // Range Minimum
                                    0x04D2,             // Range Maximum
                                    0x01,               // Alignment
                                    0x01,               // Length
                                    )
                            })
                        }
                    }
                }

                OperationRegion (UCFG, PCI_Config, 0x78, One)
                Field (UCFG, ByteAcc, NoLock, Preserve)
                {
                    U1CF,   8
                }

                Device (MUAR)
                {
                    Name (_UID, 0xFF)
                    Name (_HID, EisaId ("PNP0501"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (MUAE)
                        {
                            And (U1CF, 0x83, Local0)
                            If (LEqual (Local0, 0x82))
                            {
                                Return (0x0F)
                            }
                        }

                        Return (Zero)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (U1CF, 0xC2))
                        {
                            Store (0x03F8, UIO1)
                            ShiftLeft (One, 0x04, UIRQ)
                            Store (One, _UID)
                        }

                        If (LEqual (U1CF, 0xA6))
                        {
                            Store (0x02F8, UIO1)
                            ShiftLeft (One, 0x03, UIRQ)
                            Store (0x02, _UID)
                        }

                        Store (UIO1, UIO2)
                        Return (UCRS)
                    }

                    Name (UCRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            _Y01)
                        IRQNoFlags (_Y00)
                            {}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {}
                    })
                    CreateWordField (UCRS, \_SB.PCI0.SBRG.MUAR._Y00._INT, UIRQ)
                    CreateWordField (UCRS, \_SB.PCI0.SBRG.MUAR._Y01._MIN, UIO1)
                    CreateWordField (UCRS, \_SB.PCI0.SBRG.MUAR._Y01._MAX, UIO2)
                }

                OperationRegion (PIMC, PCI_Config, 0x7C, 0x0C)
                Field (PIMC, ByteAcc, NoLock, Preserve)
                {
                    PIRA,   4,
                    PIRB,   4,
                    PIRC,   4,
                    PIRD,   4,
                    PREA,   4,
                    PREB,   4,
                    PREC,   4,
                    PRED,   4,
                        ,   4,
                            Offset (0x05),
                    PIRM,   4,
                    PIU2,   4,
                        ,   4,
                    PMUD,   4,
                    SIID,   4,
                    PIID,   4,
                    PIU0,   4,
                    PILM,   4,
                    PILN,   4,
                    PAZA,   4,
                        ,   4,
                            Offset (0x0B),
                    PR0E,   4,
                    SIR2,   4
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (DMAD)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        DMA (Compatibility, BusMaster, Transfer8, )
                            {4}
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0087,             // Range Minimum
                            0x0087,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0089,             // Range Minimum
                            0x0089,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x008F,             // Range Minimum
                            0x008F,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x00,               // Alignment
                            0x20,               // Length
                            )
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (FDC)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Method (_FDE, 0, NotSerialized)
                    {
                        Name (FDEP, Package (0x05)
                        {
                            Zero,
                            Zero,
                            0x02,
                            0x02,
                            0x02
                        })
                        If (_STA ())
                        {
                            Store (One, Index (FDEP, Zero))
                        }

                        Return (FDEP)
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (0x03))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (0x03, Zero)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        DCRS (0x03, One)
                        Store (IRQM, IRQE)
                        Store (DMAM, DMAE)
                        Store (IO11, IO21)
                        Store (IO12, IO22)
                        Store (0x06, LEN2)
                        Add (IO21, 0x07, IO31)
                        Store (IO31, IO32)
                        Store (One, LEN3)
                        Return (CRS2)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, 0x03)
                        CreateWordField (Arg0, 0x11, IRQE)
                        CreateByteField (Arg0, 0x14, DMAE)
                        ENFG (CGLD (0x03))
                        If (IRQE)
                        {
                            FindSetRightBit (IRQE, Local0)
                            Subtract (Local0, One, INTR)
                        }
                        Else
                        {
                            Store (Zero, INTR)
                        }

                        If (DMAE)
                        {
                            FindSetRightBit (DMAE, Local0)
                            Subtract (Local0, One, DMCH)
                        }
                        Else
                        {
                            Store (0x04, DMCH)
                        }

                        EXFG ()
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16,
                                0x03F0,             // Range Minimum
                                0x03F0,             // Range Maximum
                                0x01,               // Alignment
                                0x06,               // Length
                                )
                            IO (Decode16,
                                0x03F7,             // Range Minimum
                                0x03F7,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {6}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {2}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F0,             // Range Minimum
                                0x03F0,             // Range Maximum
                                0x01,               // Alignment
                                0x06,               // Length
                                )
                            IO (Decode16,
                                0x03F7,             // Range Minimum
                                0x03F7,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0370,             // Range Minimum
                                0x0370,             // Range Maximum
                                0x01,               // Alignment
                                0x06,               // Length
                                )
                            IO (Decode16,
                                0x0377,             // Range Minimum
                                0x0377,             // Range Maximum
                                0x01,               // Alignment
                                0x01,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,2,3}
                        }
                        EndDependentFn ()
                    })
                }

                Device (SIOR)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Method (_UID, 0, NotSerialized)
                    {
                        Return (SPIO)
                    }

                    Name (CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y02)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y03)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y04)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y05)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y06)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LAnd (LNotEqual (SPIO, 0x03F0), LGreater
(SPIO, 0xF0)))
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y02._MIN, GP10)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y02._MAX, GP11)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y02._LEN, GPL1)
                            Store (SPIO, GP10)
                            Store (SPIO, GP11)
                            Store (0x02, GPL1)
                        }

                        If (IOPB)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y03._MIN, GP20)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y03._MAX, GP21)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y03._LEN, GPL2)
                            Store (IOPB, GP20)
                            Store (IOPB, GP21)
                            Store (IOPL, GPL2)
                        }

                        If (IOEB)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y04._MIN, GP30)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y04._MAX, GP31)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y04._LEN, GPL3)
                            Store (IOEB, GP30)
                            Store (IOEB, GP31)
                            Store (IOEL, GPL3)
                        }

                        If (IOGB)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y05._MIN, GP40)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y05._MAX, GP41)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y05._LEN, GPL4)
                            Store (IOGB, GP40)
                            Store (IOGB, GP41)
                            Store (IOGL, GPL4)
                        }

                        If (IODB)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y06._MIN, GP50)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.SIOR._Y06._MAX, GP51)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.SIOR._Y06._LEN, GPL5)
                            Store (IODB, GP50)
                            Store (IODB, GP51)
                            Store (IODL, GPL5)
                        }

                        Return (CRS)
                    }
                }

                Name (DCAT, Package (0x16)
                {
                    One,
                    0x02,
                    0x03,
                    Zero,
                    0xFF,
                    0x08,
                    0xFF,
                    0xFF,
                    0x09,
                    0xFF,
                    0x05,
                    0x04,
                    0xFF,
                    0xFF,
                    0xFF,
                    0xFF,
                    0x0A,
                    0xFF,
                    0xFF,
                    0xFF,
                    0xFF,
                    0xFF
                })
                Name (IKEY, Package (0x02)
                {
                    Package (0x04)
                    {
                        0x87,
                        One,
                        0x55,
                        0x55
                    },

                    Package (0x04)
                    {
                        0x87,
                        One,
                        0x55,
                        0xAA
                    }
                })
                Name (KBFG, One)
                Name (MSFG, One)
                Name (UR1F, One)
                Method (ENFG, 1, NotSerialized)
                {
                    Store (Zero, Local1)
                    If (LEqual (SPIO, 0x2E))
                    {
                        Store (Zero, Local1)
                    }

                    If (LEqual (SPIO, 0x4E))
                    {
                        Store (One, Local1)
                    }

                    Store (Zero, Local0)
                    While (LNotEqual (Local0, 0x04))
                    {
                        Store (DerefOf (Index (DerefOf (Index (IKEY,
Local1)), Local0)),
                            INDX)
                        Increment (Local0)
                    }

                    Store (Arg0, LDN)
                }

                Method (ENTR, 0, NotSerialized)
                {
                    Store (0x87, INDX)
                    Store (One, INDX)
                    Store (0x55, INDX)
                    If (LEqual (SPIO, 0x2E))
                    {
                        Store (0x55, INDX)
                    }
                    Else
                    {
                        Store (0xAA, INDX)
                    }
                }

                Method (EXFG, 0, NotSerialized)
                {
                    Store (0x02, INDX)
                    Store (0x02, DATA)
                }

                Method (LPTM, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    And (OPT0, 0x02, Local0)
                    EXFG ()
                    Return (Local0)
                }

                Method (UHID, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    And (OPT0, 0x70, Local0)
                    EXFG ()
                    If (Local0)
                    {
                        Return (0x1005D041)
                    }

                    Return (0x0105D041)
                }

                Method (ORF0, 1, NotSerialized)
                {
                    ENTR ()
                    Or (OPT0, Arg0, OPT0)
                    EXFG ()
                }

                Method (ORF1, 1, NotSerialized)
                {
                    ENTR ()
                    Or (OPT1, Arg0, OPT1)
                    EXFG ()
                }

                Method (ORF2, 1, NotSerialized)
                {
                    ENTR ()
                    Or (OPT2, Arg0, OPT2)
                    EXFG ()
                }

                Method (ANF0, 1, NotSerialized)
                {
                    ENTR ()
                    And (OPT0, Arg0, OPT0)
                    EXFG ()
                }

                Method (ANF2, 1, NotSerialized)
                {
                    ENTR ()
                    And (OPT2, Arg0, OPT2)
                    EXFG ()
                }

                Method (ANF4, 1, NotSerialized)
                {
                    ENTR ()
                    And (OPT4, Arg0, OPT4)
                    EXFG ()
                }

                Method (STF0, 1, NotSerialized)
                {
                    ENTR ()
                    Store (Arg0, OPT0)
                    EXFG ()
                }

                Method (STF1, 1, NotSerialized)
                {
                    ENTR ()
                    Store (Arg0, OPT1)
                    EXFG ()
                }

                Method (SIOS, 1, NotSerialized)
                {
                    Store ("SIOS", Debug)
                    Store (Zero, GP10)
                    If (LLess (Arg0, 0x05))
                    {
                        ENFG (0x04)
                        Store (One, ACTR)
                        EXFG ()
                        ANF4 (0xFC)
                        ORF1 (0x18)
                        If (KBFG)
                        {
                            ORF0 (0x08)
                        }
                        Else
                        {
                            ANF0 (0xF7)
                        }

                        If (MSFG)
                        {
                            ORF0 (0x10)
                        }
                        Else
                        {
                            ANF0 (0xEF)
                            ENFG (0x06)
                            Store (Zero, ACTR)
                            EXFG ()
                        }

                        ENFG (0x04)
                        ANF2 (0xF0)
                    }
                    Else
                    {
                    }
                }

                Method (SIOW, 1, NotSerialized)
                {
                    Store (One, GP10)
                    Store (One, GP40)
                    Store ("SIOW", Debug)
                    ENFG (0x04)
                    Store (Zero, ACTR)
                    EXFG ()
                    STF0 (Zero)
                    STF1 (0xFF)
                    ENFG (0x07)
                    Or (OP29, 0x10, OP29)
                    Or (OPC0, One, OPC0)
                    Or (OPC3, One, OPC3)
                    EXFG ()
                    ENFG (0x05)
                    Or (ACTR, One, ACTR)
                    EXFG ()
                    ENFG (0x06)
                    Or (ACTR, One, ACTR)
                    EXFG ()
                    ENFG (0x04)
                    Store (One, ACTR)
                    EXFG ()
                }

                Method (SIOH, 0, NotSerialized)
                {
                    Store ("SIOH", Debug)
                }

                OperationRegion (IOID, SystemIO, SPIO, 0x02)
                Field (IOID, ByteAcc, NoLock, Preserve)
                {
                    INDX,   8,
                    DATA,   8
                }

                IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                {
                            Offset (0x07),
                    LDN,    8,
                            Offset (0x29),
                    OP29,   8,
                            Offset (0x30),
                    ACTR,   8,
                            Offset (0x60),
                    IOAH,   8,
                    IOAL,   8,
                    IOH2,   8,
                    IOL2,   8,
                            Offset (0x70),
                    INTR,   8,
                            Offset (0x74),
                    DMCH,   8,
                            Offset (0xC0),
                    OPC0,   8,
                    OPC1,   8,
                    OPC2,   8,
                    OPC3,   8,
                            Offset (0xF0),
                    OPT0,   8,
                    OPT1,   8,
                    OPT2,   8,
                    OPT3,   8,
                    OPT4,   8,
                            Offset (0xF8),
                    OPF8,   8,
                    OPF9,   8,
                    OPFA,   8,
                    OPFB,   8
                }

                Method (CGLD, 1, NotSerialized)
                {
                    Return (DerefOf (Index (DCAT, Arg0)))
                }

                Method (DSTA, 1, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    Store (ACTR, Local0)
                    EXFG ()
                    If (LEqual (Local0, 0xFF))
                    {
                        Return (Zero)
                    }

                    And (Local0, One, Local0)
                    Or (IOST, ShiftLeft (Local0, Arg0), IOST)
                    If (Local0)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        If (And (ShiftLeft (One, Arg0), IOST))
                        {
                            Return (0x0D)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }
                }

                Method (DCNT, 2, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, Local1)
                    Or (IOAL, Local1, Local1)
                    RRIO (Arg0, Arg1, Local1, 0x08)
                    If (LAnd (LLess (DMCH, 0x04), LNotEqual (And (DMCH, 0x03,
                        Local1), Zero)))
                    {
                        RDMA (Arg0, Arg1, Increment (Local1))
                    }

                    Store (Arg1, ACTR)
                    EXFG ()
                }

                Name (CRS1, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x01,               // Alignment
                        0x00,               // Length
                        _Y09)
                    IRQNoFlags (_Y07)
                        {}
                    DMA (Compatibility, NotBusMaster, Transfer8, _Y08)
                        {}
                })
                CreateWordField (CRS1, \_SB.PCI0.SBRG._Y07._INT, IRQM)
                CreateByteField (CRS1, \_SB.PCI0.SBRG._Y08._DMA, DMAM)
                CreateWordField (CRS1, \_SB.PCI0.SBRG._Y09._MIN, IO11)
                CreateWordField (CRS1, \_SB.PCI0.SBRG._Y09._MAX, IO12)
                CreateByteField (CRS1, \_SB.PCI0.SBRG._Y09._LEN, LEN1)
                Name (CRS2, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x01,               // Alignment
                        0x00,               // Length
                        _Y0C)
                    IO (Decode16,
                        0x0000,             // Range Minimum
                        0x0000,             // Range Maximum
                        0x01,               // Alignment
                        0x00,               // Length
                        _Y0D)
                    IRQNoFlags (_Y0A)
                        {6}
                    DMA (Compatibility, NotBusMaster, Transfer8, _Y0B)
                        {2}
                })
                CreateWordField (CRS2, \_SB.PCI0.SBRG._Y0A._INT, IRQE)
                CreateByteField (CRS2, \_SB.PCI0.SBRG._Y0B._DMA, DMAE)
                CreateWordField (CRS2, \_SB.PCI0.SBRG._Y0C._MIN, IO21)
                CreateWordField (CRS2, \_SB.PCI0.SBRG._Y0C._MAX, IO22)
                CreateByteField (CRS2, \_SB.PCI0.SBRG._Y0C._LEN, LEN2)
                CreateWordField (CRS2, \_SB.PCI0.SBRG._Y0D._MIN, IO31)
                CreateWordField (CRS2, \_SB.PCI0.SBRG._Y0D._MAX, IO32)
                CreateByteField (CRS2, \_SB.PCI0.SBRG._Y0D._LEN, LEN3)
                Method (DCRS, 2, NotSerialized)
                {
                    ENFG (CGLD (Arg0))
                    ShiftLeft (IOAH, 0x08, IO11)
                    Or (IOAL, IO11, IO11)
                    Store (IO11, IO12)
                    Subtract (FindSetRightBit (IO11), One, Local0)
                    ShiftLeft (One, Local0, LEN1)
                    If (INTR)
                    {
                        ShiftLeft (One, INTR, IRQM)
                    }
                    Else
                    {
                        Store (Zero, IRQM)
                    }

                    If (LOr (LGreater (DMCH, 0x03), LEqual (Arg1, Zero)))
                    {
                        Store (Zero, DMAM)
                    }
                    Else
                    {
                        And (DMCH, 0x03, Local1)
                        ShiftLeft (One, Local1, DMAM)
                    }

                    EXFG ()
                    Return (CRS1)
                }

                Method (DSRS, 2, NotSerialized)
                {
                    CreateWordField (Arg0, 0x09, IRQM)
                    CreateByteField (Arg0, 0x0C, DMAM)
                    CreateWordField (Arg0, 0x02, IO11)
                    ENFG (CGLD (Arg1))
                    And (IO11, 0xFF, IOAL)
                    ShiftRight (IO11, 0x08, IOAH)
                    If (IRQM)
                    {
                        FindSetRightBit (IRQM, Local0)
                        Subtract (Local0, One, INTR)
                    }
                    Else
                    {
                        Store (Zero, INTR)
                    }

                    If (DMAM)
                    {
                        FindSetRightBit (DMAM, Local0)
                        Subtract (Local0, One, DMCH)
                    }
                    Else
                    {
                        Store (0x04, DMCH)
                    }

                    EXFG ()
                    DCNT (Arg1, One)
                }

                OperationRegion (GPIO, SystemIO, IO1B, 0x04)
                Field (GPIO, ByteAcc, NoLock, Preserve)
                {
                    GP10,   1,
                    GP11,   1,
                    GP12,   1,
                    GP13,   1,
                    GO14,   1,
                    GO15,   1,
                    GO16,   1,
                    GO17,   1,
                    GP20,   1,
                    GP21,   1,
                    GP22,   1,
                    GP23,   1,
                    GO24,   1,
                    GO25,   1,
                    GO26,   1,
                    GO27,   1,
                    GP30,   1,
                    GP31,   1,
                    GP32,   1,
                    GP33,   1,
                    GO34,   1,
                    GO35,   1,
                    GO36,   1,
                    GO37,   1,
                    GP40,   1,
                    GP41,   1,
                    GP42,   1,
                    GP43,   1,
                    GO44,   1,
                    GO45,   1,
                    GO46,   1,
                    GO47,   1
                }

                Device (RMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x10)
                    Name (CRS, ResourceTemplate ()
                    {
                        DWordMemory (ResourceProducer, PosDecode,
MinFixed, MaxFixed, Cacheable, ReadWrite,
                            0x00000000,         // Granularity
                            0x000D0000,         // Range Minimum
                            0x000D3FFF,         // Range Maximum
                            0x00000000,         // Translation Offset
                            0x00004000,         // Length
                            ,, , AddressRangeMemory, TypeStatic)
                        DWordMemory (ResourceProducer, PosDecode,
MinFixed, MaxFixed, Cacheable, ReadWrite,
                            0x00000000,         // Granularity
                            0x000D4000,         // Range Minimum
                            0x000D7FFF,         // Range Maximum
                            0x00000000,         // Translation Offset
                            0x00004000,         // Length
                            ,, , AddressRangeMemory, TypeStatic)
                        DWordMemory (ResourceProducer, PosDecode,
MinFixed, MaxFixed, Cacheable, ReadWrite,
                            0x00000000,         // Granularity
                            0x000DE000,         // Range Minimum
                            0x000DFFFF,         // Range Maximum
                            0x00000000,         // Translation Offset
                            0x00002000,         // Length
                            ,, , AddressRangeMemory, TypeStatic)
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0022,             // Range Minimum
                            0x0022,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x0044,             // Range Minimum
                            0x0044,             // Range Maximum
                            0x00,               // Alignment
                            0x1C,               // Length
                            )
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0065,             // Range Minimum
                            0x0065,             // Range Maximum
                            0x00,               // Alignment
                            0x0B,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x00,               // Alignment
                            0x0E,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0084,             // Range Minimum
                            0x0084,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0088,             // Range Minimum
                            0x0088,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x008C,             // Range Minimum
                            0x008C,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0090,             // Range Minimum
                            0x0090,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x00A2,             // Range Minimum
                            0x00A2,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x00E0,             // Range Minimum
                            0x00E0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0800,             // Range Minimum
                            0x0800,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y0E)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y0F)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y10)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y11)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y12)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y13)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y14)
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x00,               // Length
                            _Y15)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y16)
                        Memory32Fixed (ReadOnly,
                            0xFEE01000,         // Address Base
                            0x000FF000,         // Address Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0E._MIN, GP00)
                        CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0E._MAX, GP01)
                        CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0E._LEN, GP0L)
                        CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0F._MIN, GP10)
                        CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0F._MAX, GP11)
                        CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y0F._LEN, GP1L)
                        Store (PMBS, GP00)
                        Store (PMBS, GP01)
                        If (LGreaterEqual (PMLN, 0x0100))
                        {
                            ShiftRight (PMLN, One, GP0L)
                            Add (GP00, GP0L, GP10)
                            Add (GP01, GP0L, GP11)
                            Subtract (PMLN, GP0L, GP1L)
                        }
                        Else
                        {
                            Store (PMLN, GP0L)
                        }

                        If (SCBS)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y10._MIN, SC00)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y10._MAX, SC01)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y10._LEN, SC0L)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y11._MIN, SC10)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y11._MAX, SC11)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y11._LEN, SC1L)
                            Store (SCBS, SC00)
                            Store (SCBS, SC01)
                            If (LGreaterEqual (SCLN, 0x0100))
                            {
                                ShiftRight (SCLN, One, SC0L)
                                Add (SC00, SC0L, SC10)
                                Add (SC01, SC0L, SC11)
                                Subtract (SCLN, SC0L, SC1L)
                            }
                            Else
                            {
                                Store (SCLN, SC0L)
                            }
                        }

                        If (ACBS)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y12._MIN, AC00)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y12._MAX, AC01)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y12._LEN, AC0L)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y13._MIN, AC10)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y13._MAX, AC11)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y13._LEN, AC1L)
                            Store (ACBS, AC00)
                            Store (ACBS, AC01)
                            If (LGreaterEqual (ACLN, 0x0100))
                            {
                                ShiftRight (ACLN, One, AC0L)
                                Add (AC00, AC0L, AC10)
                                Add (AC01, AC0L, AC11)
                                Subtract (ACLN, AC0L, AC1L)
                            }
                            Else
                            {
                                Store (ACLN, AC0L)
                            }
                        }

                        If (IGPB)
                        {
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y14._MIN, IC00)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y14._MAX, IC01)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y14._LEN, IC0L)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y15._MIN, IC10)
                            CreateWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y15._MAX, IC11)
                            CreateByteField (CRS,
\_SB.PCI0.SBRG.RMSC._Y15._LEN, IC1L)
                            Store (IGPB, IC00)
                            Store (IGPB, IC01)
                            If (LGreaterEqual (IGLN, 0x0100))
                            {
                                ShiftRight (IGLN, One, IC0L)
                                Add (IC00, IC0L, IC10)
                                Add (IC01, IC0L, IC11)
                                Subtract (IGLN, IC0L, IC1L)
                            }
                            Else
                            {
                                Store (IGLN, IC0L)
                            }
                        }

                        CreateDWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y16._BAS, MB01)
                        CreateDWordField (CRS,
\_SB.PCI0.SBRG.RMSC._Y16._LEN, ML01)
                        Store (CPB1, MB01)
                        Store (CPB2, ML01)
                        Return (CRS)
                    }
                }

                Scope (\)
                {
                    OperationRegion (RAMW, SystemMemory, 0xBFFF0000, 0x00010000)
                    Field (RAMW, ByteAcc, NoLock, Preserve)
                    {
                        PAR0,   32,
                        PAR1,   32,
                        PAR2,   32
                    }

                    OperationRegion (IOB2, SystemIO, 0x242E, 0x02)
                    Field (IOB2, ByteAcc, NoLock, Preserve)
                    {
                        SMIC,   8,
                        SMIS,   8
                    }

                    Method (ISMI, 1, Serialized)
                    {
                        Store (Arg0, SMIC)
                    }

                    Method (GNVS, 1, Serialized)
                    {
                        Store (Arg0, PAR0)
                        ISMI (0x70)
                        Return (PAR1)
                    }

                    Method (SNVS, 2, Serialized)
                    {
                        Store (Arg0, PAR0)
                        Store (Arg1, PAR1)
                        ISMI (0x71)
                    }

                    Method (GMAX, 1, Serialized)
                    {
                        Store (Arg0, PAR0)
                        ISMI (0x74)
                        Return (PAR1)
                    }

                    Method (GMDX, 1, Serialized)
                    {
                        Store (Arg0, PAR0)
                        ISMI (0x75)
                        Return (PAR1)
                    }

                    Method (GCAX, 1, Serialized)
                    {
                        Store (Arg0, PAR0)
                        ISMI (0x76)
                        Return (PAR1)
                    }

                    Method (GCDX, 1, Serialized)
                    {
                        Store (Arg0, PAR0)
                        ISMI (0x77)
                        Return (PAR1)
                    }
                }

                Scope (\_SB.PCI0.SBRG)
                {
                    Device (ASOC)
                    {
                        Name (_HID, "ATK0110")
                        Name (_UID, 0x01010110)
                        Method (_STA, 0, NotSerialized)
                        {
                            Return (0x0F)
                        }

                        Method (_INI, 0, NotSerialized)
                        {
                            If (LGreater (And (GCAX (One), 0x0FF0,
Local0), 0x06F0))
                            {
                                Store (GMAX (0x2C), Local0)
                                And (ShiftRight (Local0, 0x08), 0xFF, Local2)
                                And (Local0, 0xFF, Local1)
                                Subtract (Local1, Local2, Local0)
                                Store (GMDX (0x0198), Local7)
                                And (ShiftRight (Local7, 0x08), 0xFF, Local7)
                                If (LLess (Local7, Local0))
                                {
                                    Store (Local1, Local7)
                                }
                            }
                            Else
                            {
                                Store (GMAX (0x17), Local0)
                                And (ShiftRight (Local0, 0x08), 0x1F, Local1)
                                Store (Local1, Local7)
                                Store (GMAX (0x0198), Local0)
                                And (ShiftRight (Local0, 0x18), 0x1F, Local0)
                            }

                            Multiply (Local0, 0x0A, Local2)
                            Or (Local2, 0xFF000000, Index (G3T2, 0x04))
                            If (And (GMAX (0x0198), 0x80000000))
                            {
                                Store (0x1F, Local1)
                            }

                            If (And (GMAX (0x17), 0x00800000))
                            {
                                And (GMAX (0x17), 0x4000, Local2)
                                Store (0x05, Index (G3T2, 0x05))
                                Store (ShiftRight (And (GMAX (0x17),
0x4000), 0x0E), Local5)
                                Store (Subtract (Local7, Local0), Local4)
                                Multiply (Local4, 0x02, Local6)
                                Add (Local6, Local5, Index (G3T2, 0x03))
                                Multiply (Subtract (Local1, Local0,
Local3), 0x02, Local3)
                                Add (Local3, One, Local3)
                                If (Local2)
                                {
                                    Add (Local3, One, Local3)
                                }

                                Store (Local3, Index (G3T2, 0x06))
                            }
                            Else
                            {
                                Store (0x0A, Index (G3T2, 0x05))
                                Store (Subtract (Local7, Local0),
Index (G3T2, 0x03))
                                Add (Subtract (Local1, Local0,
Local3), One, Index (G3T2, 0x06))
                            }
                        }

                        Name (MBIF, Package (0x08)
                        {
                            0x03,
                            "P5N64-WS",
                            0x01000101,
                            0x01000100,
                            0xE0000000,
                            Zero,
                            Zero,
                            Zero
                        })
                        Name (ASBF, Buffer (0x08)
                        {
                            /* 0000 */    0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
                        })
                        CreateDWordField (ASBF, Zero, ASB0)
                        CreateDWordField (ASBF, 0x04, ASB1)
                        Method (GGRP, 1, Serialized)
                        {
                            Name (_T_0, Zero)
                            Store (Arg0, _T_0)
                            If (LEqual (_T_0, Zero))
                            {
                                Return (GRP0)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x03))
                                {
                                    Return (GRP3)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        Return (GRP4)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x06))
                                        {
                                            Return (GRP6)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x09))
                                            {
                                                Return (GRP9)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x0B))
                                                {
                                                    Return (GRPB)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x0E))
                                                    {
                                                        Return (GRPE)
                                                    }
                                                    Else
                                                    {
                                                        Return (Zero)
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        Method (GITM, 1, Serialized)
                        {
                            CreateDWordField (Arg0, Zero, PRM0)
                            CreateByteField (Arg0, 0x03, GPID)
                            Store (One, ASB0)
                            Name (_T_0, Zero)
                            Store (GPID, _T_0)
                            If (LEqual (_T_0, Zero))
                            {
                                GIT0 (PRM0)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x03))
                                {
                                    GIT3 (PRM0)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        GIT4 (PRM0)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x06))
                                        {
                                            GIT6 (PRM0)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x09))
                                            {
                                                GIT9 (PRM0)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x0B))
                                                {
                                                    GITB (PRM0)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x0E))
                                                    {
                                                        GITE (PRM0)
                                                    }
                                                    Else
                                                    {
                                                        Store (Zero, ASB0)
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            Return (ASBF)
                        }

                        Method (SITM, 1, Serialized)
                        {
                            CreateDWordField (Arg0, Zero, PRM0)
                            CreateDWordField (Arg0, 0x04, PRM1)
                            CreateDWordField (Arg0, 0x08, PRM2)
                            CreateByteField (Arg0, 0x03, GPID)
                            Store (One, ASB0)
                            Name (_T_0, Zero)
                            Store (GPID, _T_0)
                            If (LEqual (_T_0, Zero))
                            {
                                SIT0 (PRM0, PRM1, PRM2)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x03))
                                {
                                    SIT3 (PRM0, PRM1, PRM2)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        SIT4 (PRM0, PRM1, PRM2)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x06))
                                        {
                                            SIT6 (PRM0, PRM1, PRM2)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x09))
                                            {
                                                SIT9 (PRM0, PRM1, PRM2)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x0B))
                                                {
                                                    SITB (PRM0, PRM1, PRM2)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x0E))
                                                    {
                                                        SITE (PRM0, PRM1, PRM2)
                                                    }
                                                    Else
                                                    {
                                                        Store (Zero, ASB0)
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            Return (ASBF)
                        }

                        Method (OP2V, 2, NotSerialized)
                        {
                            Store (DerefOf (Index (Arg1, 0x04)), Local0)
                            Store (DerefOf (Index (Arg1, 0x05)), Local1)
                            Multiply (Arg0, Local1, Local1)
                            Add (Local0, Local1, Local0)
                            Return (Local0)
                        }

                        Method (V2OP, 2, NotSerialized)
                        {
                            Store (DerefOf (Index (Arg1, 0x04)), Local0)
                            Store (DerefOf (Index (Arg1, 0x05)), Local1)
                            Subtract (Arg0, Local0, Local0)
                            Divide (Local0, Local1, Local1, Local0)
                            Return (Local0)
                        }
                    }
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (_UID, Zero)
                    Name (CRS0, ResourceTemplate ()
                    {
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y17)
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (OSFL (), Zero))
                        {
                            If (LEqual (NVID, 0x10DE))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS1,
\_SB.PCI0.SBRG.HPET._Y17._BAS, HPX1)
                        CreateDWordField (CRS1,
\_SB.PCI0.SBRG.HPET._Y17._LEN, HPX2)
                        If (LEqual (NVID, 0x10DE))
                        {
                            Store (SHPB, HPX1)
                            Store (SHPL, HPX2)
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS0)
                        }
                    }

                    OperationRegion (HPTE, SystemMemory, SHPB, 0x04)
                    Field (HPTE, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x02),
                        NVID,   16
                    }
                }

                OperationRegion (LPDC, PCI_Config, 0xA0, 0x06)
                Field (LPDC, ByteAcc, NoLock, Preserve)
                {
                    S3F8,   1,
                    S2F8,   1,
                        ,   3,
                    S2E8,   1,
                        ,   1,
                    S3E8,   1,
                        ,   4,
                    M300,   1,
                        ,   2,
                    M330,   1,
                        ,   4,
                    FDC0,   1,
                            Offset (0x03),
                    P378,   1,
                    P278,   1,
                    P3BC,   1,
                            Offset (0x04),
                    G200,   8,
                    G208,   8
                }

                Method (RRIO, 4, NotSerialized)
                {
                    If (LOr (LEqual (Arg0, Zero), LEqual (Arg0, One)))
                    {
                        If (LEqual (Arg2, 0x03F8))
                        {
                            Store (Arg1, S3F8)
                        }

                        If (LEqual (Arg2, 0x02F8))
                        {
                            Store (Arg1, S2F8)
                        }

                        If (LEqual (Arg2, 0x03E8))
                        {
                            Store (Arg1, S3E8)
                        }

                        If (LEqual (Arg2, 0x02E8))
                        {
                            Store (Arg1, S2E8)
                        }
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        If (LEqual (Arg2, 0x0378))
                        {
                            Store (Arg1, P378)
                        }

                        If (LEqual (Arg2, 0x0278))
                        {
                            Store (Arg1, P278)
                        }

                        If (LEqual (Arg2, 0x03BC))
                        {
                            Store (Arg1, P3BC)
                        }
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Store (Arg1, FDC0)
                    }

                    If (LEqual (Arg0, 0x05))
                    {
                        If (LEqual (Arg2, 0x0330))
                        {
                            Store (Arg1, M330)
                        }

                        If (LEqual (Arg2, 0x0300))
                        {
                            Store (Arg1, M300)
                        }
                    }

                    If (LEqual (Arg0, 0x08))
                    {
                        Store (Zero, Local0)
                        If (Arg1)
                        {
                            Store (0xFF, Local0)
                        }

                        If (LEqual (Arg2, 0x0200))
                        {
                            Store (Local0, G200)
                        }

                        If (LEqual (Arg2, 0x0208))
                        {
                            Store (Local0, G208)
                        }
                    }
                }

                Method (RDMA, 3, NotSerialized)
                {
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (CRS0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (^^HPET.NVID, 0x10DE))
                        {
                            Return (CRS1)
                        }

                        Return (CRS0)
                    }
                }

                Device (RTC0)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (CRS0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (LEqual (^^HPET.NVID, 0x10DE))
                        {
                            Return (CRS1)
                        }

                        Return (CRS0)
                    }
                }

                Device (^PCIE)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x11)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xE0000000,         // Address Base
                            0x10000000,         // Address Length
                            _Y18)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, \_SB.PCI0.PCIE._Y18._BAS, BAS1)
                        CreateDWordField (CRS, \_SB.PCI0.PCIE._Y18._LEN, LEN1)
                        Store (PCIB, BAS1)
                        Store (PCIL, LEN1)
                        Return (CRS)
                    }
                }

                Scope (\_GPE)
                {
                    Method (_L31, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.SBRG.ASOC, One)
                        Sleep (0x03E8)
                    }
                }

                Scope (ASOC)
                {
                    Name (VESL, Zero)
                    Method (SPLV, 1, Serialized)
                    {
                        And (Arg0, 0xFFFF, VESL)
                        Store (VESL, PAR0)
                        ISMI (0x88)
                        Store (And (PAR0, 0xFFFF), Local0)
                        Return (Local0)
                    }

                    Method (GPLV, 0, Serialized)
                    {
                        Return (VESL)
                    }
                }

                Device (PS2K)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CID, 0x0B03D041)
                    Method (_STA, 0, NotSerialized)
                    {
                        ShiftLeft (One, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                }

                Method (PS2K._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x10, 0x04))
                }

                Device (UAR1)
                {
                    Name (_UID, One)
                    Method (_HID, 0, NotSerialized)
                    {
                        Return (UHID (Zero))
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        Return (DSTA (Zero))
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        DCNT (Zero, Zero)
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        Return (DCRS (Zero, One))
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        DSRS (Arg0, Zero)
                    }

                    Method (_PRS, 0, NotSerialized)
                    {
                        Return (CMPR)
                    }

                    Name (CMPR, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x00)
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,2,3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3,4,5,6,7,10,11,12}
                            DMA (Compatibility, NotBusMaster, Transfer8, )
                                {0,1,2,3}
                        }
                        EndDependentFn ()
                    })
                }

                Method (UAR1._PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x03, 0x04))
                }

                Device (OMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, Zero)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y19)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y1A)
                    })
                    Name (CRS1, ResourceTemplate ()
                    {
                        FixedIO (
                            0x0060,             // Address
                            0x01,               // Length
                            )
                        FixedIO (
                            0x0064,             // Address
                            0x01,               // Length
                            )
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y1B)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y1C)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        If (APIC)
                        {
                            CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y19._LEN, ML01)
                            CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y19._BAS, MB01)
                            CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y1A._LEN, ML02)
                            CreateDWordField (CRS,
\_SB.PCI0.SBRG.OMSC._Y1A._BAS, MB02)
                            Store (0xFEC00000, MB01)
                            Store (0x1000, ML01)
                            Store (0xFEE00000, MB02)
                            Store (0x1000, ML02)
                            CreateDWordField (CRS1,
\_SB.PCI0.SBRG.OMSC._Y1B._LEN, ML03)
                            CreateDWordField (CRS1,
\_SB.PCI0.SBRG.OMSC._Y1B._BAS, MB03)
                            CreateDWordField (CRS1,
\_SB.PCI0.SBRG.OMSC._Y1C._LEN, ML04)
                            CreateDWordField (CRS1,
\_SB.PCI0.SBRG.OMSC._Y1C._BAS, MB04)
                            Store (0xFEC00000, MB03)
                            Store (0x1000, ML03)
                            Store (0xFEE00000, MB04)
                            Store (0x1000, ML04)
                        }

                        ShiftLeft (0x05, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (CRS)
                        }
                        Else
                        {
                            Return (CRS1)
                        }
                    }
                }

                Device (^^RMEM)
                {
                    Name (_HID, EisaId ("PNP0C01"))
                    Name (_UID, One)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0x00000000,         // Address Base
                            0x000A0000,         // Address Length
                            )
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y1D)
                        Memory32Fixed (ReadOnly,
                            0x000E0000,         // Address Base
                            0x00020000,         // Address Length
                            _Y1E)
                        Memory32Fixed (ReadWrite,
                            0x00100000,         // Address Base
                            0x00000000,         // Address Length
                            _Y1F)
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y20)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateDWordField (CRS, \_SB.RMEM._Y1D._BAS, BAS1)
                        CreateDWordField (CRS, \_SB.RMEM._Y1D._LEN, LEN1)
                        CreateDWordField (CRS, \_SB.RMEM._Y1E._BAS, BAS2)
                        CreateDWordField (CRS, \_SB.RMEM._Y1E._LEN, LEN2)
                        CreateDWordField (CRS, \_SB.RMEM._Y1F._LEN, LEN3)
                        CreateDWordField (CRS, \_SB.RMEM._Y20._BAS, BAS4)
                        CreateDWordField (CRS, \_SB.RMEM._Y20._LEN, LEN4)
                        If (OSFL ()) {}
                        Else
                        {
                            If (MG1B)
                            {
                                If (LGreater (MG1B, 0x000C0000))
                                {
                                    Store (0x000C0000, BAS1)
                                    Subtract (MG1B, BAS1, LEN1)
                                }
                            }
                            Else
                            {
                                Store (0x000C0000, BAS1)
                                Store (0x00020000, LEN1)
                            }

                            If (Add (MG1B, MG1L, Local0))
                            {
                                Store (Local0, BAS2)
                                Subtract (0x00100000, BAS2, LEN2)
                            }
                        }

                        Subtract (MG2B, 0x00100000, LEN3)
                        Store (MH1B, BAS4)
                        Subtract (Zero, BAS4, LEN4)
                        Return (CRS)
                    }
                }
            }

            Device (NSMB)
            {
                Name (_ADR, 0x000A0001)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x09, 0x04))
                }
            }

            Device (USB2)
            {
                Name (_ADR, 0x000B0001)
                Name (_S1D, One)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x05, 0x03))
                }
            }

            Device (NMAC)
            {
                Name (_ADR, 0x00110000)
                Name (_PRW, Package (0x02)
                {
                    0x0B,
                    0x05
                })
                Scope (\_GPE)
                {
                    Method (_L0B, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.NMAC, 0x02)
                        Notify (\_SB.PWRB, 0x02)
                    }
                }
            }

            Device (NMAD)
            {
                Name (_ADR, 0x00120000)
                Name (_PRW, Package (0x02)
                {
                    0x0A,
                    0x05
                })
                Scope (\_GPE)
                {
                    Method (_L0A, 0, NotSerialized)
                    {
                        Notify (\_SB.PCI0.NMAD, 0x02)
                        Notify (\_SB.PWRB, 0x02)
                    }
                }
            }

            Device (IDE0)
            {
                Name (_ADR, 0x000D0000)
                Name (PTS0, Zero)
                Name (SID0, Zero)
                Name (SID1, Zero)
                Name (SID2, Zero)
                Name (SID3, Zero)
                Name (SID4, Zero)
                Name (SID5, Zero)
                OperationRegion (IRQM, SystemIO, 0x21, One)
                Field (IRQM, ByteAcc, NoLock, Preserve)
                {
                    IR0M,   1
                }

                Name (REGF, One)
                Method (_REG, 2, NotSerialized)
                {
                    If (LEqual (Arg0, 0x02))
                    {
                        Store (Arg1, REGF)
                    }
                }

                OperationRegion (A090, PCI_Config, 0x50, 0x18)
                Field (A090, DWordAcc, NoLock, Preserve)
                {
                    ID20,   16,
                            Offset (0x08),
                    IDTS,   16,
                    IDTP,   16,
                    ID22,   32,
                    UMSS,   16,
                    UMSP,   16
                }

                Name (TIM0, Package (0x07)
                {
                    Package (0x05)
                    {
                        0x3C,
                        0x78,
                        0xB4,
                        0xF0,
                        0x0384
                    },

                    Package (0x05)
                    {
                        0x11,
                        0x20,
                        0x22,
                        0x47,
                        0xA8
                    },

                    Package (0x07)
                    {
                        0x78,
                        0x49,
                        0x3C,
                        0x2D,
                        0x1E,
                        0x14,
                        0x0F
                    },

                    Package (0x05)
                    {
                        0x05,
                        0x04,
                        0x03,
                        0x02,
                        Zero
                    },

                    Package (0x04)
                    {
                        0x02,
                        One,
                        Zero,
                        Zero
                    },

                    Package (0x08)
                    {
                        0x02,
                        One,
                        Zero,
                        Zero,
                        0x03,
                        0x04,
                        0x05,
                        0x06
                    },

                    Package (0x07)
                    {
                        0x02,
                        One,
                        Zero,
                        0x04,
                        0x05,
                        0x06,
                        0x07
                    }
                })
                Name (TMD0, Buffer (0x14) {})
                CreateDWordField (TMD0, Zero, PIO0)
                CreateDWordField (TMD0, 0x04, DMA0)
                CreateDWordField (TMD0, 0x08, PIO1)
                CreateDWordField (TMD0, 0x0C, DMA1)
                CreateDWordField (TMD0, 0x10, CHNF)
                OperationRegion (CFG2, PCI_Config, 0x58, 0x0C)
                Field (CFG2, DWordAcc, NoLock, Preserve)
                {
                    SSPT,   8,
                    SMPT,   8,
                    PSPT,   8,
                    PMPT,   8,
                    SSAS,   2,
                    SMAS,   2,
                    PSAS,   2,
                    PMAS,   2,
                            Offset (0x06),
                    SDDR,   4,
                    SDDA,   4,
                    PDDR,   4,
                    PDDA,   4,
                    SSUT,   3,
                        ,   3,
                    SSUE,   2,
                    SMUT,   3,
                        ,   3,
                    SMUE,   2,
                    PSUT,   3,
                        ,   3,
                    PSUE,   2,
                    PMUT,   3,
                        ,   3,
                    PMUE,   2
                }

                Name (GMPT, Zero)
                Name (GMUE, Zero)
                Name (GMUT, Zero)
                Name (GSPT, Zero)
                Name (GSUE, Zero)
                Name (GSUT, Zero)
                Device (CHN0)
                {
                    Name (_ADR, Zero)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store ("GTM_CHN0", Debug)
                        Return (GTM (PMPT, PMUE, PMUT, PSPT, PSUE, PSUT))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store ("STM_CHN0", Debug)
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        Store (PMPT, GMPT)
                        Store (PMUE, GMUE)
                        Store (PMUT, GMUT)
                        Store (PSPT, GSPT)
                        Store (PSUE, GSUE)
                        Store (PSUT, GSUT)
                        STM ()
                        Store (GMPT, PMPT)
                        Store (GMUE, PMUE)
                        Store (GMUT, PMUT)
                        Store (GSPT, PSPT)
                        Store (GSUE, PSUE)
                        Store (GSUT, PSUT)
                        Store (GTF (Zero, Arg1), ATA0)
                        Store (GTF (One, Arg2), ATA1)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN0_DRV0", Debug)
                            Return (Concatenate (RATA (ATA0), FZTF))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN0_DRV1", Debug)
                            Return (Concatenate (RATA (ATA1), FZTF))
                        }
                    }
                }

                Device (CHN1)
                {
                    Name (_ADR, One)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Store ("GTM_CHN1", Debug)
                        Return (GTM (SMPT, SMUE, SMUT, SSPT, SSUE, SSUT))
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, Debug)
                        Store (Arg0, TMD0)
                        Store (SMPT, GMPT)
                        Store (SMUE, GMUE)
                        Store (SMUT, GMUT)
                        Store (SSPT, GSPT)
                        Store (SSUE, GSUE)
                        Store (SSUT, GSUT)
                        STM ()
                        Store (GMPT, SMPT)
                        Store (GMUE, SMUE)
                        Store (GMUT, SMUT)
                        Store (GSPT, SSPT)
                        Store (GSUE, SSUE)
                        Store (GSUT, SSUT)
                        Store (GTF (Zero, Arg1), ATA2)
                        Store (GTF (One, Arg2), ATA3)
                    }

                    Device (DRV0)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN1_DRV0", Debug)
                            Return (Concatenate (RATA (ATA2), FZTF))
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, One)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Store ("_GTF_CHN1_DRV1", Debug)
                            Return (Concatenate (RATA (ATA3), FZTF))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    ShiftRight (CPB0, 0x04, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }

                Method (GTM, 6, Serialized)
                {
                    Store (Ones, PIO0)
                    Store (Ones, PIO1)
                    Store (Ones, DMA0)
                    Store (Ones, DMA1)
                    Store (0x10, CHNF)
                    If (REGF) {}
                    Else
                    {
                        Return (TMD0)
                    }

                    If (LEqual (PTS0, One))
                    {
                        If (OSFL ())
                        {
                            Store (One, IR0M)
                        }
                    }

                    Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR,
                        Zero, Zero), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0,
Zero)), Local6)),
                        Local7)
                    Store (Local7, DMA0)
                    Store (Local7, PIO0)
                    Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg3, MTR,
                        Zero, Zero), Local6)
                    Store (DerefOf (Index (DerefOf (Index (TIM0,
Zero)), Local6)),
                        Local7)
                    Store (Local7, DMA1)
                    Store (Local7, PIO1)
                    If (Arg1)
                    {
                        Store (DerefOf (Index (DerefOf (Index (TIM0,
0x05)), Arg2)),
                            Local5)
                        Store (DerefOf (Index (DerefOf (Index (TIM0,
0x02)), Local5)),
                            DMA0)
                        Or (CHNF, One, CHNF)
                    }

                    If (Arg4)
                    {
                        Store (DerefOf (Index (DerefOf (Index (TIM0,
0x05)), Arg5)),
                            Local5)
                        Store (DerefOf (Index (DerefOf (Index (TIM0,
0x02)), Local5)),
                            DMA1)
                        Or (CHNF, 0x04, CHNF)
                    }

                    Store (TMD0, Debug)
                    Return (TMD0)
                }

                Method (STM, 0, Serialized)
                {
                    If (REGF) {}
                    Else
                    {
                        Return (Zero)
                    }

                    If (PTS0)
                    {
                        Store (SID0, ID20)
                        Store (SID1, IDTS)
                        Store (SID2, IDTP)
                        Store (SID3, ID22)
                        Store (SID4, UMSS)
                        Store (SID5, UMSP)
                    }
                    Else
                    {
                        Store (ID20, SID0)
                        Store (IDTS, SID1)
                        Store (IDTP, SID2)
                        Store (ID22, SID3)
                        Store (UMSS, SID4)
                        Store (UMSP, SID5)
                    }

                    Store (Zero, PTS0)
                    Store (Zero, GMUE)
                    Store (Zero, GMUT)
                    Store (Zero, GSUE)
                    Store (Zero, GSUT)
                    If (And (CHNF, One))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x02)),
MLE, DMA0, MTR,
                            Zero, Zero), Local0)
                        If (LGreater (Local0, 0x06))
                        {
                            Store (0x06, Local0)
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0,
0x06)), Local0)),
                            GMUT)
                        Or (GMUE, 0x03, GMUE)
                    }
                    Else
                    {
                        If (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero)))
                        {
                            If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero)))
                            {
                                Store (DMA0, PIO0)
                            }
                        }
                    }

                    If (And (CHNF, 0x04))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x02)),
MLE, DMA1, MTR,
                            Zero, Zero), Local0)
                        If (LGreater (Local0, 0x06))
                        {
                            Store (0x06, Local0)
                        }

                        Store (DerefOf (Index (DerefOf (Index (TIM0,
0x06)), Local0)),
                            GSUT)
                        Or (GSUE, 0x03, GSUE)
                    }
                    Else
                    {
                        If (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero)))
                        {
                            If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero)))
                            {
                                Store (DMA1, PIO1)
                            }
                        }
                    }

                    And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR,
                        Zero, Zero), 0x07, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0,
One)), Local0)),
                        Local1)
                    Store (Local1, GMPT)
                    And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR,
                        Zero, Zero), 0x07, Local0)
                    Store (DerefOf (Index (DerefOf (Index (TIM0,
One)), Local0)),
                        Local1)
                    Store (Local1, GSPT)
                    Return (Zero)
                }

                Name (AT01, Buffer (0x07)
                {
                    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF
                })
                Name (AT02, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
                })
                Name (AT03, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6
                })
                Name (AT04, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91
                })
                Name (ATA0, Buffer (0x1D) {})
                Name (ATA1, Buffer (0x1D) {})
                Name (ATA2, Buffer (0x1D) {})
                Name (ATA3, Buffer (0x1D) {})
                Name (ATAB, Buffer (0x1D) {})
                CreateByteField (ATAB, Zero, CMDC)
                Method (GTFB, 3, Serialized)
                {
                    Multiply (CMDC, 0x38, Local0)
                    Add (Local0, 0x08, Local1)
                    CreateField (ATAB, Local1, 0x38, CMDX)
                    Multiply (CMDC, 0x07, Local0)
                    CreateByteField (ATAB, Add (Local0, 0x02), A001)
                    CreateByteField (ATAB, Add (Local0, 0x06), A005)
                    Store (Arg0, CMDX)
                    Store (Arg1, A001)
                    Store (Arg2, A005)
                    Increment (CMDC)
                }

                Method (GTF, 2, Serialized)
                {
                    Store ("GTF_Entry", Debug)
                    Store (Arg1, Debug)
                    Store (Zero, CMDC)
                    Name (ID49, 0x0C00)
                    Name (ID59, Zero)
                    Name (ID53, 0x04)
                    Name (ID63, 0x0F00)
                    Name (ID88, 0x0F00)
                    Name (IRDY, One)
                    Name (PIOT, Zero)
                    Name (DMAT, Zero)
                    If (LEqual (SizeOf (Arg1), 0x0200))
                    {
                        CreateWordField (Arg1, 0x62, IW49)
                        Store (IW49, ID49)
                        CreateWordField (Arg1, 0x6A, IW53)
                        Store (IW53, ID53)
                        CreateWordField (Arg1, 0x7E, IW63)
                        Store (IW63, ID63)
                        CreateWordField (Arg1, 0x76, IW59)
                        Store (IW59, ID59)
                        CreateWordField (Arg1, 0xB0, IW88)
                        Store (IW88, ID88)
                    }

                    Store (0xA0, Local7)
                    If (Arg0)
                    {
                        Store (0xB0, Local7)
                        And (CHNF, 0x08, IRDY)
                        If (And (CHNF, 0x10))
                        {
                            Store (PIO1, PIOT)
                        }
                        Else
                        {
                            Store (PIO0, PIOT)
                        }

                        If (And (CHNF, 0x04))
                        {
                            If (And (CHNF, 0x10))
                            {
                                Store (DMA1, DMAT)
                            }
                            Else
                            {
                                Store (DMA0, DMAT)
                            }
                        }
                    }
                    Else
                    {
                        And (CHNF, 0x02, IRDY)
                        Store (PIO0, PIOT)
                        If (And (CHNF, One))
                        {
                            Store (DMA0, DMAT)
                        }
                    }

                    If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00
                        )), DMAT))
                    {
                        Store (Match (DerefOf (Index (TIM0, 0x02)),
MLE, DMAT, MTR,
                            Zero, Zero), Local1)
                        If (LGreater (Local1, 0x06))
                        {
                            Store (0x06, Local1)
                        }

                        GTFB (AT01, Or (0x40, Local1), Local7)
                    }
                    Else
                    {
                        If (LAnd (And (ID63, 0xFF00), PIOT))
                        {
                            And (Match (DerefOf (Index (TIM0, Zero)),
MGE, PIOT, MTR,
                                Zero, Zero), 0x03, Local0)
                            Or (0x20, DerefOf (Index (DerefOf (Index
(TIM0, 0x04)), Local0
                                )), Local1)
                            GTFB (AT01, Local1, Local7)
                        }
                    }

                    If (IRDY)
                    {
                        And (Match (DerefOf (Index (TIM0, Zero)), MGE,
PIOT, MTR,
                            Zero, Zero), 0x07, Local0)
                        Or (0x08, DerefOf (Index (DerefOf (Index
(TIM0, 0x03)), Local0
                            )), Local1)
                        GTFB (AT01, Local1, Local7)
                    }
                    Else
                    {
                        If (And (ID49, 0x0400))
                        {
                            GTFB (AT01, One, Local7)
                        }
                    }

                    If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF)))
                    {
                        GTFB (AT03, And (ID59, 0xFF), Local7)
                    }

                    Store ("ATAB_GTF", Debug)
                    Store (ATAB, Debug)
                    Return (ATAB)
                }

                Method (RATA, 1, NotSerialized)
                {
                    CreateByteField (Arg0, Zero, CMDN)
                    Multiply (CMDN, 0x38, Local0)
                    CreateField (Arg0, 0x08, Local0, RETB)
                    Store (RETB, Debug)
                    Return (RETB)
                }
            }

            Device (ATA0)
            {
                Name (_ADR, 0x000E0000)
                Device (PRI0)
                {
                    Name (_ADR, Zero)
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x00,
                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (SSEN)
                            {
                                Store (SSEP, SMIP)
                            }

                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, One)
                    Name (SSTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x00,
                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (SSEN)
                            {
                                Store (SSEP, SMIP)
                            }

                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Store (0x10, Local0)
                    If (LEqual (And (_ADR, 0x0F), One))
                    {
                        Store (0x0C, Local0)
                    }

                    If (LEqual (And (_ADR, 0x0F), Zero))
                    {
                        Store (0x08, Local0)
                    }

                    ShiftRight (CPB0, Local0, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }
            }

            Device (ATA1)
            {
                Name (_ADR, 0x000E0001)
                Device (PRI0)
                {
                    Name (_ADR, Zero)
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x00,
                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (SSEN)
                            {
                                Store (SSEP, SMIP)
                            }

                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, One)
                    Name (SSTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x00,
                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (SSEN)
                            {
                                Store (SSEP, SMIP)
                            }

                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Store (0x10, Local0)
                    If (LEqual (And (_ADR, 0x0F), One))
                    {
                        Store (0x0C, Local0)
                    }

                    If (LEqual (And (_ADR, 0x0F), Zero))
                    {
                        Store (0x08, Local0)
                    }

                    ShiftRight (CPB0, Local0, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }
            }

            Device (ATA2)
            {
                Name (_ADR, 0x000E0002)
                Device (PRI0)
                {
                    Name (_ADR, Zero)
                    Name (SPTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x00,
                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SPTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (SSEN)
                            {
                                Store (SSEP, SMIP)
                            }

                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Device (SEC0)
                {
                    Name (_ADR, One)
                    Name (SSTM, Buffer (0x14)
                    {
                        /* 0000 */    0x78, 0x00, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x00,
                        /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
                        /* 0010 */    0x13, 0x00, 0x00, 0x00
                    })
                    Method (_GTM, 0, NotSerialized)
                    {
                        Return (SSTM)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        Store (Arg0, SSTM)
                    }

                    Device (MAST)
                    {
                        Name (_ADR, Zero)
                        Method (_GTF, 0, NotSerialized)
                        {
                            If (SSEN)
                            {
                                Store (SSEP, SMIP)
                            }

                            Store (Buffer (0x07)
                                {
                                    0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF
                                }, Local0)
                            Return (Concatenate (Local0, FZTF))
                        }
                    }
                }

                Method (DRMP, 0, NotSerialized)
                {
                    Store (0x10, Local0)
                    If (LEqual (And (_ADR, 0x0F), One))
                    {
                        Store (0x0C, Local0)
                    }

                    If (LEqual (And (_ADR, 0x0F), Zero))
                    {
                        Store (0x08, Local0)
                    }

                    ShiftRight (CPB0, Local0, Local1)
                    And (Local1, 0x0F, Local0)
                    Return (Local0)
                }
            }

            Device (P0P1)
            {
                Name (_ADR, 0x000F0000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (Zero, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR01)
                    }

                    Return (PR01)
                }
            }

            Device (HDAC)
            {
                Name (_ADR, 0x000F0001)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x15, 0x04))
                }
            }

            Device (BR10)
            {
                Name (_ADR, 0x00180000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR10)
                    }

                    Return (PR10)
                }
            }

            Device (BR11)
            {
                Name (_ADR, 0x00170000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR11)
                    }

                    Return (PR11)
                }
            }

            Device (BR12)
            {
                Name (_ADR, 0x00160000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR12)
                    }

                    Return (PR12)
                }
            }

            Device (BR13)
            {
                Name (_ADR, 0x00150000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR13)
                    }

                    Return (PR13)
                }
            }

            Device (BR14)
            {
                Name (_ADR, 0x00140000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR14)
                    }

                    Return (PR14)
                }
            }

            Device (BR15)
            {
                Name (_ADR, 0x00130000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR15)
                    }

                    Return (PR15)
                }
            }

            Device (P0P8)
            {
                Name (_ADR, 0x00020000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR08)
                    }

                    Return (PR08)
                }
            }

            Device (P0PA)
            {
                Name (_ADR, 0x00030000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0A)
                    }

                    Return (PR0A)
                }
            }

            Device (P0PB)
            {
                Name (_ADR, 0x00040000)
                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x11, 0x04))
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0B)
                    }

                    Return (PR0B)
                }
            }

            Device (P0PC)
            {
                Name (_ADR, 0x00050000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0C)
                    }

                    Return (PR0C)
                }
            }

            Device (P0PD)
            {
                Name (_ADR, 0x00060000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0D)
                    }

                    Return (PR0D)
                }
            }

            Device (USB0)
            {
                Name (_ADR, 0x000B0000)
                Name (_S1D, One)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
                    {
                        Return (0x02)
                    }
                    Else
                    {
                        Return (0x03)
                    }
                }

                Method (_PRW, 0, NotSerialized)
                {
                    Return (GPRW (0x0D, 0x04))
                }
            }
        }

        Scope (\_GPE)
        {
            Method (_L10, 0, NotSerialized)
            {
                \_SB.PCI0.SBRG.SIOH ()
            }

            Method (_L03, 0, NotSerialized)
            {
                \_SB.PCI0.SBRG.SIOH ()
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L09, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.NSMB, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L05, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB2, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L00, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.P0P1, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L15, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.HDAC, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L11, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.BR10, 0x02)
                Notify (\_SB.PCI0.BR11, 0x02)
                Notify (\_SB.PCI0.BR12, 0x02)
                Notify (\_SB.PCI0.BR13, 0x02)
                Notify (\_SB.PCI0.BR14, 0x02)
                Notify (\_SB.PCI0.BR15, 0x02)
                Notify (\_SB.PCI0.P0P8, 0x02)
                Notify (\_SB.PCI0.P0PB, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }

            Method (_L0D, 0, NotSerialized)
            {
                Notify (\_SB.PCI0.USB0, 0x02)
                Notify (\_SB.PWRB, 0x02)
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_UID, 0xAA)
            Name (_STA, 0x0B)
            Method (_PRW, 0, NotSerialized)
            {
                Return (GPRW (0x03, 0x04))
            }
        }
    }

    Scope (_SB)
    {
        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {15}
        })
        CreateWordField (BUFA, One, ICRS)
        Method (LSTA, 1, NotSerialized)
        {
            If (Arg0)
            {
                Return (0x0B)
            }
            Else
            {
                Return (0x09)
            }
        }

        Method (LPRS, 2, NotSerialized)
        {
            If (PICM)
            {
                Return (Arg1)
            }
            Else
            {
                Return (Arg0)
            }
        }

        Method (LCRS, 1, NotSerialized)
        {
            If (PICM)
            {
                Name (BUFB, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow,
Shared, ,, _Y21)
                    {
                        0x00000011,
                    }
                })
                CreateByteField (BUFB, \_SB.LCRS._Y21._INT, AIRQ)
                Store (Arg0, AIRQ)
                If (LEqual (Arg0, One))
                {
                    Store (0x17, AIRQ)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x16, AIRQ)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Store (0x10, AIRQ)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Store (0x11, AIRQ)
                }

                If (LEqual (Arg0, 0x06))
                {
                    Store (0x12, AIRQ)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, AIRQ)
                }

                If (LEqual (Arg0, 0x0C))
                {
                    Store (0x13, AIRQ)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x15, AIRQ)
                }

                Return (BUFB)
            }
            Else
            {
                ShiftLeft (One, Arg0, ICRS)
                Return (BUFA)
            }
        }

        Method (LCRO, 1, NotSerialized)
        {
            If (PICM)
            {
                Name (BUFB, ResourceTemplate ()
                {
                    Interrupt (ResourceConsumer, Level, ActiveLow,
Shared, ,, _Y22)
                    {
                        0x00000014,
                    }
                })
                CreateByteField (BUFB, \_SB.LCRO._Y22._INT, AIRQ)
                Store (Arg0, AIRQ)
                If (LEqual (Arg0, One))
                {
                    Store (0x17, AIRQ)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Store (0x16, AIRQ)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Store (0x10, AIRQ)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Store (0x11, AIRQ)
                }

                If (LEqual (Arg0, 0x06))
                {
                    Store (0x12, AIRQ)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (0x14, AIRQ)
                }

                If (LEqual (Arg0, 0x0C))
                {
                    Store (0x13, AIRQ)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (0x15, AIRQ)
                }

                Return (BUFB)
            }
            Else
            {
                ShiftLeft (One, Arg0, ICRS)
                Return (BUFA)
            }
        }

        Method (LSRS, 1, NotSerialized)
        {
            If (PICM)
            {
                CreateByteField (Arg0, 0x05, SAIR)
                Store (SAIR, Local0)
                If (LEqual (Local0, 0x17))
                {
                    Store (One, Local0)
                }

                If (LEqual (Local0, 0x16))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (Local0, 0x10))
                {
                    Store (0x03, Local0)
                }

                If (LEqual (Local0, 0x11))
                {
                    Store (0x04, Local0)
                }

                If (LEqual (Local0, 0x12))
                {
                    Store (0x06, Local0)
                }

                If (LEqual (Local0, 0x14))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (Local0, 0x13))
                {
                    Store (0x0C, Local0)
                }

                If (LEqual (Local0, 0x15))
                {
                    Store (0x0D, Local0)
                }

                Return (Local0)
            }
            Else
            {
                CreateWordField (Arg0, One, ISRS)
                FindSetRightBit (ISRS, Local0)
                Return (Decrement (Local0))
            }
        }

        Method (LSRO, 1, NotSerialized)
        {
            If (PICM)
            {
                CreateByteField (Arg0, 0x05, SAIR)
                Store (SAIR, Local0)
                If (LEqual (Local0, 0x14))
                {
                    Store (0x08, Local0)
                }

                If (LEqual (Local0, 0x15))
                {
                    Store (0x0D, Local0)
                }

                If (LEqual (Local0, 0x16))
                {
                    Store (0x02, Local0)
                }

                If (LEqual (Local0, 0x17))
                {
                    Store (One, Local0)
                }

                Return (Local0)
            }
            Else
            {
                CreateWordField (Arg0, One, ISRS)
                FindSetRightBit (ISRS, Local0)
                Return (Decrement (Local0))
            }
        }

        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, One)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIRA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIRA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PIRA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PIRA)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x02)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIRB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIRB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PIRB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PIRB)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x03)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIRC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIRC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PIRC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PIRC)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x04)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIRD))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIRD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PIRD))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PIRD)
            }
        }

        Device (LNEA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x05)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PREA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSA, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PREA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PREA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PREA)
            }
        }

        Device (LNEB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x06)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PREB))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSB, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PREB)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PREB))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PREB)
            }
        }

        Device (LNEC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x07)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PREC))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSC, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PREC)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PREC))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PREC)
            }
        }

        Device (LNED)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x08)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PRED))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (PRSD, RSIR))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PRED)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRS (^^PCI0.SBRG.PRED))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRS (Arg0), ^^PCI0.SBRG.PRED)
            }
        }

        Device (LUB0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x09)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIU0))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSB0, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIU0)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PIU0))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PIU0)
            }
        }

        Device (LMAD)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0A)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PILM))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSAD, RS20))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PILM)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PILM))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PILM)
            }
        }

        Device (LUB2)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0B)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIU2))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSB2, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIU2)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PIU2))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PIU2)
            }
        }

        Device (LMAC)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0C)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PILN))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSAC, RS20))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PILN)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PILN))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PILN)
            }
        }

        Device (LAZA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x0D)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PAZA))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSZA, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PAZA)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PAZA))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PAZA)
            }
        }

        Device (LSMB)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x10)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIRM))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSMB, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIRM)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PIRM))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PIRM)
            }
        }

        Device (LPMU)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x11)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PMUD))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSMU, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PMUD)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PMUD))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PMUD)
            }
        }

        Device (LSA0)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x12)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PIID))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSA0, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PIID)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.PIID))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), Local0)
                Store (Local0, ^^PCI0.SBRG.PIID)
            }
        }

        Device (LSA1)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x13)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.SIID))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSA1, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.SIID)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.SIID))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), Local0)
                Store (Local0, ^^PCI0.SBRG.SIID)
            }
        }

        Device (LATA)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x14)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.PR0E))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSTA, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.PR0E)
            }

            Method (_CRS, 0, NotSerialized)
            {
                If (OSFL ())
                {
                    Return (Zero)
                }
                Else
                {
                    Return (LCRO (^^PCI0.SBRG.PR0E))
                }
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), ^^PCI0.SBRG.PR0E)
            }
        }

        Device (LSA2)
        {
            Name (_HID, EisaId ("PNP0C0F"))
            Name (_UID, 0x15)
            Method (_STA, 0, NotSerialized)
            {
                Return (LSTA (^^PCI0.SBRG.SIR2))
            }

            Method (_PRS, 0, NotSerialized)
            {
                Return (LPRS (RSA2, RSII))
            }

            Method (_DIS, 0, NotSerialized)
            {
                Store (Zero, ^^PCI0.SBRG.SIR2)
            }

            Method (_CRS, 0, NotSerialized)
            {
                Return (LCRO (^^PCI0.SBRG.SIR2))
            }

            Method (_SRS, 1, NotSerialized)
            {
                Store (LSRO (Arg0), Local0)
                Store (Local0, ^^PCI0.SBRG.SIR2)
            }
        }
    }

    Scope (_SB)
    {
        Name (XCPD, Zero)
        Name (XNPT, One)
        Name (XCAP, 0x02)
        Name (XDCP, 0x04)
        Name (XDCT, 0x08)
        Name (XDST, 0x0A)
        Name (XLCP, 0x0C)
        Name (XLCT, 0x10)
        Name (XLST, 0x12)
        Name (XSCP, 0x14)
        Name (XSCT, 0x18)
        Name (XSST, 0x1A)
        Name (XRCT, 0x1C)
        Mutex (MUTE, 0x00)
        Method (RBPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, One)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RWPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RDPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (WBPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x0FFF)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, One)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WWPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WDPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (RWDP, 3, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PCIB, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            And (XCFG, Arg2, Local1)
            Or (Local1, Arg1, XCFG)
            Release (MUTE)
        }

        Method (RPME, 1, NotSerialized)
        {
            Add (Arg0, 0x84, Local0)
            Store (RDPE (Local0), Local1)
            If (LEqual (Local1, Ones))
            {
                Return (Zero)
            }
            Else
            {
                If (LAnd (Local1, 0x00010000))
                {
                    WDPE (Local0, And (Local1, 0x00010000))
                    Return (One)
                }

                Return (Zero)
            }
        }
    }

    Scope (_SB.PCI0)
    {
        Name (SUPP, Zero)
        Name (CTRL, Zero)
        Method (_OSC, 4, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */    0x5B, 0x4D, 0xDB, 0x33, 0xF7,
0x1F, 0x1C, 0x40,
                        /* 0008 */    0x96, 0x57, 0x74, 0x41, 0xC0,
0x3D, 0xD7, 0x66
                    }))
            {
                CreateDWordField (Arg3, Zero, CDW1)
                CreateDWordField (Arg3, 0x04, CDW2)
                CreateDWordField (Arg3, 0x08, CDW3)
                Store (CDW2, SUPP)
                Store (CDW3, CTRL)
                If (LNotEqual (And (SUPP, 0x16), 0x16))
                {
                    And (CTRL, 0x1E, CTRL)
                }

                And (CTRL, 0x1D, CTRL)
                If (Not (And (CDW1, One)))
                {
                    If (And (CTRL, One)) {}
                    If (And (CTRL, 0x04)) {}
                    If (And (CTRL, 0x10)) {}
                }

                If (LNotEqual (Arg1, One))
                {
                    Or (CDW1, 0x08, CDW1)
                }

                If (LNotEqual (CDW3, CTRL))
                {
                    Or (CDW1, 0x10, CDW1)
                }

                Store (CTRL, CDW3)
                Return (Arg3)
            }
            Else
            {
                Or (CDW1, 0x04, CDW1)
                Return (Arg3)
            }
        }
    }

    OperationRegion (SMRG, SystemIO, 0x2D00, 0x50)
    Field (SMRG, ByteAcc, NoLock, Preserve)
    {
        PRTC,   8,
        HSTS,   8,
        HADR,   8,
        HCMD,   8,
        HDT0,   8,
                Offset (0x3C),
        DAT1,   8,
        DAT2,   8
    }

    OperationRegion (S2RG, SystemIO, 0x2E00, 0x50)
    Field (S2RG, ByteAcc, NoLock, Preserve)
    {
        P2TC,   8,
        H2TS,   8,
        H2DR,   8,
        H2MD,   8,
        H2T0,   8,
                Offset (0x3C),
        D2T1,   8,
        D2T2,   8
    }

    Method (RBYT, 2, NotSerialized)
    {
        Return (And (SCMD (Arg0, Arg1, Zero, 0x07), 0xFF))
    }

    Method (WBYT, 3, NotSerialized)
    {
        Return (And (SCMD (Arg0, Arg1, Arg2, 0x06), 0xFF))
    }

    Method (R2BT, 2, NotSerialized)
    {
        Return (And (S2MD (Arg0, Arg1, Zero, 0x07), 0xFF))
    }

    Method (W2BT, 3, NotSerialized)
    {
        Return (And (S2MD (Arg0, Arg1, Arg2, 0x06), 0xFF))
    }

    Method (SCMD, 4, Serialized)
    {
        Store (0x1F, HSTS)
        Store (One, DAT1)
        Store (0x07, DAT2)
        Store (0x05, Local0)
        While (Local0)
        {
            Store (Arg0, HADR)
            Store (Arg3, PRTC)
            Store (Arg1, HCMD)
            If (LEqual (Arg3, 0x06))
            {
                Store (Arg2, HDT0)
            }

            Stall (0xFF)
            If (LNotEqual (HSTS, 0x80))
            {
                Decrement (Local0)
            }
            Else
            {
                If (LEqual (Arg3, 0x07))
                {
                    Return (HDT0)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }

        Return (Ones)
    }

    Method (S2MD, 4, Serialized)
    {
        Store (0x1F, H2TS)
        Store (One, D2T1)
        Store (0x07, D2T2)
        Store (0x05, Local0)
        While (Local0)
        {
            Store (Arg0, H2DR)
            Store (Arg3, P2TC)
            Store (Arg1, H2MD)
            If (LEqual (Arg3, 0x06))
            {
                Store (Arg2, H2T0)
            }

            Stall (0xFF)
            If (LNotEqual (H2TS, 0x80))
            {
                Decrement (Local0)
            }
            Else
            {
                If (LEqual (Arg3, 0x07))
                {
                    Return (H2T0)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }

        Return (Ones)
    }

    Method (SBYT, 2, NotSerialized)
    {
    }

    Method (WWRD, 3, NotSerialized)
    {
    }

    Method (RSBT, 2, NotSerialized)
    {
        Store (Zero, Local0)
        Return (Local0)
    }

    Method (RWRD, 2, NotSerialized)
    {
        Store (Zero, Local0)
        Return (Local0)
    }

    Method (WBLK, 4, NotSerialized)
    {
    }

    Method (RBLK, 3, NotSerialized)
    {
        Store (Zero, Local0)
        Return (Local0)
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (G0T0, Package (0x07)
        {
            0x00060000,
            "AP version",
            0x40000000,
            Zero,
            Zero,
            One,
            0x02
        })
        Name (G0T1, Package (0x07)
        {
            0x00060001,
            "Feature flag",
            0x40000000,
            Zero,
            Zero,
            One,
            0x08
        })
        Name (G0T2, Package (0x07)
        {
            0x00070002,
            "ASAP function",
            0x40000000,
            Zero,
            Zero,
            Zero,
            0x02
        })
        Name (G0T3, Package (0x07)
        {
            0x00070003,
            "AMD Cool&Quiet",
            0x20000000,
            Zero,
            Zero,
            Zero,
            0x02
        })
        Name (GRP0, Package (0x04)
        {
            G0T0,
            G0T1,
            G0T2,
            G0T3
        })
        Method (GIT0, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, Zero))
            {
                Store (Zero, ASB1)
            }
            Else
            {
                If (LEqual (_T_0, One))
                {
                    Store (One, ASB1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x02))
                    {
                        Store (0x02, ASB1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x03))
                        {
                            Store (0x03, ASB1)
                        }
                        Else
                        {
                            Store (Zero, ASB0)
                        }
                    }
                }
            }
        }

        Method (SIT0, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, Zero))
            {
                Store (0x0300, DBG8)
            }
            Else
            {
                If (LEqual (_T_0, One))
                {
                    Store (0x0301, DBG8)
                }
                Else
                {
                    If (LEqual (_T_0, 0x02))
                    {
                        Store (0x0302, DBG8)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x03))
                        {
                            Store (0x0303, DBG8)
                        }
                        Else
                        {
                            Store (Zero, ASB0)
                        }
                    }
                }
            }
        }
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (G3T0, Package (0x07)
        {
            0x03010011,
            "CPU Frequency",
            Zero,
            Zero,
            0x4E20,
            0x64,
            0x0259
        })
        Name (G3T2, Package (0x07)
        {
            0x03060013,
            "CPU Ratio",
            Zero,
            Zero,
            0x06,
            One,
            0x19
        })
        Name (G321, Package (0x09)
        {
            0x03820032,
            "DRAM Voltage",
            Zero,
            Zero,
            0x05DC,
            0x14,
            0x50,
            One,
            "Auto"
        })
        Name (G322, Package (0x10)
        {
            0x03080031,
            "DRAM Frequency",
            Zero,
            Zero,
            0x0B,
            "Auto",
            "800 MHz",
            "833 MHz",
            "886 MHz",
            "1000 MHz",
            "1067 MHz",
            "1111 MHz",
            "1333 MHz",
            "1600 MHz",
            "1800 MHz",
            "2000 MHz"
        })
        Name (G340, Package (0x09)
        {
            0x03810051,
            "PCIE Frequency",
            Zero,
            Zero,
            0x2710,
            0x64,
            0x33,
            One,
            "Auto"
        })
        Name (GRP3, Package (0x05)
        {
            G3T0,
            G3T2,
            G321,
            G322,
            G340
        })
        Name (IDEX, Zero)
        Method (GIT3, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x11))
            {
                Divide (GNVS (0x02A8), 0x04, , Local0)
                Subtract (Local0, 0xC8, ASB1)
            }
            Else
            {
                If (LEqual (_T_0, 0x13))
                {
                    If (LGreater (And (GCAX (One), 0x0FF0, Local0), 0x06F0))
                    {
                        Store (GMAX (0x2C), Local0)
                        And (ShiftRight (Local0, 0x08), 0xFF, Local2)
                        And (Local0, 0xFF, Local1)
                        Subtract (Local1, Local2, Local0)
                        Store (GMDX (0x0198), Local7)
                        And (ShiftRight (Local7, 0x08), 0xFF, Local7)
                        If (LLess (Local7, Local0))
                        {
                            Store (Local1, Local7)
                        }
                    }
                    Else
                    {
                        Store (GMDX (0x0198), Local0)
                        And (ShiftRight (Local0, 0x08), 0x1F, Local1)
                        Store (Local1, Local7)
                        Store (GMAX (0x0198), Local0)
                        And (ShiftRight (Local0, 0x18), 0x1F, Local0)
                    }

                    If (LEqual (GNVS (0x1660), Zero))
                    {
                        If (And (GMAX (0x17), 0x00800000))
                        {
                            Store (ShiftRight (And (GMAX (0x17),
0x4000), 0x0E), Local5)
                            Store (Subtract (Local7, Local0), Local4)
                            Multiply (Local4, 0x02, Local6)
                            Add (Local6, Local5, ASB1)
                        }
                        Else
                        {
                            Store (Subtract (Local7, Local0), ASB1)
                        }
                    }
                    Else
                    {
                        If (And (GMAX (0x17), 0x00800000))
                        {
                            Store (ShiftRight (And (GNVS (0x8298),
0x40), 0x06), Local5)
                            Store (Subtract (And (GNVS (0x8298),
0x1F), Local0), Local4)
                            Multiply (Local4, 0x02, Local6)
                            Add (Local6, Local5, ASB1)
                        }
                        Else
                        {
                            Store (Subtract (And (GNVS (0x8298),
0x1F), Local0), ASB1)
                        }
                    }

                    Store (ASB1, IDEX)
                }
                Else
                {
                    If (LEqual (_T_0, 0x31))
                    {
                        If (LEqual (GNVS (0x2350), 0x02))
                        {
                            Store (GNVS (0xC2D0), Local0)
                            Store (0x0A, Local1)
                            Store (Zero, Local2)
                            While (LNotEqual (Local1, Local2))
                            {
                                If (LEqual (Local0, DerefOf (Index
(MEMF, Local2))))
                                {
                                    Increment (Local2)
                                    Store (Local2, ASB1)
                                    Store (Local1, Local2)
                                    Store (One, Local0)
                                }
                                Else
                                {
                                    Increment (Local2)
                                }
                            }

                            If (LNotEqual (Local0, One))
                            {
                                Store (Zero, ASB1)
                            }

                            Store (One, ASB0)
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x32))
                        {
                            Store (GNVS (0x7388), Local0)
                            If (LEqual (Local0, Zero))
                            {
                                Store (Zero, ASB1)
                                Store (One, ASB0)
                            }
                            Else
                            {
                                Store (Local0, ASB1)
                                Store (One, ASB0)
                            }
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x51))
                            {
                                Store (GNVS (0x7370), Local0)
                                Increment (Local0)
                                Store (Local0, ASB1)
                                Store (One, ASB0)
                            }
                            Else
                            {
                                Store (Zero, ASB0)
                            }
                        }
                    }
                }
            }
        }

        Method (SIT3, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x11))
            {
                Store (Arg1, Local0)
                Add (Local0, 0xC8, Local0)
                If (LEqual (Arg1, Zero))
                {
                    Store (CPTP (), Local0)
                    Store (DerefOf (Index (CPFS, Local0)), Local0)
                }

                Or (ASB0, 0x02, ASB0)
                Multiply (Local0, 0x04, Local0)
                SNVS (0x02A8, Local0)
                SNVS (0x2360, Zero)
            }
            Else
            {
                If (LEqual (_T_0, 0x13))
                {
                    If (LNotEqual (IDEX, Arg1))
                    {
                        If (And (Arg2, One))
                        {
                            SNVS (0x35B3, 0x04)
                            SNVS (0x1660, One)
                            If (LGreater (And (GCAX (One), 0x0FF0,
Local0), 0x06F0))
                            {
                                Store (GMAX (0x2C), Local0)
                                And (ShiftRight (Local0, 0x08), 0xFF, Local2)
                                And (Local0, 0xFF, Local1)
                                Subtract (Local1, Local2, Local3)
                            }
                            Else
                            {
                                Store (GMDX (0x0198), Local0)
                                And (ShiftRight (Local0, 0x08), 0x1F, Local1)
                                Store (GMAX (0x0198), Local0)
                                And (ShiftRight (Local0, 0x18), 0x1F, Local3)
                            }

                            If (And (GMAX (0x17), 0x00800000))
                            {
                                Store (Arg1, Local2)
                                And (Local2, One, Local0)
                                ShiftRight (Local2, One, Arg1)
                                Add (Arg1, Local3, Arg1)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                                Add (Arg1, Local3, Arg1)
                            }

                            Or (Arg1, ShiftLeft (Local0, 0x06), Arg1)
                            SNVS (0x8298, Arg1)
                        }

                        Or (ASB0, 0x02, ASB0)
                    }
                }
                Else
                {
                    If (LEqual (_T_0, 0x32))
                    {
                        If (LNotEqual (GNVS (0x7388), Arg1))
                        {
                            If (And (Arg2, One))
                            {
                                SNVS (0x7388, Arg1)
                                W2BT (0x3C, Zero, Arg1)
                                W2BT (0x3C, One, One)
                                W2BT (0x3C, 0x02, One)
                                W2BT (0x3C, 0x40, One)
                            }
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x31))
                        {
                            If (LNotEqual (Arg1, Zero))
                            {
                                Subtract (Arg1, One, Local0)
                                Store (DerefOf (Index (MEMF, Local0)), Local0)
                                If (And (Arg2, One))
                                {
                                    SNVS (0x2350, 0x02)
                                    SNVS (0xC2D0, Local0)
                                    SNVS (0xC2F0, Local0)
                                }

                                Or (ASB0, 0x02, ASB0)
                            }
                            Else
                            {
                                If (And (Arg2, One))
                                {
                                    SNVS (0x2350, Zero)
                                }

                                Or (ASB0, 0x02, ASB0)
                            }
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x51))
                            {
                                If (LNotEqual (GNVS (0x7370), Arg1))
                                {
                                    If (And (Arg2, One))
                                    {
                                        Decrement (Arg1)
                                        SNVS (0x7370, Arg1)
                                    }

                                    Or (ASB0, 0x02, ASB0)
                                }
                            }
                            Else
                            {
                                Store (Zero, ASB0)
                            }
                        }
                    }
                }
            }
        }

        Name (CPFS, Package (0x04)
        {
            0xC8,
            0x010B,
            0x014D,
            0x0190
        })
        Name (MEMF, Package (0x0A)
        {
            0x0320,
            0x0341,
            0x0376,
            0x03E8,
            0x042B,
            0x0457,
            0x0535,
            0x0640,
            0x0708,
            0x07D0
        })
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (G4T0, Package (0x04)
        {
            0x04070010,
            "CPU Q-FAN Control",
            0x80000000,
            Zero
        })
        Name (G4T1, Package (0x08)
        {
            0x04080011,
            "CPU Q-FAN Profile",
            0x00100001,
            Zero,
            0x03,
            "Performance",
            "Optimal",
            "Silent"
        })
        Name (G420, Package (0x04)
        {
            0x04070070,
            "Chassis Q-FAN Control",
            0x80000000,
            Zero
        })
        Name (G421, Package (0x0A)
        {
            0x04080071,
            "Chassis FAN Ratio",
            0x00700001,
            Zero,
            0x05,
            "Auto",
            "90%",
            "80%",
            "70%",
            "60%"
        })
        Name (GRP4, Package (0x04)
        {
            G4T0,
            G4T1,
            G420,
            G421
        })
        Method (GIT4, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x10))
            {
                Store (GNVS (0x16A5), ASB1)
            }
            Else
            {
                If (LEqual (_T_0, 0x11))
                {
                    Store (GNVS (0x261E), ASB1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x70))
                    {
                        Store (GNVS (0x16A6), ASB1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x71))
                        {
                            Store (GNVS (0x35D8), ASB1)
                        }
                        Else
                        {
                            Store (Zero, ASB0)
                        }
                    }
                }
            }
        }

        Method (SIT4, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x10))
            {
                If (LNotEqual (GNVS (0x16A5), Arg1))
                {
                    If (And (Arg2, One))
                    {
                        SNVS (0x16A5, Arg1)
                        Store (0x77, PAR0)
                        ISMI (0x88)
                    }
                }
            }
            Else
            {
                If (LEqual (_T_0, 0x11))
                {
                    If (LNotEqual (GNVS (0x261E), Arg1))
                    {
                        If (And (Arg2, One))
                        {
                            SNVS (0x261E, Arg1)
                            Store (0x77, PAR0)
                            ISMI (0x88)
                        }
                    }
                }
                Else
                {
                    If (LEqual (_T_0, 0x70))
                    {
                        If (LNotEqual (GNVS (0x16A6), Arg1))
                        {
                            If (And (Arg2, One))
                            {
                                SNVS (0x16A6, Arg1)
                                Store (0x78, PAR0)
                                ISMI (0x88)
                            }
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x71))
                        {
                            If (LNotEqual (GNVS (0x35D8), Arg1))
                            {
                                If (And (Arg2, One))
                                {
                                    Store (Arg1, DBG8)
                                    SNVS (0x35D8, Arg1)
                                    Store (0x78, PAR0)
                                    ISMI (0x88)
                                }
                            }
                        }
                        Else
                        {
                            Store (Zero, ASB0)
                        }
                    }
                }
            }
        }
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (G6T1, Package (0x07)
        {
            0x06020011,
            "Vcore Voltage",
            0x20000000,
            Zero,
            0x0352,
            0x02EE,
            0x02
        })
        Name (G6T2, Package (0x07)
        {
            0x06030012,
            "CPU Temperature",
            0x20000000,
            Zero,
            0x0258,
            0x015E,
            0x02
        })
        Name (G6T3, Package (0x07)
        {
            0x06040013,
            "CPU FAN Speed",
            0x20000000,
            Zero,
            0x0258,
            0x1900,
            0x02
        })
        Name (G6T4, Package (0x07)
        {
            0x06040073,
            "Chassis FAN Speed",
            0x20000000,
            Zero,
            0x0258,
            0x1900,
            0x02
        })
        Name (G6T5, Package (0x07)
        {
            0x060400C3,
            "Power FAN Speed",
            0x20000000,
            Zero,
            0x0258,
            0x1900,
            0x02
        })
        Name (G6T6, Package (0x07)
        {
            0x06020061,
            "+12V Voltage",
            0x20000000,
            0x2EE0,
            0x27D8,
            0x0E10,
            0x02
        })
        Name (G6T7, Package (0x07)
        {
            0x06020062,
            "+5V Voltage",
            0x20000000,
            0x1388,
            0x1194,
            0x03E8,
            0x02
        })
        Name (G6T8, Package (0x07)
        {
            0x06020063,
            "+3.3V Voltage",
            0x20000000,
            0x0CE4,
            0x0B9A,
            0x0294,
            0x02
        })
        Name (G6T9, Package (0x07)
        {
            0x06030074,
            "MB Temperature",
            0x20000000,
            Zero,
            0x01C2,
            0x01F4,
            0x02
        })
        Name (GRP6, Package (0x09)
        {
            G6T1,
            G6T2,
            G6T3,
            G6T4,
            G6T5,
            G6T6,
            G6T7,
            G6T8,
            G6T9
        })
        Method (GIT6, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x11))
            {
                Multiply (^^SIOR.HWV0 (), ASB1)
            }
            Else
            {
                If (LEqual (_T_0, 0x12))
                {
                    Store (^^SIOR.HWT1 (), ASB1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x13))
                    {
                        Store (^^SIOR.HWF1 (), ASB1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x73))
                        {
                            Store (^^SIOR.HWF2 (), ASB1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0xC3))
                            {
                                Store (^^SIOR.HWF3 (), ASB1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x61))
                                {
                                    Multiply (^^SIOR.HWV4 (), ASB1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x62))
                                    {
                                        Multiply (^^SIOR.HWV3 (), ASB1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x63))
                                        {
                                            Multiply (^^SIOR.HWV1 (), ASB1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x74))
                                            {
                                                Store (^^SIOR.HWT2 (), ASB1)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        Method (SIT6, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x11))
            {
                Multiply (^^SIOR.HWV0 (), ASB1)
            }
            Else
            {
                If (LEqual (_T_0, 0x12))
                {
                    Store (^^SIOR.HWT1 (), ASB1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x13))
                    {
                        Store (^^SIOR.HWF1 (), ASB1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x73))
                        {
                            Store (^^SIOR.HWF2 (), ASB1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0xC3))
                            {
                                Store (^^SIOR.HWF3 (), ASB1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x61))
                                {
                                    Multiply (^^SIOR.HWV4 (), ASB1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x62))
                                    {
                                        Multiply (^^SIOR.HWV3 (), ASB1)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x63))
                                        {
                                            Multiply (^^SIOR.HWV1 (), ASB1)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x74))
                                            {
                                                Store (^^SIOR.HWT2 (), ASB1)
                                            }
                                            Else
                                            {
                                                Store (Zero, ASB0)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (G9T0, Package (0x0B)
        {
            0x09080000,
            "AI Overclocking",
            Zero,
            One,
            0x06,
            "Manual",
            "Auto",
            "Standard",
            Zero,
            "N.O.S.",
            Zero
        })
        Name (GRP9, Package (0x01)
        {
            G9T0
        })
        Method (GIT9, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, Zero))
            {
                Store (GNVS (0x2350), Local0)
                Store (GNVS (0x4358), Local1)
                Name (_T_1, Zero)
                Store (Or (Local0, Local1, Local0), _T_1)
                If (LEqual (_T_1, Zero))
                {
                    Store (One, ASB1)
                }
                Else
                {
                    Store (Zero, ASB1)
                }

                Store (One, ASB0)
            }
            Else
            {
                Store (Zero, ASB0)
            }
        }

        Method (SIT9, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, Zero))
            {
                Name (_T_1, Zero)
                Store (And (Arg1, 0x0F), _T_1)
                If (LEqual (_T_1, Zero))
                {
                    If (LNotEqual (GNVS (0x2350), One))
                    {
                        If (And (Arg2, One))
                        {
                            If (LNotEqual (GNVS (0x2350), 0x02))
                            {
                                SNVS (0x2350, One)
                            }
                        }
                    }
                }
                Else
                {
                    If (LEqual (_T_1, One))
                    {
                        If (LNotEqual (GNVS (0x2350), Zero))
                        {
                            If (And (Arg2, One))
                            {
                                SNVS (0x2350, Zero)
                            }

                            Or (ASB0, 0x02, ASB0)
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_1, 0x02))
                        {
                            If (LNotEqual (GNVS (0x2350), Zero))
                            {
                                If (And (Arg2, One))
                                {
                                    SNVS (0x2350, Zero)
                                }

                                Or (ASB0, 0x02, ASB0)
                            }
                        }
                        Else
                        {
                            Store (Zero, ASB0)
                        }
                    }
                }
            }
            Else
            {
                Store (Zero, ASB0)
            }
        }

        Method (RTAM, 0, NotSerialized)
        {
            Store (0xC1, DBG8)
            Store (CPTP (), Local0)
            Store (DerefOf (Index (CPFS, Local0)), Local0)
            Multiply (Local0, 0x04, Local0)
            SNVS (0x02A8, Local0)
            Store (Local0, DBG8)
            CALC (Local0)
        }
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (GBT0, Package (0x07)
        {
            0x0B060001,
            "System Performance",
            Zero,
            Zero,
            0x03,
            One,
            0x04
        })
        Name (GBT1, Package (0x07)
        {
            0x0B060002,
            "System Performance Control",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GBT2, Package (0x07)
        {
            0x0B060003,
            "System GUI",
            0x02,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GRPB, Package (0x03)
        {
            GBT0,
            GBT1,
            GBT2
        })
        Method (GITB, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, One))
            {
                Store (And (DerefOf (Index (GBT0, 0x02)), 0xFFFF), ASB1)
            }
            Else
            {
                If (LEqual (_T_0, 0x02))
                {
                    Store (DerefOf (Index (GBT1, 0x02)), ASB1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x03))
                    {
                        Store (DerefOf (Index (GBT2, 0x02)), ASB1)
                    }
                    Else
                    {
                        Store (Zero, ASB0)
                    }
                }
            }
        }

        Method (SITB, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, One))
            {
                Name (_T_1, Zero)
                Store (And (Arg2, 0xFFFF), _T_1)
                If (LEqual (_T_1, Zero))
                {
                    Store (And (DerefOf (Index (GBT0, 0x02)), 0xFFFF), Local0)
                    If (LEqual (Local0, Zero))
                    {
                        Store (Local0, PAR0)
                    }
                }
                Else
                {
                    If (LEqual (_T_1, One))
                    {
                        And (Arg1, 0xFFFF, Local0)
                        Store (Local0, Index (GBT0, 0x02))
                        SICL (Local0)
                        Store (Local0, PAR0)
                        ISMI (0x88)
                    }
                    Else
                    {
                        Store (One, ASB0)
                    }
                }
            }
            Else
            {
                If (LEqual (_T_0, 0x02))
                {
                    Store (And (Arg1, 0xFF), Local0)
                    If (LEqual (ITCG (Local0), One))
                    {
                        Store (Local0, Index (GBT1, 0x02))
                        Store (One, ASB0)
                    }
                    Else
                    {
                        Store (Zero, ASB0)
                    }
                }
                Else
                {
                    Store (Zero, ASB0)
                }
            }
        }
    }

    Scope (_GPE)
    {
        Method (_L2A, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.SBRG.ASOC, 0x05)
            Store (0x0B, DBUG)
            If (LEqual (\_SB.PCI0.SBRG.ASOC.AIGC, One))
            {
                \_SB.PCI0.SBRG.ASOC.GITE (0x0E060001)
                \_SB.PCI0.SBRG.ASOC.SICL (Or (0x8010, \_SB.PCI0.SBRG.ASOC.ASB1))
            }

            \_SB.PCI0.SBRG.ASOC.RCAS ()
        }
    }

    OperationRegion (_SB.PCI0.MICP.PFSB, PCI_Config, 0x44, 0x20)
    Field (\_SB.PCI0.MICP.PFSB, ByteAcc, NoLock, Preserve)
    {
        FSP1,   8,
        FSP2,   8,
        FSP3,   8,
        FSPC,   8
    }

    OperationRegion (_SB.PCI0.MICP.FPMN, PCI_Config, 0x78, 0x20)
    Field (\_SB.PCI0.MICP.FPMN, ByteAcc, NoLock, Preserve)
    {
        FP4M,   8,
        FP4N,   8
    }

    OperationRegion (_SB.PCI0.MICP.PFSC, PCI_Config, 0x58, 0x20)
    Field (\_SB.PCI0.MICP.PFSC, ByteAcc, NoLock, Preserve)
    {
        PEAC,   8
    }

    OperationRegion (DEBU, SystemIO, DP80, One)
    Field (DEBU, ByteAcc, NoLock, Preserve)
    {
        DBUG,   8
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (GET1, Package (0x07)
        {
            0x0E060001,
            "OC Status",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GET2, Package (0x07)
        {
            0x0E0A0011,
            "ICPU Value",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GET3, Package (0x07)
        {
            0x0E020012,
            "VCPU Value",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GET4, Package (0x07)
        {
            0x0E0B0013,
            "PCPU Value",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GET5, Package (0x07)
        {
            0x0E0A0014,
            "OC Threshold1",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GET6, Package (0x07)
        {
            0x0E0A0015,
            "OC Threshold2",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GET7, Package (0x07)
        {
            0x0E0A0016,
            "OC Threshold3",
            Zero,
            Zero,
            Zero,
            Zero,
            Zero
        })
        Name (GRPE, Package (0x07)
        {
            GET1,
            GET2,
            GET3,
            GET4,
            GET5,
            GET6,
            GET7
        })
        Name (ADP3, Package (0x0D)
        {
            0x40,
            0x3B,
            0x48,
            0x4A,
            0x4C,
            0x69,
            0x6A,
            0x6B,
            0x56,
            0x5C,
            0x37,
            0x38,
            0x36
        })
        Name (OCST, Buffer (0x04)
        {
            0x00, 0x01, 0x02, 0x03
        })
        Method (GITE, 1, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, One))
            {
                Store (DerefOf (Index (OCST, RBYT (DerefOf (Index
(ADP3, Zero)),
                    DerefOf (Index (ADP3, One))))), ASB1)
            }
            Else
            {
                If (LEqual (_T_0, 0x11))
                {
                    Store (RBYT (DerefOf (Index (ADP3, Zero)), DerefOf
(Index (ADP3,
                        0x02))), Local0)
                    Store (RBYT (DerefOf (Index (ADP3, Zero)), Add
(DerefOf (Index (
                        ADP3, 0x02)), One)), Local1)
                    Or (ShiftLeft (Local1, 0x02), And (Local0, 0x03), ASB1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x12))
                    {
                        Store (RBYT (DerefOf (Index (ADP3, Zero)),
DerefOf (Index (ADP3,
                            0x03))), Local0)
                        Store (RBYT (DerefOf (Index (ADP3, Zero)), Add
(DerefOf (Index (
                            ADP3, 0x03)), One)), Local1)
                        Or (ShiftLeft (Local1, 0x02), And (Local0, 0x03), ASB1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x13))
                        {
                            Store (RBYT (DerefOf (Index (ADP3, Zero)),
DerefOf (Index (ADP3,
                                0x04))), Local0)
                            Store (RBYT (DerefOf (Index (ADP3, Zero)),
Add (DerefOf (Index (
                                ADP3, 0x04)), One)), Local1)
                            Or (ShiftLeft (Local1, 0x08), Local0, ASB1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x14))
                            {
                                Store (RBYT (DerefOf (Index (ADP3,
Zero)), DerefOf (Index (ADP3,
                                    0x05))), ASB1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x15))
                                {
                                    Store (RBYT (DerefOf (Index (ADP3,
Zero)), DerefOf (Index (ADP3,
                                        0x06))), ASB1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x16))
                                    {
                                        Store (RBYT (DerefOf (Index
(ADP3, Zero)), DerefOf (Index (ADP3,
                                            0x07))), ASB1)
                                    }
                                    Else
                                    {
                                        Store (Zero, ASB0)
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        Method (SITE, 3, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFFFF), _T_0)
            If (LEqual (_T_0, 0x14))
            {
                WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x05
                    )), Arg1)
            }
            Else
            {
                If (LEqual (_T_0, 0x15))
                {
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x06
                        )), Arg1)
                }
                Else
                {
                    If (LEqual (_T_0, 0x16))
                    {
                        WBYT (DerefOf (Index (ADP3, Zero)), DerefOf
(Index (ADP3, 0x07
                            )), Arg1)
                    }
                    Else
                    {
                        Store (Zero, ASB0)
                    }
                }
            }
        }

        Method (ITCG, 1, NotSerialized)
        {
            Store (CPTP (), Local0)
            Sleep (0x03E8)
            And (PEAC, 0xFE, PEAC)
            Name (_T_0, Zero)
            Store (And (Arg0, 0xFF), _T_0)
            If (LEqual (_T_0, Zero))
            {
                MAPF (Local0, One)
            }
            Else
            {
                If (LEqual (_T_0, One))
                {
                    MAPF (Local0, Zero)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Return (One)
        }

        Name (MAPT, Package (0x04)
        {
            Package (0x04)
            {
                0xD2,
                0xC8,
                0xBE,
                0xB4
            },

            Package (0x04)
            {
                0x0118,
                0x010B,
                0xFC,
                0xEE
            },

            Package (0x04)
            {
                0x015E,
                0x014D,
                0x013C,
                0x012B
            },

            Package (0x04)
            {
                0x01A4,
                0x0190,
                0x017C,
                0x0168
            }
        })
        Method (MAPF, 2, NotSerialized)
        {
            Store (Arg0, Local0)
            Store (Arg1, Local1)
            Store (DerefOf (Index (DerefOf (Index (MAPT, Local0)), Local1)),
                Local0)
            CALC (Local0)
        }

        Method (CALC, 1, NotSerialized)
        {
            Store (Arg0, Local0)
            Store (FSPC, Local3)
            And (Local3, 0xFD, Local3)
            If (LAnd (Local3, 0xFF))
            {
                Store (0x02, Local3)
                Multiply (Local0, Local3, Local2)
            }

            Multiply (Local2, FSP1, Local2)
            Multiply (Local2, FP4M, Local2)
            Store (FP4N, Local3)
            Multiply (Local3, 0x19, Local3)
            Divide (Local2, Local3, , Local2)
            Store (FSP2, Local4)
            Store (FSP3, Local3)
            And (Local3, One, Local3)
            ShiftLeft (Local3, 0x08, Local3)
            Or (Local4, Local3, Local3)
            Divide (Local3, 0x02, , Local3)
            If (LLess (Local3, Local2))
            {
                Increment (Local2)
            }
            Else
            {
                Decrement (Local2)
            }

            While (LNotEqual (Local3, Local2))
            {
                Multiply (Local3, 0x02, Local1)
                Store (Local1, FSP2)
                ShiftRight (Local1, 0x08, Local1)
                And (Local1, One, Local1)
                Store (FSP3, Local4)
                And (Local4, 0xFE, Local4)
                Or (Local1, Local4, Local1)
                Store (Local1, FSP3)
                Or (FSPC, 0x40, FSPC)
                And (FSPC, 0xBF, FSPC)
                If (LLess (Local3, Local2))
                {
                    Increment (Local3)
                }
                Else
                {
                    Decrement (Local3)
                }
            }
        }

        Method (CPTP, 0, NotSerialized)
        {
            Name (_T_0, Zero)
            Store (GNVS (0x8720), _T_0)
            If (LEqual (_T_0, Zero))
            {
                Store (0x02, Local0)
            }
            Else
            {
                If (LEqual (_T_0, One))
                {
                    Store (One, Local0)
                }
                Else
                {
                    If (LEqual (_T_0, 0x02))
                    {
                        Store (Zero, Local0)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x03))
                        {
                            Store (0x02, Local0)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x04))
                            {
                                Store (One, Local0)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x05))
                                {
                                    Store (0x02, Local0)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x06))
                                    {
                                        Store (One, Local0)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x07))
                                        {
                                            Store (0x02, Local0)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x08))
                                            {
                                                Store (One, Local0)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x09))
                                                {
                                                    Store (0x03, Local0)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x0A))
                                                    {
                                                        Store (0x03, Local0)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x0B))
                                                        {
                                                            Store (Zero, Local0)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual
(_T_0, 0x7E))
                                                            {
                                                                Store
(Zero, Local0)
                                                            }
                                                            Else
                                                            {
                                                                If
(LEqual (_T_0, 0x7F))
                                                                {

Store (One, Local0)
                                                                }
                                                                Else
                                                                {

Store (Zero, Local0)
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Return (Local0)
        }

        Name (AIGC, Zero)
        Method (SICL, 1, NotSerialized)
        {
            If (And (Arg0, 0x8000))
            {
                Store (One, AIGC)
                Name (_T_0, Zero)
                Store (And (Arg0, 0xFF), _T_0)
                If (LEqual (_T_0, 0x10))
                {
                    SPIC (Zero)
                    Store (Zero, PICL)
                    Store (0x10, DBUG)
                }
                Else
                {
                    If (LEqual (_T_0, 0x11))
                    {
                        SPIC (One)
                        Store (One, PICL)
                        Store (0x11, DBUG)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x12))
                        {
                            SPIC (0x02)
                            Store (0x02, PICL)
                            Store (0x12, DBUG)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x13))
                            {
                                SPIC (0x03)
                                Store (0x03, PICL)
                                Store (0x13, DBUG)
                            }
                            Else
                            {
                            }
                        }
                    }
                }
            }
            Else
            {
                Store (Zero, AIGC)
                If (And (Arg0, 0x4000))
                {
                    SPIC (Zero)
                    Store (Zero, PICL)
                }
                Else
                {
                    Name (_T_1, Zero)
                    Store (And (Arg0, 0xFF), _T_1)
                    If (LEqual (_T_1, Zero))
                    {
                        SPIC (One)
                        Store (One, PICL)
                    }
                    Else
                    {
                        If (LEqual (_T_1, One))
                        {
                            SPIC (0x02)
                            Store (0x02, PICL)
                        }
                        Else
                        {
                            If (LEqual (_T_1, 0x02))
                            {
                                SPIC (0x03)
                                Store (0x03, PICL)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }
            }

            Return (One)
        }

        Name (PICL, One)
        Name (PSLV, Package (0x04)
        {
            Package (0x05)
            {
                Zero,
                Zero,
                Zero,
                Zero,
                0x10
            },

            Package (0x05)
            {
                Zero,
                Zero,
                0xFF,
                Zero,
                0x10
            },

            Package (0x05)
            {
                Zero,
                0xFF,
                0xFF,
                0x36,
                0x08
            },

            Package (0x05)
            {
                0xFF,
                0xFF,
                0xFF,
                0x2C,
                0x08
            }
        })
        Method (SPIC, 1, NotSerialized)
        {
            If (LLessEqual (Arg0, PICL))
            {
                WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x08
                    )), DerefOf (Index (DerefOf (Index (PSLV, Arg0)), 0x03)))
                WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x09
                    )), DerefOf (Index (DerefOf (Index (PSLV, Arg0)), 0x04)))
                If (LEqual (AIGC, Zero))
                {
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x05
                        )), DerefOf (Index (DerefOf (Index (PSLV,
Arg0)), Zero)))
                    Sleep (0x03E8)
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x06
                        )), DerefOf (Index (DerefOf (Index (PSLV, Arg0)), One)))
                    Sleep (0x03E8)
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x07
                        )), DerefOf (Index (DerefOf (Index (PSLV,
Arg0)), 0x02)))
                    Sleep (0x03E8)
                }

                Store (CPTP (), Local0)
                Store (Arg0, Local1)
                MAPF (Local0, Local1)
            }
            Else
            {
                If (LEqual (AIGC, Zero))
                {
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x07
                        )), DerefOf (Index (DerefOf (Index (PSLV,
Arg0)), 0x02)))
                    Sleep (0x03E8)
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x06
                        )), DerefOf (Index (DerefOf (Index (PSLV, Arg0)), One)))
                    Sleep (0x03E8)
                    WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index
(ADP3, 0x05
                        )), DerefOf (Index (DerefOf (Index (PSLV,
Arg0)), Zero)))
                    Sleep (0x03E8)
                }

                Store (CPTP (), Local0)
                Store (Arg0, Local1)
                MAPF (Local0, Local1)
                WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x09
                    )), DerefOf (Index (DerefOf (Index (PSLV, Arg0)), 0x04)))
                WBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x08
                    )), DerefOf (Index (DerefOf (Index (PSLV, Arg0)), 0x03)))
            }

            RCAS ()
        }

        Method (RCAS, 0, NotSerialized)
        {
            Store (RBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3,
                0x0A))), Local0)
            And (Local0, 0x10, Local0)
            While (LEqual (Local0, 0x10))
            {
                Store (RBYT (DerefOf (Index (ADP3, Zero)), DerefOf
(Index (ADP3,
                    0x0A))), Local0)
                And (Local0, 0x10, Local0)
            }

            RBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x0B
                )))
            RBYT (DerefOf (Index (ADP3, Zero)), DerefOf (Index (ADP3, 0x0C
                )))
        }
    }

    Scope (_SB.PCI0.SBRG.SIOR)
    {
        Method (HWV0, 0, NotSerialized)
        {
            Return (Multiply (VIV0, 0x10))
        }

        Method (HWV1, 0, NotSerialized)
        {
            Return (Multiply (VIV1, 0x10))
        }

        Method (HWV2, 0, NotSerialized)
        {
            Return (Multiply (VIV2, 0x10))
        }

        Method (HWV3, 0, NotSerialized)
        {
            Return (Multiply (VIV3, 0x10))
        }

        Method (HWV4, 0, NotSerialized)
        {
            Return (Multiply (VIV4, 0x10))
        }

        Method (HWV5, 0, NotSerialized)
        {
            Return (Multiply (VIV5, 0x10))
        }

        Method (HWV6, 0, NotSerialized)
        {
            Return (Multiply (VIV6, 0x10))
        }

        Method (HWV7, 0, NotSerialized)
        {
            Return (Multiply (VIV7, 0x10))
        }

        Method (HWT1, 0, NotSerialized)
        {
            Store (TPI1, Local0)
            If (LGreater (Local0, 0x80))
            {
                Subtract (0x0100, Local0, Local0)
            }

            Add (Local0, T1OF, Local0)
            Return (Multiply (Local0, 0x0A))
        }

        Method (HWT2, 0, NotSerialized)
        {
            Store (TPI2, Local0)
            If (LGreater (Local0, 0x80))
            {
                Subtract (0x0100, Local0, Local0)
            }

            Add (Local0, T2OF, Local0)
            Return (Multiply (Local0, 0x0A))
        }

        Method (HWT3, 0, NotSerialized)
        {
            Store (TPI3, Local0)
            If (LGreater (Local0, 0x80))
            {
                Subtract (0x0100, Local0, Local0)
            }

            Add (Local0, T3OF, Local0)
            Return (Multiply (Local0, 0x0A))
        }

        Method (HWF1, 0, NotSerialized)
        {
            If (LEqual (ETD1, One))
            {
                Or (ShiftLeft (EFN1, 0x08), FTC1, Local0)
                Return (CF16 (Local0))
            }

            Store (FTC1, Local0)
            Store (One, Local2)
            While (LAnd (LOr (LLessEqual (Local0, FHMT), LGreaterEqual (Local0,
                FLMT)), LEqual (Local2, One)))
            {
                If (LLessEqual (Local0, FHMT))
                {
                    Store (FTD1, Local1)
                    If (LGreater (Local1, Zero))
                    {
                        Decrement (Local1)
                        Store (Local1, FTD1)
                    }
                    Else
                    {
                        Store (Zero, Local2)
                    }
                }
                Else
                {
                    Store (FTD1, Local1)
                    If (LLess (Local1, 0x07))
                    {
                        Increment (Local1)
                        Store (Local1, FTD1)
                    }
                    Else
                    {
                        Store (Zero, Local2)
                    }
                }

                Sleep (0x012C)
                Store (FTC1, Local0)
            }

            Return (CF08 (Local0, DerefOf (Index (DTB1, FTD1))))
        }

        Method (HWF2, 0, NotSerialized)
        {
            If (LEqual (ETD2, One))
            {
                Or (ShiftLeft (EFN2, 0x08), FTC2, Local0)
                Return (CF16 (Local0))
            }

            Store (FTC2, Local0)
            Store (One, Local2)
            While (LAnd (LOr (LLessEqual (Local0, FHMT), LGreaterEqual (Local0,
                FLMT)), LEqual (Local2, One)))
            {
                If (LLessEqual (Local0, FHMT))
                {
                    Store (FTD2, Local1)
                    If (LGreater (Local1, Zero))
                    {
                        Decrement (Local1)
                        Store (Local1, FTD2)
                    }
                    Else
                    {
                        Store (Zero, Local2)
                    }
                }
                Else
                {
                    Store (FTD2, Local1)
                    If (LLess (Local1, 0x07))
                    {
                        Increment (Local1)
                        Store (Local1, FTD2)
                    }
                    Else
                    {
                        Store (Zero, Local2)
                    }
                }

                Sleep (0x012C)
                Store (FTC2, Local0)
            }

            Return (CF08 (Local0, DerefOf (Index (DTB1, FTD2))))
        }

        Method (HWF3, 0, NotSerialized)
        {
            If (LEqual (ETD3, One))
            {
                Or (ShiftLeft (EFN3, 0x08), FTC3, Local0)
                Return (CF16 (Local0))
            }

            Store (FTC3, Local0)
            If (LLessEqual (Local0, FHM3))
            {
                Store (FTD3, Local1)
                If (LGreater (Local1, Zero))
                {
                    Decrement (Local1)
                    Store (Local1, FTD3)
                    Sleep (0x012C)
                    Store (FTC3, Local0)
                }
            }
            Else
            {
                If (LGreaterEqual (Local0, FLMT))
                {
                    Store (FTD3, Local1)
                    If (LLess (Local1, One))
                    {
                        Increment (Local1)
                        Store (Local1, FTD3)
                        Sleep (0x012C)
                        Store (FTC3, Local0)
                    }
                }
            }

            Return (CF08 (Local0, DerefOf (Index (DTB1, FTD3))))
        }

        Method (HWF4, 0, NotSerialized)
        {
            Or (ShiftLeft (EFN4, 0x08), FTC4, Local0)
            Return (CF16 (Local0))
        }

        Method (HWF5, 0, NotSerialized)
        {
            Or (ShiftLeft (EFN5, 0x08), FTC5, Local0)
            Return (CF16 (Local0))
        }

        Method (CF08, 2, NotSerialized)
        {
            If (LOr (LEqual (Arg0, Zero), LEqual (Arg0, 0xFF)))
            {
                Return (Zero)
            }

            Divide (FTFR, Multiply (Arg0, Arg1), , Local0)
            Return (Local0)
        }

        Method (CF16, 1, NotSerialized)
        {
            If (LOr (LEqual (Arg0, Zero), LEqual (Arg0, 0xFFFF)))
            {
                Return (Zero)
            }

            Divide (FTFR, Multiply (Arg0, 0x02), , Local0)
            Return (Local0)
        }

        Name (FTFR, 0x00149970)
        Name (FHMT, 0x78)
        Name (FHM3, 0x3C)
        Name (FLMT, 0xFE)
        Name (DTB1, Package (0x08)
        {
            One,
            0x02,
            0x04,
            0x08,
            0x10,
            0x20,
            0x40,
            0x80
        })
        Name (DTB2, Package (0x02)
        {
            0x02,
            0x08
        })
        OperationRegion (ECRE, SystemIO, IOEB, 0x20)
        Field (ECRE, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x05),
            HIDX,   8,
            HDAT,   8
        }

        IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x0B),
            FTD1,   3,
            FTD2,   3,
            FTD3,   1,
                    Offset (0x0C),
            ETD1,   1,
            ETD2,   1,
            ETD3,   1,
                    Offset (0x0D),
            FTC1,   8,
            FTC2,   8,
            FTC3,   8,
                    Offset (0x18),
            EFN1,   8,
            EFN2,   8,
            EFN3,   8,
                    Offset (0x20),
            VIV0,   8,
            VIV1,   8,
            VIV2,   8,
            VIV3,   8,
            VIV4,   8,
            VIV5,   8,
            VIV6,   8,
            VIV7,   8,
                    Offset (0x29),
            TPI1,   8,
            TPI2,   8,
            TPI3,   8,
                    Offset (0x80),
            FTC4,   8,
            EFN4,   8,
            FTC5,   8,
            EFN5,   8
        }
    }

    Scope (\)
    {
        Field (RAMW, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x20),
            CPUQ,   8,
            CPVL,   16,
            CPVH,   16,
            CPVC,   1
        }
    }

    Scope (_SB.PCI0.SBRG.ASOC)
    {
        Name (CORV, Package (0x05)
        {
            0x06020000,
            "Vcore Voltage",
            0x0352,
            0x0640,
            One
        })
        Name (V3VV, Package (0x05)
        {
            0x06020001,
            " +3.3 Voltage",
            0x0B9A,
            0x0E2E,
            One
        })
        Name (V5VV, Package (0x05)
        {
            0x06020002,
            " +5 Voltage",
            0x1194,
            0x157C,
            One
        })
        Name (VV12, Package (0x05)
        {
            0x06020003,
            " +12 Voltage",
            0x27D8,
            0x35E8,
            One
        })
        Name (VPAR, Package (0x04)
        {
            Package (0x03)
            {
                Zero,
                One,
                Zero
            },

            Package (0x03)
            {
                Zero,
                One,
                Zero
            },

            Package (0x03)
            {
                0x22,
                0x32,
                Zero
            },

            Package (0x03)
            {
                0x32,
                0x11,
                Zero
            }
        })
        Name (VBUF, Package (0x05)
        {
            0x04,
            CORV,
            V3VV,
            V5VV,
            VV12
        })
        Method (VGET, 1, NotSerialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (^^SIOR.HWV0 ())
            }

            If (LEqual (Arg0, One))
            {
                Return (^^SIOR.HWV1 ())
            }

            If (LEqual (Arg0, 0x02))
            {
                Return (^^SIOR.HWV3 ())
            }

            If (LEqual (Arg0, 0x03))
            {
                Return (^^SIOR.HWV4 ())
            }
        }

        Name (CPUT, Package (0x05)
        {
            0x06030000,
            "CPU Temperature",
            0x0258,
            0x03B6,
            0x00010001
        })
        Name (MBTP, Package (0x05)
        {
            0x06030001,
            "MB Temperature",
            0x01C2,
            0x03B6,
            0x00010001
        })
        Name (TBUF, Package (0x03)
        {
            0x02,
            CPUT,
            MBTP
        })
        Method (TGET, 1, NotSerialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (^^SIOR.HWT1 ())
            }

            If (LEqual (Arg0, One))
            {
                Return (^^SIOR.HWT2 ())
            }
        }

        Name (CPUF, Package (0x05)
        {
            0x06040000,
            "CPU FAN Speed",
            0x0320,
            0x1C20,
            0x00010001
        })
        Name (CHAF, Package (0x05)
        {
            0x06040001,
            "CHASSIS FAN Speed",
            0x04B0,
            0x1C20,
            0x00010001
        })
        Name (CHF2, Package (0x05)
        {
            0x06040002,
            "CHASSIS FAN 2 Speed",
            0x0320,
            0x1C20,
            0x00010001
        })
        Name (CHF3, Package (0x05)
        {
            0x06040003,
            "CHASSIS FAN 3 Speed",
            0x0320,
            0x1C20,
            0x00010001
        })
        Name (PWRF, Package (0x05)
        {
            0x06040004,
            "POWER FAN Speed",
            0x0708,
            0x1C20,
            0x00010001
        })
        Name (FBUF, Package (0x06)
        {
            0x05,
            CPUF,
            CHAF,
            CHF2,
            CHF3,
            PWRF
        })
        Method (FGET, 1, NotSerialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (^^SIOR.HWF1 ())
            }

            If (LEqual (Arg0, One))
            {
                Return (^^SIOR.HWF2 ())
            }

            If (LEqual (Arg0, 0x02))
            {
                Return (^^SIOR.HWF3 ())
            }

            If (LEqual (Arg0, 0x03))
            {
                Return (^^SIOR.HWF5 ())
            }

            If (LEqual (Arg0, 0x04))
            {
                Return (^^SIOR.HWF4 ())
            }
        }

        Name (QCFN, Package (0x06)
        {
            0x04060003,
            "CPU Q-Fan Control",
            Zero,
            One,
            0x02,
            0x00010000
        })
        Name (QBUF, Package (0x02)
        {
            One,
            QCFN
        })
        Method (VSIF, 0, NotSerialized)
        {
            Return (VBUF)
        }

        Method (RVLT, 1, NotSerialized)
        {
            And (Arg0, 0xFFFF, Local0)
            Store (VGET (Local0), Local1)
            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), Zero)),
                Local2)
            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), One)),
                Local3)
            Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x02)),
                Local4)
            Multiply (Local1, Add (Local2, Local3), Local5)
            Divide (Local5, Local3, , Local5)
            Add (Local5, Local4, Local5)
            Return (Local5)
        }

        Method (SVLT, 1, NotSerialized)
        {
            And (DerefOf (Index (Arg0, Zero)), 0xFFFF, Local0)
            Store (DerefOf (Index (VBUF, Zero)), Local1)
            If (LGreaterEqual (Local0, Local1))
            {
                Return (Zero)
            }

            Increment (Local0)
            Store (DerefOf (Index (Arg0, One)), Index (DerefOf (Index (VBUF,
                Local0)), One))
            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (VBUF,
                Local0)), 0x02))
            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (VBUF,
                Local0)), 0x03))
            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (VBUF,
                Local0)), 0x04))
            Return (One)
        }

        Method (TSIF, 0, NotSerialized)
        {
            Return (TBUF)
        }

        Method (RTMP, 1, NotSerialized)
        {
            And (Arg0, 0xFFFF, Local0)
            Store (TGET (Local0), Local1)
            Return (Local1)
        }

        Method (STMP, 1, NotSerialized)
        {
            Store (And (DerefOf (Index (Arg0, Zero)), 0xFFFF), Local0)
            Store (DerefOf (Index (TBUF, Zero)), Local1)
            If (LGreaterEqual (Local0, Local1))
            {
                Return (Zero)
            }

            Increment (Local0)
            Store (DerefOf (Index (Arg0, One)), Index (DerefOf (Index (TBUF,
                Local0)), One))
            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (TBUF,
                Local0)), 0x02))
            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (TBUF,
                Local0)), 0x03))
            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (TBUF,
                Local0)), 0x04))
            Return (One)
        }

        Method (FSIF, 0, NotSerialized)
        {
            Return (FBUF)
        }

        Method (RFAN, 1, NotSerialized)
        {
            And (Arg0, 0xFFFF, Local0)
            Store (FGET (Local0), Local1)
            Return (Local1)
        }

        Method (SFAN, 1, NotSerialized)
        {
            And (DerefOf (Index (Arg0, Zero)), 0xFFFF, Local0)
            Store (DerefOf (Index (FBUF, Zero)), Local1)
            If (LGreaterEqual (Local0, Local1))
            {
                Return (Zero)
            }

            Increment (Local0)
            Store (DerefOf (Index (Arg0, One)), Index (DerefOf (Index (FBUF,
                Local0)), One))
            Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (FBUF,
                Local0)), 0x02))
            Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (FBUF,
                Local0)), 0x03))
            Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (FBUF,
                Local0)), 0x04))
            Return (One)
        }

        Method (QFIF, 0, NotSerialized)
        {
            If (LEqual (CPUQ, Zero))
            {
                And (DerefOf (Index (QCFN, 0x05)), 0xFFFDFFFF, Local0)
                Store (Local0, Index (QCFN, 0x05))
            }
            Else
            {
                Or (DerefOf (Index (QCFN, 0x05)), 0x00020000, Local0)
                Store (Local0, Index (QCFN, 0x05))
            }

            Return (QBUF)
        }

        Method (GCQV, 1, NotSerialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (CPVL)
            }

            If (LEqual (Arg0, One))
            {
                Return (CPVH)
            }

            If (LEqual (Arg0, 0x02))
            {
                Return (CPVC)
            }

            Return (Zero)
        }

        Method (QFST, 1, NotSerialized)
        {
            If (LEqual (Arg0, DerefOf (Index (QCFN, Zero))))
            {
                Return (CQST)
            }

            Return (Zero)
        }
    }

    Scope (_SB)
    {
        Scope (PCI0)
        {
            Name (CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    ,, )
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                WordIO (ResourceProducer, MinFixed, MaxFixed,
PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0CF7,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0CF8,             // Length
                    ,, , TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed,
PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0xFFFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0xF300,             // Length
                    ,, , TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed,
MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed,
MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, _Y23, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed,
MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y24, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed,
MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y25, AddressRangeMemory, TypeStatic)
            })
            CreateDWordField (CRS, \_SB.PCI0._Y23._MIN, MIN5)
            CreateDWordField (CRS, \_SB.PCI0._Y23._MAX, MAX5)
            CreateDWordField (CRS, \_SB.PCI0._Y23._LEN, LEN5)
            CreateDWordField (CRS, \_SB.PCI0._Y24._MIN, MIN6)
            CreateDWordField (CRS, \_SB.PCI0._Y24._MAX, MAX6)
            CreateDWordField (CRS, \_SB.PCI0._Y24._LEN, LEN6)
            CreateDWordField (CRS, \_SB.PCI0._Y25._MIN, MIN7)
            CreateDWordField (CRS, \_SB.PCI0._Y25._MAX, MAX7)
            CreateDWordField (CRS, \_SB.PCI0._Y25._LEN, LEN7)
            Method (_CRS, 0, NotSerialized)
            {
                Store (MG1L, Local0)
                If (Local0)
                {
                    Store (MG1B, MIN5)
                    Store (MG1L, LEN5)
                    Add (MIN5, Decrement (Local0), MAX5)
                }

                Store (MG2B, MIN6)
                Store (MG2L, LEN6)
                Store (MG2L, Local0)
                Add (MIN6, Decrement (Local0), MAX6)
                Store (MG3B, MIN7)
                Store (MG3L, LEN7)
                Store (MG3L, Local0)
                Add (MIN7, Decrement (Local0), MAX7)
                Return (CRS)
            }
        }
    }

    Name (WOTB, Zero)
    Name (WSSB, Zero)
    Name (WAXB, Zero)
    Method (_PTS, 1, NotSerialized)
    {
        Store (Arg0, DBG8)
        PTS (Arg0)
        Store (Zero, Index (WAKP, Zero))
        Store (Zero, Index (WAKP, One))
        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
        {
            Sleep (0x0BB8)
        }

        Store (ASSB, WSSB)
        Store (AOTB, WOTB)
        Store (AAXB, WAXB)
        Store (Arg0, ASSB)
        Store (OSFL (), AOTB)
        Store (Zero, AAXB)
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        WAK (Arg0)
        If (ASSB)
        {
            Store (WSSB, ASSB)
            Store (WOTB, AOTB)
            Store (WAXB, AAXB)
        }

        If (DerefOf (Index (WAKP, Zero)))
        {
            Store (Zero, Index (WAKP, One))
        }
        Else
        {
            Store (Arg0, Index (WAKP, One))
        }

        Return (WAKP)
    }

    Device (_SB.PCI0.SBRG.TPM)
    {
        Name (_HID, EisaId ("PNP0C31"))
        Name (_CID, 0x310CD041)
        Name (_UID, One)
        Name (_CRS, ResourceTemplate ()
        {
            Memory32Fixed (ReadWrite,
                0xFED40000,         // Address Base
                0x00005000,         // Address Length
                )
        })
        Method (_STA, 0, NotSerialized)
        {
            If (_OSI ("Windows 2006"))
            {
                If (TPMF)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    Scope (_SB.PCI0.SBRG.TPM)
    {
        Name (TAAX, Zero)
        OperationRegion (MIPT, SystemIO, SMIT, One)
        Field (MIPT, ByteAcc, NoLock, Preserve)
        {
            PSMI,   8
        }

        Name (PPI1, Package (0x02)
        {
            Zero,
            Zero
        })
        Name (PPI2, Package (0x03)
        {
            Zero,
            Zero,
            Zero
        })
        Name (MBUF, Buffer (0x04) {})
        CreateByteField (MBUF, Zero, BUF0)
        CreateByteField (MBUF, One, BUF1)
        CreateByteField (MBUF, 0x02, BUF2)
        CreateByteField (MBUF, 0x03, BUF3)
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */    0xA6, 0xFA, 0xDD, 0x3D, 0x1B,
0x36, 0xB4, 0x4E,
                        /* 0008 */    0xA4, 0x24, 0x8D, 0x10, 0x08,
0x9D, 0x16, 0x53
                    }))
            {
                Name (_T_0, Zero)
                Store (ToInteger (Arg2), _T_0)
                If (LEqual (_T_0, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x7F
                    })
                }
                Else
                {
                    If (LEqual (_T_0, One))
                    {
                        Return ("1.0")
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Store (AAXB, TAAX)
                            Store (CMRQ, BUF0)
                            Store (0xF0, BUF1)
                            Store (ToInteger (DerefOf (Index (Arg3,
Zero))), BUF2)
                            Store (One, BUF3)
                            Store (MBUF, AAXB)
                            Store (0xFB, PSMI)
                            Sleep (0x0BB8)
                            Store (TAAX, AAXB)
                            Return (Zero)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x03))
                            {
                                Store (AAXB, TAAX)
                                Store (CMRQ, BUF0)
                                Store (0x0F, BUF1)
                                Store (Zero, BUF2)
                                Store (Zero, BUF3)
                                Store (MBUF, AAXB)
                                Store (0xFB, PSMI)
                                Sleep (0x0BB8)
                                Store (AAXB, MBUF)
                                Store (BUF2, Local3)
                                Store (Zero, Index (PPI1, Zero))
                                Store (Local3, Index (PPI1, One))
                                Store (TAAX, AAXB)
                                Return (PPI1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x04))
                                {
                                    Return (0x02)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x05))
                                    {
                                        Store (AAXB, TAAX)
                                        Store (CMRQ, BUF0)
                                        Store (0xF0, BUF1)
                                        Store (Zero, BUF2)
                                        Store (Zero, BUF3)
                                        Store (MBUF, AAXB)
                                        Store (0xFB, PSMI)
                                        Sleep (0x0BB8)
                                        Store (AAXB, MBUF)
                                        ShiftRight (BUF2, 0x04)
                                        Store (BUF2, Local3)
                                        Store (CMER, BUF0)
                                        Store (0xFF, BUF1)
                                        Store (Zero, BUF2)
                                        Store (Zero, BUF3)
                                        Store (MBUF, AAXB)
                                        Store (0xFB, PSMI)
                                        Sleep (0x0BB8)
                                        Store (AAXB, MBUF)
                                        Store (BUF2, Local6)
                                        Add (CMER, One, Local4)
                                        Store (Local4, BUF0)
                                        Store (0xFF, BUF1)
                                        Store (Zero, BUF2)
                                        Store (Zero, BUF3)
                                        Store (MBUF, AAXB)
                                        Store (0xFB, PSMI)
                                        Sleep (0x0BB8)
                                        Store (AAXB, MBUF)
                                        Store (BUF2, Local7)
                                        Multiply (Local7, 0x0100, Local2)
                                        Add (Local2, Local6, Local2)
                                        Store (Zero, Index (PPI2, Zero))
                                        Store (Local3, Index (PPI2, One))
                                        If (LEqual (Local2, 0xFFF0))
                                        {
                                            Store (0xFFFFFFF0, Index
(PPI2, 0x02))
                                        }
                                        Else
                                        {
                                            If (LEqual (Local2, 0xFFF1))
                                            {
                                                Store (0xFFFFFFF1,
Index (PPI2, 0x02))
                                            }
                                            Else
                                            {
                                                Store (Local2, Index
(PPI2, 0x02))
                                            }
                                        }

                                        Store (TAAX, AAXB)
                                        Return (PPI2)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x06))
                                        {
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Else
            {
                If (LEqual (Arg0, Buffer (0x10)
                        {
                            /* 0000 */    0xED, 0x54, 0x60, 0x37,
0x13, 0xCC, 0x75, 0x46,
                            /* 0008 */    0x90, 0x1C, 0x47, 0x56,
0xD7, 0xF2, 0xD4, 0x5D
                        }))
                {
                    Name (_T_1, Zero)
                    Store (ToInteger (Arg2), _T_1)
                    If (LEqual (_T_1, Zero))
                    {
                        Return (Buffer (One)
                        {
                            0x03
                        })
                    }
                    Else
                    {
                        If (LEqual (_T_1, One))
                        {
                            Store (AAXB, TAAX)
                            Store (CMOR, BUF0)
                            Store (0xFE, BUF1)
                            Store (ToInteger (DerefOf (Index (Arg3,
Zero))), BUF2)
                            Store (One, BUF3)
                            Store (MBUF, AAXB)
                            Store (0xFB, PSMI)
                            Sleep (0x0BB8)
                            Store (TAAX, AAXB)
                            Return (Zero)
                        }
                        Else
                        {
                        }
                    }
                }
            }

            Return (Buffer (One)
            {
                0x00
            })
        }
    }

    Name (_S0, Package (0x04)
    {
        Zero,
        Zero,
        Zero,
        Zero
    })
    If (SS1)
    {
        Name (_S1, Package (0x04)
        {
            One,
            Zero,
            Zero,
            Zero
        })
    }

    If (SS3)
    {
        Name (_S3, Package (0x04)
        {
            0x05,
            Zero,
            Zero,
            Zero
        })
    }

    If (SS4)
    {
        Name (_S4, Package (0x04)
        {
            0x06,
            Zero,
            Zero,
            Zero
        })
    }

    Name (_S5, Package (0x04)
    {
        0x07,
        Zero,
        Zero,
        Zero
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0)
        {
            \_SB.PCI0.SBRG.SIOS (Arg0)
            \_SB.PCI0.NPTS (Arg0)
            \_SB.PCI0.SBRG.SPTS (Arg0)
        }
    }

    Method (WAK, 1, NotSerialized)
    {
        \_SB.PCI0.SBRG.SIOW (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.PCI0.SBRG.SWAK (Arg0)
    }
}


Thank you
Sam Fourman Jr.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?11167f520906140109s52df389ode319bfded32613c>