NetBSD Problem Report #44042

From www@NetBSD.org  Thu Nov  4 19:23:53 2010
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 4B42D63BA6F
	for <gnats-bugs@gnats.NetBSD.org>; Thu,  4 Nov 2010 19:23:53 +0000 (UTC)
Message-Id: <20101104192352.CE5ED63BA68@www.NetBSD.org>
Date: Thu,  4 Nov 2010 19:23:52 +0000 (UTC)
From: alan.bsd@gmail.com
Reply-To: alan.bsd@gmail.com
To: gnats-bugs@NetBSD.org
Subject: ACPI problem on Dell D520 (install media and recompiled kernel)
X-Send-Pr-Version: www-1.0

>Number:         44042
>Category:       kern
>Synopsis:       ACPI problem on Dell D520 (install media and recompiled kernel)
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Nov 04 19:25:00 +0000 2010
>Closed-Date:    Sat Nov 06 05:18:42 +0000 2010
>Last-Modified:  Sat Nov 06 05:18:43 +0000 2010
>Originator:     Alan Bueno
>Release:        NetBSD-current
>Organization:
>Environment:
NetBSD amon-ereb.arda.net 5.99.39 NetBSD 5.99.39 (GENERIC) #0: Wed Sep 29 09:16:35 BRT 2010  root@amon-ereb.arda.net:/usr/obj/sys/arch/i386/compile/GENERIC i386
>Description:
Kernel broken due to (more or less) recent changes in acpi-related code.


**
** Working kernel (Installed system; September 29):
**

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.99.39 (GENERIC) #0: Wed Sep 29 09:16:35 BRT 2010
	root@amon-ereb.arda.net:/usr/obj/sys/arch/i386/compile/GENERIC
total memory = 1014 MB
avail memory = 985 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
Dell Inc. Latitude D520                   
mainbus0 (root)
cpu0 at mainbus0 apid 0: Intel 686-class, 1596MHz, id 0x10661
ioapic0 at mainbus0 apid 1: pa 0xfec00000, version 20, 24 pins
acpi0 at mainbus0: Intel ACPICA 20100528
acpi0: X/RSDT: OemId <DELL  , M07    ,27d7051c>, AslId <ASL ,00000061>
acpi0: SCI interrupting at int 9
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
CPU0 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
CPU1 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
acpiwmi0 at acpi0 (AMW0, pnp0c14-0): ACPI WMI Interface
wmidell0 at acpiwmi0: Dell WMI mappings
acpiacad0 at acpi0 (AC, ACPI0003): ACPI AC Adapter
acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery
acpibat1 at acpi0 (BAT1, PNP0C0A-2): ACPI Battery
acpilid0 at acpi0 (LID, PNP0C0D): ACPI Lid Switch
acpibut0 at acpi0 (PBTN, PNP0C0C): ACPI Power Button
acpibut1 at acpi0 (SBTN, PNP0C0E): ACPI Sleep Button
MB1 (PNP0C01) at acpi0 not configured
MB2 (PNP0C01) at acpi0 not configured
MB3 (PNP0C01) at acpi0 not configured
pckbc1 at acpi0 (PS2M, PNP0F13) (aux port): irq 12
pckbc2 at acpi0 (KBC, PNP0303) (kbd port): io 0x60,0x64,0x62,0x66 irq 1
attimer1 at acpi0 (TMR, PNP0100): io 0x40-0x43,0x50-0x53 irq 2
pcppi1 at acpi0 (SPKR, PNP0800): io 0x61,0x63,0x65,0x67
midi0 at pcppi1: PC speaker
sysbeep0 at pcppi1
MB4 (PNP0C01) at acpi0 not configured
npx1 at acpi0 (COPR, PNP0C04): io 0xf0-0xff irq 13
npx1: reported by CPUID; using exception 16
hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff
timecounter: Timecounter "hpet0" frequency 14318179 Hz quality 2000
UAR1 (PNP0501) at acpi0 not configured
acpitz0 at acpi0 (THM): ACPI Thermal Zone
acpitz0: critical 126.0 C, passive cooling
apm0 at acpi0: Power Management spec V1.2
pckbd0 at pckbc2 (kbd slot)
pckbc2: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pms0 at pckbc2 (aux slot)
pckbc2: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
attimer1: attached to pcppi1
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: vendor 0x8086 product 0x27a0 (rev. 0x03)
agp0 at pchb0: detected 7932k stolen memory
agp0: aperture at 0xd0000000, size 0x10000000
vga1 at pci0 dev 2 function 0: vendor 0x8086 product 0x27a2 (rev. 0x03)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
wsmux1: connecting to wsdisplay0
i915drm0 at vga1: Intel i945GM
i915drm0: AGP at 0xd0000000 256MB
i915drm0: Initialized i915 1.6.0 20080730
vendor 0x8086 product 0x27a6 (miscellaneous display, revision 0x03) at pci0 dev 2 function 1 not configured
hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
hdaudio0: interrupting at ioapic0 pin 21
hdafg0 at hdaudio0: Sigmatel STAC9200
hdafg0: DAC00 2ch: Speaker [Built-In], HP Out [Jack]
hdafg0: ADC01 2ch: Line In [Jack], Mic In [Built-In]
hdafg0: 2ch/2ch 44100Hz 48000Hz 88200Hz 96000Hz 192000Hz 16/16 20/32 24/32
audio0 at hdafg0: full duplex, playback, capture, independent
hdvsmfg at hdaudio0 not configured
ppb0 at pci0 dev 28 function 0: vendor 0x8086 product 0x27d0 (rev. 0x01)
ppb0: disabling notification events
pci1 at ppb0 bus 11
pci1: i/o space, memory space enabled, rd/line, wr/inv ok
ppb1 at pci0 dev 28 function 1: vendor 0x8086 product 0x27d2 (rev. 0x01)
ppb1: disabling notification events
pci2 at ppb1 bus 12
pci2: i/o space, memory space enabled, rd/line, wr/inv ok
wpi0 at pci2 dev 0 function 0: vendor 0x8086 product 0x4222 (rev. 0x02)
wpi0: interrupting at ioapic0 pin 17
wpi0: MoW2, address 00:1c:bf:73:d1:4a
wpi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wpi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wpi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
uhci0 at pci0 dev 29 function 0: vendor 0x8086 product 0x27c8 (rev. 0x01)
uhci0: interrupting at ioapic0 pin 20
usb0 at uhci0: USB revision 1.0
uhci1 at pci0 dev 29 function 1: vendor 0x8086 product 0x27c9 (rev. 0x01)
uhci1: interrupting at ioapic0 pin 21
usb1 at uhci1: USB revision 1.0
uhci2 at pci0 dev 29 function 2: vendor 0x8086 product 0x27ca (rev. 0x01)
uhci2: interrupting at ioapic0 pin 22
usb2 at uhci2: USB revision 1.0
uhci3 at pci0 dev 29 function 3: vendor 0x8086 product 0x27cb (rev. 0x01)
uhci3: interrupting at ioapic0 pin 23
usb3 at uhci3: USB revision 1.0
ehci0 at pci0 dev 29 function 7: vendor 0x8086 product 0x27cc (rev. 0x01)
ehci0: interrupting at ioapic0 pin 20
ehci0: EHCI version 1.0
ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2 uhci3
usb4 at ehci0: USB revision 2.0
ppb2 at pci0 dev 30 function 0: vendor 0x8086 product 0x2448 (rev. 0xe1)
pci3 at ppb2 bus 2
pci3: i/o space, memory space enabled
bce0 at pci3 dev 0 function 0: Broadcom BCM4401-B0 10/100 Ethernet
bce0: interrupting at ioapic0 pin 17
bmtphy0 at bce0 phy 1: BCM4401 10/100 media interface, rev. 0
bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
bce0: Ethernet address 00:1c:23:a8:c7:a3
cbb0 at pci3 dev 1 function 0: vendor 0x1217 product 0x7135 (rev. 0x21)
fwohci0 at pci3 dev 1 function 4: vendor 0x1217 product 0x00f7 (rev. 0x02)
fwohci0: interrupting at ioapic0 pin 19
fwohci0: OHCI version 1.10 (ROM=0)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 37:4f:c0:00:13:95:a5:a1
fwohci0: Phy 1394a available S400, 1 ports.
fwohci0: Link S400, max_rec 2048 bytes.
ieee1394if0 at fwohci0: IEEE1394 bus
fwip0 at ieee1394if0: IP over IEEE1394
fwohci0: Initiate bus reset
cbb0: cacheline 0x0 lattimer 0x40
cbb0: bhlc 0x824000
cbb0: interrupting at ioapic0 pin 19
cardslot0 at cbb0
cardbus0 at cardslot0: bus 3
pcmcia0 at cardslot0
ichlpcib0 at pci0 dev 31 function 0: vendor 0x8086 product 0x27b9 (rev. 0x01)
timecounter: Timecounter "ichlpcib0" frequency 3579545 Hz quality 1000
ichlpcib0: 24-bit timer
ichlpcib0: TCO (watchdog) timer configured.
gpiobus at ichlpcib0 not configured
piixide0 at pci0 dev 31 function 2: Intel 82801GBM/GHM Serial ATA Controller (ICH7) (rev. 0x01)
piixide0: bus-master DMA support present
piixide0: primary channel wired to compatibility mode
piixide0: primary channel interrupting at ioapic0 pin 14
atabus0 at piixide0 channel 0
piixide0: secondary channel wired to compatibility mode
piixide0: secondary channel interrupting at ioapic0 pin 15
atabus1 at piixide0 channel 1
ichsmb0 at pci0 dev 31 function 3: vendor 0x8086 product 0x27da (rev. 0x01)
ichsmb0: interrupting at ioapic0 pin 17
iic0 at ichsmb0: I2C bus
isa0 at ichlpcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
ieee1394if0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me)
ieee1394if0: bus manager 0
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
acpiacad0: AC adapter online.
uhub0 at usb0: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1 at usb1: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhub2 at usb2: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhub3 at usb3: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
uhub4 at usb4: vendor 0x8086 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
uhub5 at uhub4 port 2: vendor 0x413c product 0xa005, class 9/0, rev 2.00/50.18, addr 2
uhub5: multiple transaction translators
uhub5: 4 ports with 0 removable, self powered
wd0 at atabus0 drive 0: <ST980811AS>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 76319 MB, 155061 cyl, 16 head, 63 sec, 512 bytes/sect x 156301488 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(piixide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
atapibus0 at atabus1: 2 targets
cd0 at atapibus0 drive 0: <TSSTcorp DVD+/-RW TS-L632D, , DE04> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
cd0(piixide0:1:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
rum0 at uhub4 port 4
rum0: Ralink 802.11 bg WLAN, rev 2.00/0.01, addr 3
rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, address 00:0e:2e:4a:a1:09
rum0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
rum0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
Kernelized RAIDframe activated
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)




**
** Broken kernel (Install media (CD); October 31):
**

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.99.39 (GENERIC) #0: Sun Oct 31 01:44:53 UTC 2010
        builds@b7.netbsd.org:/home/builds/ab/HEAD/i386/201010310000Z-obj/home/bu
ilds/ab/HEAD/src/sys/arch/i386/compile/GENERIC
total memory = 1014 MB
avail memory = 985 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
Dell Inc. Latitude D520
mainbus0 (root)
cpu0 at mainbus0 apid 0: Intel 686-class, 1596MHz, id 0x10661
ioapic0 at mainbus0 apid 1: pa 0xfec00000, version 20, 24 pins
acpi0 at mainbus0: Intel ACPICA 20100528
acpi0: X/RSDT: OemId <DELL  , M07    ,27d7051c>, AslId <ASL ,00000061>
acpi0: SCI interrupting at int 9
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
CPU0 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
CPU1 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
acpiwmi0 at acpi0 (AMW0, pnp0c14-0): ACPI WMI Interface
wmidell0 at acpiwmi0: Dell WMI mappings
acpiacad0 at acpi0 (AC, ACPI0003): ACPI AC Adapter
acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery
acpibat1 at acpi0 (BAT1, PNP0C0A-2): ACPI Battery
acpilid0 at acpi0 (LID, PNP0C0D): ACPI Lid Switch
acpibut0 at acpi0 (PBTN, PNP0C0C): ACPI Power Button
acpibut1 at acpi0 (SBTN, PNP0C0E): ACPI Sleep Button
MB1 (PNP0C01) at acpi0 not configured
MB2 (PNP0C01) at acpi0 not configured
MB3 (PNP0C01) at acpi0 not configured
pckbc1 at acpi0 (PS2M, PNP0F13) (aux port): irq 12
pckbc2 at acpi0 (KBC, PNP0303) (kbd port): io 0x60,0x64,0x62,0x66 irq 1
attimer1 at acpi0 (TMR, PNP0100): io 0x40-0x43,0x50-0x53 irq 2
pcppi1 at acpi0 (SPKR, PNP0800): io 0x61,0x63,0x65,0x67
midi0 at pcppi1: PC speaker
sysbeep0 at pcppi1
MB4 (PNP0C01) at acpi0 not configured
npx1 at acpi0 (COPR, PNP0C04): io 0xf0-0xff irq 13
npx1: reported by CPUID; using exception 16
hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff
timecounter: Timecounter "hpet0" frequency 14318179 Hz quality 2000
UAR1 (PNP0501) at acpi0 not configured
acpivga0 at acpi0 (VID): ACPI Display Adapter
acpiout0 at acpivga0 (TV, 0x0200): ACPI Display Output Device
acpiout1 at acpivga0 (CRT, 0x0100): ACPI Display Output Device
acpiout2 at acpivga0 (LCD, 0x0400): ACPI Display Output Device
acpiout2: brightness levels: 12 24 36 48 60 72 84 100
acpiout3 at acpivga0 (DVI, 0x0300): ACPI Display Output Device
acpivga0: connected output devices:
acpivga0:   0x0100 (acpiout1): Ext. Monitor, head 0, bios detect
acpivga0:   0x0200 (acpiout0): TV, head 0, bios detect
acpivga0:   0x0400 (acpiout2): Unknown Output Device, head 0, bios detect
acpivga0:   0x0300 (acpiout3): Unknown Output Device, head 0, bios detect
acpivga1 at acpi0 (VID2): ACPI Display Adapter
ACPI Warning for \_SB_.PCI0.VID2._DOD: Return Package has no elements (empty) (2
0100528/nspredef-572)
acpivga1: failed to evaluate \_SB_.PCI0.VID2._DOD: AE_BAD_DATA
uvm_fault(0xc0af2a00, 0xc09a4000, 2) -> 0xe
fatal page fault in supervisor mode
trap type 6 code 3 eip c0483f2e cs 8 eflags 10246 cr2 c09a4a49 ilevel 8
kernel: supervisor trap page fault, code=0
Stopped in pid 0.1 (system) at  netbsd:kern_free+0x5e:  movl    $0,0(%edi)
db{0}>


**
** Trace:
**

db{0}> trace
kern_free(c09a4a49,c0a328c0,c0c36a08,c0119553,cb500600,c09a47fa,c0c36a08,c011956
6,c09a4a49,c09a4a2c) at netbsd:kern_free+0x5e
AcpiOsFree(c09a4a49,c09a4a2c,c0c369e0,c1f86400,cb200798,0,c0c369f8,cb200798,c1f6
5b20,0) at netbsd:AcpiOsFree+0x14
acpidisp_init_odinfo(cb4efa90,c09a1f9b,c0a1f4bb,c0a1f4bb,c0a1f4bb,c0a1f4bb,cb200
7a4,c061d8c6,c0aef0ac,c0a31000) at netbsd:acpidisp_init_odinfo+0x1c6
acpidisp_vga_attach(cb4efa90,cb500600,c0c36ad4,c060f0bc,0,0,cb500600,c1f86400,cb
4ef898,0) at netbsd:acpidisp_vga_attach+0x12b
config_attach_loc(cb4efa90,c0a31000,0,c0c36ad4,c0115f80,0,c0c36ab8,c1f86400,cb4e
f898,0) at netbsd:config_attach_loc+0x17c
config_found_ia(cb4efa90,c09a21a2,c0c36ad4,c0115f80,c1f8c680,c01157b0,c0c36b1c,0
,a,c1f86400) at netbsd:config_found_ia+0x1f
acpi_rescan(cb4efa90,0,0,0,0,cb347dc0,c0c36b38,cb4ef898,c1f52300,c0a30f58) at ne
tbsd:acpi_rescan+0xd7
acpi_attach(cb347dc0,cb4efa90,c0c36bc0,c060f0bc,80,10,cb4efa90,cb347bc0,c09a22c8
,cb347dc0) at netbsd:acpi_attach+0x297
config_attach_loc(cb347dc0,c0a30f58,0,c0c36bc0,0,0,0,80,c0aae300,c0a3efe8) at ne
tbsd:config_attach_loc+0x17c
config_found_ia(cb347dc0,c09a22c8,c0c36bc0,0,20050624,50434146,74,c0b0d460,c0a3e
fe8,c0a3efec) at netbsd:config_found_ia+0x1f
mainbus_rescan(cb347dc0,c09a22c8,0,cb347dc0,8,5,0,0,c0c36c74,0) at netbsd:mainbu
s_rescan+0x1c4
mainbus_attach(0,cb347dc0,0,c060f0bc,0,c0a2f500,cb347dc0,0,c09a15d4,c3c000) at n
etbsd:mainbus_attach+0xa7
config_attach_loc(0,c0a2f500,0,0,0,c0a2f500,1,0,c09a15d4,c3c000) at netbsd:confi
g_attach_loc+0x17c
config_attach(0,c0a2f500,0,0,c0c34014,c34000,c0c36d08,c01d8375,c09a15d4,0) at ne
tbsd:config_attach+0x1d
config_rootfound(c09a15d4,0,c0c36d08,c01d8366,c1f43800,c0c34014,c0c36d38,c040f24
a,0,0) at netbsd:config_rootfound+0x27
cpu_configure(0,0,0,0,0,0,c0c36d48,c0c34014,c34000,c3c000) at netbsd:cpu_configu
re+0x25
main(0,c0100307,0,0,0,0,0,0,0,0) at netbsd:main+0x1fa
db{0}>


The same problem occur with kernel built from an updated source tree
(November 4).
>How-To-Repeat:

>Fix:

>Release-Note:

>Audit-Trail:
From: "Jukka Ruohonen" <jruoho@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/44042 CVS commit: src/sys/dev/acpi
Date: Thu, 4 Nov 2010 20:08:13 +0000

 Module Name:	src
 Committed By:	jruoho
 Date:		Thu Nov  4 20:08:12 UTC 2010

 Modified Files:
 	src/sys/dev/acpi: acpi_display.c

 Log Message:
 Initialize pointers to NULL to avoid accidentally free(9)'ing garbage.
 Should address the panic reported by Alan Bueno in PR # 44042. The root
 cause (an empty _DOD) is yet to be determined.


 To generate a diff of this commit:
 cvs rdiff -u -r1.5 -r1.6 src/sys/dev/acpi/acpi_display.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Jukka Ruohonen <jruohonen@iki.fi>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/44042: ACPI problem on Dell D520 (install media and recompiled kernel)
Date: Fri, 5 Nov 2010 20:14:56 +0200

 On Thu, Nov 04, 2010 at 07:25:00PM +0000, alan.bsd@gmail.com wrote:
 > acpivga0 at acpi0 (VID): ACPI Display Adapter
 > acpiout0 at acpivga0 (TV, 0x0200): ACPI Display Output Device
 > acpiout1 at acpivga0 (CRT, 0x0100): ACPI Display Output Device
 > acpiout2 at acpivga0 (LCD, 0x0400): ACPI Display Output Device
 > acpiout2: brightness levels: 12 24 36 48 60 72 84 100
 > acpiout3 at acpivga0 (DVI, 0x0300): ACPI Display Output Device
 > acpivga0: connected output devices:
 > acpivga0:   0x0100 (acpiout1): Ext. Monitor, head 0, bios detect
 > acpivga0:   0x0200 (acpiout0): TV, head 0, bios detect
 > acpivga0:   0x0400 (acpiout2): Unknown Output Device, head 0, bios detect
 > acpivga0:   0x0300 (acpiout3): Unknown Output Device, head 0, bios detect
 > acpivga1 at acpi0 (VID2): ACPI Display Adapter

 The panic should be hopefully fixed(?).

 There are two instances of acpivga(4) on this system, but it appears that
 the second one is not supported properly by the vendor:

 > ACPI Warning for \_SB_.PCI0.VID2._DOD: Return Package has no elements (empty) (2
 > 0100528/nspredef-572)
 > acpivga1: failed to evaluate \_SB_.PCI0.VID2._DOD: AE_BAD_DATA

 If you post the acpidump(8) output of this system,

 	# acpidump -dt > foo.asl

 we have the necessary information to decide whether this is a firmware bug.

 - Jukka.

From: "Alan R. S. Bueno" <alan.bsd@gmail.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/44042: ACPI problem on Dell D520 (install media and
 recompiled kernel)
Date: Fri, 5 Nov 2010 16:48:07 -0200

 On Fri, Nov 5, 2010 at 4:20 PM, Jukka Ruohonen <jruohonen@iki.fi> wrote:
 > =A0The panic should be hopefully fixed(?).

 Yep! Don't panic, but the ugly message is still alive. :p dmesg(8):

 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     2006, 2007, 2008, 2009, 2010
     The NetBSD Foundation, Inc.  All rights reserved.
 Copyright (c) 1982, 1986, 1989, 1991, 1993
     The Regents of the University of California.  All rights reserved.

 NetBSD 5.99.39 (GENERIC) #0: Fri Nov  5 09:52:13 BRST 2010
 	root@amon-ereb.arda.net:/usr/obj/sys/arch/i386/compile/GENERIC
 total memory =3D 1014 MB
 avail memory =3D 985 MB
 timecounter: Timecounters tick every 10.000 msec
 timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
 Dell Inc. Latitude D520
 mainbus0 (root)
 cpu0 at mainbus0 apid 0: Intel 686-class, 1596MHz, id 0x10661
 ioapic0 at mainbus0 apid 1: pa 0xfec00000, version 20, 24 pins
 acpi0 at mainbus0: Intel ACPICA 20100528
 acpi0: X/RSDT: OemId <DELL  , M07    ,27d7051c>, AslId <ASL ,00000061>
 acpi0: SCI interrupting at int 9
 timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
 CPU0 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
 CPU1 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
 acpiwmi0 at acpi0 (AMW0, pnp0c14-0): ACPI WMI Interface
 wmidell0 at acpiwmi0: Dell WMI mappings
 acpiacad0 at acpi0 (AC, ACPI0003): ACPI AC Adapter
 acpibat0 at acpi0 (BAT0, PNP0C0A-1): ACPI Battery
 acpibat1 at acpi0 (BAT1, PNP0C0A-2): ACPI Battery
 acpilid0 at acpi0 (LID, PNP0C0D): ACPI Lid Switch
 acpibut0 at acpi0 (PBTN, PNP0C0C): ACPI Power Button
 acpibut1 at acpi0 (SBTN, PNP0C0E): ACPI Sleep Button
 MB1 (PNP0C01) at acpi0 not configured
 MB2 (PNP0C01) at acpi0 not configured
 MB3 (PNP0C01) at acpi0 not configured
 pckbc1 at acpi0 (PS2M, PNP0F13) (aux port): irq 12
 pckbc2 at acpi0 (KBC, PNP0303) (kbd port): io 0x60,0x64,0x62,0x66 irq 1
 attimer1 at acpi0 (TMR, PNP0100): io 0x40-0x43,0x50-0x53 irq 2
 pcppi1 at acpi0 (SPKR, PNP0800): io 0x61,0x63,0x65,0x67
 midi0 at pcppi1: PC speaker
 sysbeep0 at pcppi1
 MB4 (PNP0C01) at acpi0 not configured
 npx1 at acpi0 (COPR, PNP0C04): io 0xf0-0xff irq 13
 npx1: reported by CPUID; using exception 16
 hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff
 timecounter: Timecounter "hpet0" frequency 14318179 Hz quality 2000
 UAR1 (PNP0501) at acpi0 not configured
 acpivga0 at acpi0 (VID): ACPI Display Adapter
 acpiout0 at acpivga0 (TV, 0x0200): ACPI Display Output Device
 acpiout1 at acpivga0 (CRT, 0x0100): ACPI Display Output Device
 acpiout2 at acpivga0 (LCD, 0x0400): ACPI Display Output Device
 acpiout2: brightness levels: 12 24 36 48 60 72 84 100
 acpiout3 at acpivga0 (DVI, 0x0300): ACPI Display Output Device
 acpivga0: connected output devices:
 acpivga0:   0x0100 (acpiout1): Ext. Monitor, head 0, bios detect
 acpivga0:   0x0200 (acpiout0): TV, head 0, bios detect
 acpivga0:   0x0400 (acpiout2): Unknown Output Device, head 0, bios detect
 acpivga0:   0x0300 (acpiout3): Unknown Output Device, head 0, bios detect
 acpivga1 at acpi0 (VID2): ACPI Display Adapter
 ACPI Warning for \_SB_.PCI0.VID2._DOD: Return Package has no elements
 (empty) (20100528/nspredef-572)
 acpivga1: failed to evaluate \_SB_.PCI0.VID2._DOD: AE_BAD_DATA
 acpitz0 at acpi0 (THM): ACPI Thermal Zone
 acpitz0: levels: critical 126.0 C, passive cooling
 apm0 at acpi0: Power Management spec V1.2
 pckbd0 at pckbc2 (kbd slot)
 pckbc2: using irq 1 for kbd slot
 wskbd0 at pckbd0: console keyboard
 pms0 at pckbc2 (aux slot)
 pckbc2: using irq 12 for aux slot
 wsmouse0 at pms0 mux 0
 attimer1: attached to pcppi1
 pci0 at mainbus0 bus 0: configuration mode 1
 pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
 pchb0 at pci0 dev 0 function 0: vendor 0x8086 product 0x27a0 (rev. 0x03)
 agp0 at pchb0: detected 7932k stolen memory
 agp0: aperture at 0xd0000000, size 0x10000000
 vga1 at pci0 dev 2 function 0: vendor 0x8086 product 0x27a2 (rev. 0x03)
 wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
 wsmux1: connecting to wsdisplay0
 i915drm0 at vga1: Intel i945GM
 i915drm0: AGP at 0xd0000000 256MB
 i915drm0: Initialized i915 1.6.0 20080730
 vendor 0x8086 product 0x27a6 (miscellaneous display, revision 0x03) at
 pci0 dev 2 function 1 not configured
 hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
 hdaudio0: interrupting at ioapic0 pin 21
 hdafg0 at hdaudio0: Sigmatel STAC9200
 hdafg0: DAC00 2ch: Speaker [Built-In], HP Out [Jack]
 hdafg0: ADC01 2ch: Line In [Jack], Mic In [Built-In]
 hdafg0: 2ch/2ch 44100Hz 48000Hz 88200Hz 96000Hz 192000Hz 16/16 20/32 24/32
 audio0 at hdafg0: full duplex, playback, capture, independent
 hdvsmfg at hdaudio0 not configured
 ppb0 at pci0 dev 28 function 0: vendor 0x8086 product 0x27d0 (rev. 0x01)
 ppb0: disabling notification events
 pci1 at ppb0 bus 11
 pci1: i/o space, memory space enabled, rd/line, wr/inv ok
 ppb1 at pci0 dev 28 function 1: vendor 0x8086 product 0x27d2 (rev. 0x01)
 ppb1: disabling notification events
 pci2 at ppb1 bus 12
 pci2: i/o space, memory space enabled, rd/line, wr/inv ok
 wpi0 at pci2 dev 0 function 0: vendor 0x8086 product 0x4222 (rev. 0x02)
 wpi0: interrupting at ioapic0 pin 17
 wpi0: MoW2, address 00:1c:bf:73:d1:4a
 wpi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
 wpi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
 wpi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps
 24Mbps 36Mbps 48Mbps 54Mbps
 uhci0 at pci0 dev 29 function 0: vendor 0x8086 product 0x27c8 (rev. 0x01)
 uhci0: interrupting at ioapic0 pin 20
 usb0 at uhci0: USB revision 1.0
 uhci1 at pci0 dev 29 function 1: vendor 0x8086 product 0x27c9 (rev. 0x01)
 uhci1: interrupting at ioapic0 pin 21
 usb1 at uhci1: USB revision 1.0
 uhci2 at pci0 dev 29 function 2: vendor 0x8086 product 0x27ca (rev. 0x01)
 uhci2: interrupting at ioapic0 pin 22
 usb2 at uhci2: USB revision 1.0
 uhci3 at pci0 dev 29 function 3: vendor 0x8086 product 0x27cb (rev. 0x01)
 uhci3: interrupting at ioapic0 pin 23
 usb3 at uhci3: USB revision 1.0
 ehci0 at pci0 dev 29 function 7: vendor 0x8086 product 0x27cc (rev. 0x01)
 ehci0: interrupting at ioapic0 pin 20
 ehci0: EHCI version 1.0
 ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2 uhci3
 usb4 at ehci0: USB revision 2.0
 ppb2 at pci0 dev 30 function 0: vendor 0x8086 product 0x2448 (rev. 0xe1)
 pci3 at ppb2 bus 2
 pci3: i/o space, memory space enabled
 bce0 at pci3 dev 0 function 0: Broadcom BCM4401-B0 10/100 Ethernet
 bce0: interrupting at ioapic0 pin 17
 bmtphy0 at bce0 phy 1: BCM4401 10/100 media interface, rev. 0
 bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 bce0: Ethernet address 00:1c:23:a8:c7:a3
 cbb0 at pci3 dev 1 function 0: vendor 0x1217 product 0x7135 (rev. 0x21)
 fwohci0 at pci3 dev 1 function 4: vendor 0x1217 product 0x00f7 (rev. 0x02)
 fwohci0: interrupting at ioapic0 pin 19
 fwohci0: OHCI version 1.10 (ROM=3D0)
 fwohci0: No. of Isochronous channels is 8.
 fwohci0: EUI64 37:4f:c0:00:13:95:a5:a1
 fwohci0: Phy 1394a available S400, 1 ports.
 fwohci0: Link S400, max_rec 2048 bytes.
 ieee1394if0 at fwohci0: IEEE1394 bus
 fwip0 at ieee1394if0: IP over IEEE1394
 fwohci0: Initiate bus reset
 cbb0: cacheline 0x0 lattimer 0x40
 cbb0: bhlc 0x824000
 cbb0: interrupting at ioapic0 pin 19
 cardslot0 at cbb0
 cardbus0 at cardslot0: bus 3
 pcmcia0 at cardslot0
 ichlpcib0 at pci0 dev 31 function 0: vendor 0x8086 product 0x27b9 (rev. 0x0=
 1)
 timecounter: Timecounter "ichlpcib0" frequency 3579545 Hz quality 1000
 ichlpcib0: 24-bit timer
 ichlpcib0: TCO (watchdog) timer configured.
 gpiobus at ichlpcib0 not configured
 piixide0 at pci0 dev 31 function 2: Intel 82801GBM/GHM Serial ATA
 Controller (ICH7) (rev. 0x01)
 piixide0: bus-master DMA support present
 piixide0: primary channel wired to compatibility mode
 piixide0: primary channel interrupting at ioapic0 pin 14
 atabus0 at piixide0 channel 0
 piixide0: secondary channel wired to compatibility mode
 piixide0: secondary channel interrupting at ioapic0 pin 15
 atabus1 at piixide0 channel 1
 ichsmb0 at pci0 dev 31 function 3: vendor 0x8086 product 0x27da (rev. 0x01)
 ichsmb0: interrupting at ioapic0 pin 17
 iic0 at ichsmb0: I2C bus
 isa0 at ichlpcib0
 com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
 fwohci0: BUS reset
 fwohci0: node_id=3D0xc800ffc0, gen=3D1, CYCLEMASTER mode
 ieee1394if0: 1 nodes, maxhop <=3D 0 cable IRM irm(0) (me)
 ieee1394if0: bus manager 0
 timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
 acpiacad0: AC adapter online.
 uhub0 at usb0: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr =
 1
 uhub0: 2 ports with 2 removable, self powered
 uhub1 at usb1: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr =
 1
 uhub1: 2 ports with 2 removable, self powered
 uhub2 at usb2: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr =
 1
 uhub2: 2 ports with 2 removable, self powered
 uhub3 at usb3: vendor 0x8086 UHCI root hub, class 9/0, rev 1.00/1.00, addr =
 1
 uhub3: 2 ports with 2 removable, self powered
 uhub4 at usb4: vendor 0x8086 EHCI root hub, class 9/0, rev 2.00/1.00, addr =
 1
 uhub4: 8 ports with 8 removable, self powered
 uhub5 at uhub4 port 2: vendor 0x413c product 0xa005, class 9/0, rev
 2.00/50.18, addr 2
 uhub5: multiple transaction translators
 uhub5: 4 ports with 0 removable, self powered
 wd0 at atabus0 drive 0: <ST980811AS>
 wd0: drive supports 16-sector PIO transfers, LBA48 addressing
 wd0: 76319 MB, 155061 cyl, 16 head, 63 sec, 512 bytes/sect x 156301488 sect=
 ors
 wd0: 32-bit data port
 wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
 wd0(piixide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DM=
 A)
 atapibus0 at atabus1: 2 targets
 cd0 at atapibus0 drive 0: <TSSTcorp DVD+/-RW TS-L632D, , DE04> cdrom remova=
 ble
 cd0: 32-bit data port
 cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
 cd0(piixide0:1:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA=
 )
 rum0 at uhub4 port 4
 rum0: Ralink 802.11 bg WLAN, rev 2.00/0.01, addr 3
 rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, address 00:0e:2e:4a:a1:09
 rum0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
 rum0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps
 24Mbps 36Mbps 48Mbps 54Mbps
 Kernelized RAIDframe activated
 boot device: wd0
 root on wd0a dumps on wd0b
 root file system type: ffs
 wsdisplay0: screen 1 added (80x25, vt100 emulation)
 wsdisplay0: screen 2 added (80x25, vt100 emulation)
 wsdisplay0: screen 3 added (80x25, vt100 emulation)
 wsdisplay0: screen 4 added (80x25, vt100 emulation)


 > =A0If you post the acpidump(8) output of this system,
 >
 > =A0 =A0 =A0 =A0# acpidump -dt > foo.asl
 >

 # acpidump -dt
 /*
   RSD PTR: OEM=3DDELL, ACPI_Rev=3D1.0x (0)
 	RSDT=3D0x3f6d3d56, cksum=3D65
  */
 /*
   RSDT: Length=3D64, Revision=3D1, Checksum=3D80,
 	OEMID=3DDELL, OEM Table ID=3DM07, OEM Revision=3D0x27d7051c,
 	Creator ID=3DASL, Creator Revision=3D0x61
 	Entries=3D{ 0x3f6d4800, 0x3f6d4f00, 0x3f6d5000, 0x3f6d4fc0, 0x3f6d509c,
 0x3f6d4272, 0x3f6d3d96 }
  */
 /*
   FACP: Length=3D116, Revision=3D1, Checksum=3D241,
 	OEMID=3DDELL, OEM Table ID=3DM07, OEM Revision=3D0x27d7051c,
 	Creator ID=3DASL, Creator Revision=3D0x61
  	FACS=3D0x3f6e3c00, DSDT=3D0x3f6d5400
 	INT_MODEL=3DAPIC
 	Preferred_PM_Profile=3DMobile (2)
 	SCI_INT=3D9
 	SMI_CMD=3D0xb2, ACPI_ENABLE=3D0x70, ACPI_DISABLE=3D0x71, S4BIOS_REQ=3D0x97
 	PSTATE_CNT=3D0x80
 	PM1a_EVT_BLK=3D0x1000-0x1003
 	PM1a_CNT_BLK=3D0x1004-0x1005
 	PM2_CNT_BLK=3D0x1020-0x1020
 	PM_TMR_BLK=3D0x1008-0x100b
 	GPE0_BLK=3D0x1028-0x102f
 	P_LVL2_LAT=3D150 us, P_LVL3_LAT=3D250 us
 	FLUSH_SIZE=3D0, FLUSH_STRIDE=3D0
 	DUTY_OFFSET=3D1, DUTY_WIDTH=3D3
 	DAY_ALRM=3D13, MON_ALRM=3D0, CENTURY=3D50
 	IAPC_BOOT_ARCH=3D{LEGACY_DEVICES,8042}
 	Flags=3D{WBINVD,C1_SUPPORTED,C2_MP_SUPPORTED,POWER_BUTTON,SLEEP_BUTTON,S4_=
 RTC_WAKE,DOCKING_SUPPORTED,PLATFORM_CLOCK}
  */
 /*
   FACS:	Length=3D64, HwSig=3D0x000000fd, Firm_Wake_Vec=3D0x00000000
 	Global_Lock=3D
 	Flags=3DS4BIOS
 	Version=3D0
  */
 /*
   DSDT: Length=3D18851, Revision=3D1, Checksum=3D181,
 	OEMID=3DINT430, OEM Table ID=3DSYSFexxx, OEM Revision=3D0x1001,
 	Creator ID=3DINTL, Creator Revision=3D0x20050624
  */
 /*
   HPET: Length=3D56, Revision=3D1, Checksum=3D168,
 	OEMID=3DDELL, OEM Table ID=3DM07, OEM Revision=3D0x1,
 	Creator ID=3DASL, Creator Revision=3D0x61
 	HPET Number=3D0
 	ADDR=3D0xfed00000:0[0] (Memory)	HW Rev=3D0x1
 	Comparators=3D2
 	Counter Size=3D1
 	Legacy IRQ routing capable=3D{TRUE}
 	PCI Vendor ID=3D0x8086
 	Minimal Tick=3D128
  */
 /*
   APIC: Length=3D104, Revision=3D1, Checksum=3D103,
 	OEMID=3DDELL, OEM Table ID=3DM07, OEM Revision=3D0x27d7051c,
 	Creator ID=3DASL, Creator Revision=3D0x47
 	Local APIC ADDR=3D0xfee00000
 	Flags=3D{PC-AT}

 	Type=3DLocal APIC
 	ACPI CPU=3D0
 	Flags=3D{ENABLED}
 	APIC ID=3D0

 	Type=3DLocal APIC
 	ACPI CPU=3D1
 	Flags=3D{DISABLED}
 	APIC ID=3D1

 	Type=3DIO APIC
 	APIC ID=3D1
 	INT BASE=3D0
 	ADDR=3D0x00000000fec00000

 	Type=3DINT Override
 	BUS=3D0
 	IRQ=3D0
 	INTR=3D2
 	Flags=3D{Polarity=3Dconforming, Trigger=3Dconforming}

 	Type=3DINT Override
 	BUS=3D0
 	IRQ=3D9
 	INTR=3D9
 	Flags=3D{Polarity=3Dactive-hi, Trigger=3Dlevel}

 	Type=3DLocal APIC NMI
 	ACPI CPU=3D0
 	LINT Pin=3D1
 	Flags=3D{Polarity=3Dactive-hi, Trigger=3Dedge}

 	Type=3DLocal APIC NMI
 	ACPI CPU=3D1
 	LINT Pin=3D1
 	Flags=3D{Polarity=3Dactive-hi, Trigger=3Dedge}
  */
 /*
   MCFG: Length=3D62, Revision=3D16, Checksum=3D81,
 	OEMID=3DDELL, OEM Table ID=3DM07, OEM Revision=3D0x27d7051c,
 	Creator ID=3DASL, Creator Revision=3D0x61

 	Base Address=3D0x00000000f0000000
 	Segment Group=3D0x0000
 	Start Bus=3D0
 	End Bus=3D63
  */
 /*
   SLIC: Length=3D36, Revision=3D1, Checksum=3D155,
 	OEMID=3DDELL, OEM Table ID=3DM07, OEM Revision=3D0x27d7051c,
 	Creator ID=3DASL, Creator Revision=3D0x61
  */
 /*
   SSDT: Length=3D454, Revision=3D1, Checksum=3D157,
 	OEMID=3DPmRef, OEM Table ID=3DCpu0Cst, OEM Revision=3D0x3001,
 	Creator ID=3DINTL, Creator Revision=3D0x20050624
  */
 /*
   SSDT: Length=3D1244, Revision=3D1, Checksum=3D50,
 	OEMID=3DPmRef, OEM Table ID=3DCpuPm, OEM Revision=3D0x3000,
 	Creator ID=3DINTL, Creator Revision=3D0x20050624
  */
 /*
  * Intel ACPI Component Architecture
  * AML Disassembler version 20100528
  *
  * Disassembly of /tmp/acpidump.01092a, Fri Nov  5 16:40:00 2010
  *
  *
  * Original Table Header:
  *     Signature        "DSDT"
  *     Length           0x00004FFD (20477)
  *     Revision         0x01 **** ACPI 1.0, no 64-bit math support
  *     Checksum         0xD1
  *     OEM ID           "INT430"
  *     OEM Table ID     "SYSFexxx"
  *     OEM Revision     0x00001001 (4097)
  *     Compiler ID      "INTL"
  *     Compiler Version 0x20050624 (537200164)
  */
 DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "INT430", "SYSFexxx",
 0x00001001)
 {
     Name (VERS, Package (0x03)
     {
         "Project: DELL D05    ",
         "Date: 01/01/2005",
         "Ver: 1.00.00"
     })
     Event (EJTD)
     Name (MISC, Buffer (0x09)
     {
         /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
         /* 0008 */    0x00
     })
     CreateByteField (MISC, 0x00, MIS0)
     CreateByteField (MISC, 0x02, MIS2)
     CreateByteField (MISC, 0x03, MIS3)
     CreateByteField (MISC, 0x04, MIS4)
     CreateByteField (MISC, 0x05, MIS5)
     CreateByteField (MISC, 0x06, MIS6)
     CreateByteField (MISC, 0x07, MIS7)
     CreateByteField (MISC, 0x08, MIS8)
     Mutex (SMIX, 0x01)
     Method (SMI, 2, NotSerialized)
     {
         Acquire (SMIX, 0xFFFF)
         Store (Arg1, \_SB.SMIA)
         Store (Arg0, \_SB.SMIC)
         Store (\_SB.SMIC, Local0)
         While (LNotEqual (Local0, 0x00))
         {
             Store (\_SB.SMIC, Local0)
         }

         Store (\_SB.SMIA, Local1)
         Release (SMIX)
         Return (Local1)
     }

     Name (SXX0, Buffer (0x0100) {})
     Name (SXX1, Buffer (0x08) {})
     CreateWordField (SXX1, 0x00, SXX2)
     CreateWordField (SXX1, 0x04, SXX3)
     Method (SX10, 0, NotSerialized)
     {
         Acquire (SMIX, 0xFFFF)
         Store (0x00, SXX2)
     }

     Method (SX30, 1, NotSerialized)
     {
         Store (SXX2, Local0)
         Increment (Local0)
         If (LLessEqual (Local0, SizeOf (SXX0)))
         {
             CreateByteField (SXX0, SXX2, SX20)
             Store (Arg0, SX20)
             Store (Local0, SXX2)
         }
     }

     Method (SX31, 1, NotSerialized)
     {
         Store (SXX2, Local0)
         Add (Local0, 0x02, Local0)
         If (LLessEqual (Local0, SizeOf (SXX0)))
         {
             CreateWordField (SXX0, SXX2, SX21)
             Store (Arg0, SX21)
             Store (Local0, SXX2)
         }
     }

     Method (SX32, 1, NotSerialized)
     {
         Store (SXX2, Local0)
         Add (Local0, 0x04, Local0)
         If (LLessEqual (Local0, SizeOf (SXX0)))
         {
             CreateDWordField (SXX0, SXX2, SX22)
             Store (Arg0, SX22)
             Store (Local0, SXX2)
         }
     }

     Method (SX33, 2, NotSerialized)
     {
         If (LLess (Arg1, SizeOf (Arg0)))
         {
             CreateByteField (Arg0, Arg1, SX20)
             SX30 (SX20)
         }
     }

     Method (SX34, 2, NotSerialized)
     {
         Store (0x00, Local0)
         While (LLess (Local0, Arg1))
         {
             SX33 (Arg0, Local0)
             Increment (Local0)
         }
     }

     Method (SXX6, 2, NotSerialized)
     {
         Store (Arg1, \_SB.SMIA)
         Store (Arg0, \_SB.SMIC)
         Store (\_SB.SMIC, Local0)
         While (LNotEqual (Local0, 0x00))
         {
             Store (\_SB.SMIC, Local0)
         }

         Return (\_SB.SMIA)
     }

     Method (SXX5, 2, NotSerialized)
     {
         If (LLess (Arg1, SizeOf (Arg0)))
         {
             CreateByteField (Arg0, Arg1, SX20)
             SXX6 (0x7C, SX20)
         }
     }

     Method (SXX4, 0, NotSerialized)
     {
         SXX6 (0x7B, 0x00)
         Store (0x00, Local0)
         While (LLess (Local0, SXX2))
         {
             SXX5 (SXX0, Local0)
             Increment (Local0)
         }
     }

     Method (SXX8, 2, NotSerialized)
     {
         If (LLess (Arg1, SizeOf (Arg0)))
         {
             CreateByteField (Arg0, Arg1, SX20)
             Store (SXX6 (0x7D, 0x00), SX20)
         }
     }

     Method (SXX7, 0, NotSerialized)
     {
         Store (0x00, Local0)
         While (LLess (Local0, SXX3))
         {
             Add (SXX2, Local0, Local1)
             SXX8 (SXX0, Local1)
             Increment (Local0)
         }
     }

     Method (SX11, 0, NotSerialized)
     {
         SXX4 ()
         Store (SXX6 (0x79, 0x00), SXX3)
         Add (SXX2, SXX3, Local0)
         If (LLess (SizeOf (SXX0), Local0))
         {
             Store (SizeOf (SXX0), Local0)
             Subtract (Local0, SXX2, Local0)
             Store (Local0, SXX3)
         }

         SXX7 ()
     }

     Method (SX40, 0, NotSerialized)
     {
         Store (SXX2, Local0)
         Increment (Local0)
         If (LLessEqual (Local0, SizeOf (SXX0)))
         {
             CreateByteField (SXX0, SXX2, SX20)
             Store (Local0, SXX2)
             Return (SX20)
         }

         Return (0x00)
     }

     Method (SX41, 0, NotSerialized)
     {
         Store (SXX2, Local0)
         Add (Local0, 0x02, Local0)
         If (LLessEqual (Local0, SizeOf (SXX0)))
         {
             CreateWordField (SXX0, SXX2, SX21)
             Store (Local0, SXX2)
             Return (SX21)
         }

         Return (0x00)
     }

     Method (SX42, 0, NotSerialized)
     {
         Store (SXX2, Local0)
         Add (Local0, 0x04, Local0)
         If (LLessEqual (Local0, SizeOf (SXX0)))
         {
             CreateDWordField (SXX0, SXX2, SX22)
             Store (Local0, SXX2)
             Return (SX22)
         }

         Return (0x00)
     }

     Method (SX43, 2, NotSerialized)
     {
         If (LLess (Arg1, SizeOf (Arg0)))
         {
             CreateByteField (Arg0, Arg1, SX20)
             Store (SX40 (), SX20)
         }
     }

     Method (SX44, 2, NotSerialized)
     {
         Store (0x00, Local0)
         While (LLess (Local0, Arg1))
         {
             SX43 (Arg0, Local0)
             Increment (Local0)
         }
     }

     Method (SX45, 0, NotSerialized)
     {
         Store (SX40 (), Local0)
         Name (SX23, Buffer (Local0) {})
         SX44 (SX23, Local0)
         Return (SX23)
     }

     Method (SX12, 0, NotSerialized)
     {
         Release (SMIX)
     }

     Method (PNPQ, 1, NotSerialized)
     {
         SX10 ()
         SX30 (0x00)
         SX30 (0x02)
         SX30 (Arg0)
         SX11 ()
         Store (SX40 (), Local0)
         SX12 ()
         Return (Local0)
     }

     Method (PNPD, 1, NotSerialized)
     {
         SX10 ()
         SX30 (0x00)
         SX30 (0x03)
         SX30 (Arg0)
         SX11 ()
         SX12 ()
     }

     Method (PNPG, 1, NotSerialized)
     {
         SX10 ()
         SX30 (0x00)
         SX30 (0x00)
         SX30 (Arg0)
         SX11 ()
         Name (PGET, Buffer (SXX3) {})
         SX44 (PGET, SXX3)
         SX12 ()
         Return (PGET)
     }

     Method (PNPS, 2, NotSerialized)
     {
         SX10 ()
         SX30 (0x00)
         SX30 (0x01)
         SX30 (Arg0)
         SX34 (Arg1, SizeOf (Arg1))
         SX11 ()
         SX12 ()
     }

     Method (PSW, 2, NotSerialized)
     {
         SX10 ()
         SX30 (0x06)
         SX30 (Arg0)
         SX30 (Arg1)
         SX11 ()
         SX12 ()
     }

     Method (DSS, 2, NotSerialized)
     {
         SX10 ()
         SX30 (0x08)
         SX30 (Arg0)
         SX32 (Arg1)
         SX11 ()
         SX12 ()
     }

     Method (GMEM, 0, NotSerialized)
     {
         SX10 ()
         SX30 (0x07)
         SX11 ()
         Store (SX42 (), Local0)
         SX12 ()
         Return (Local0)
     }

     Method (SMMB, 0, NotSerialized)
     {
         SX10 ()
         SX30 (0x11)
         SX11 ()
         Store (SX42 (), Local0)
         SX12 ()
         Return (Local0)
     }

     Method (GORL, 0, NotSerialized)
     {
         SX10 ()
         SX30 (0x09)
         SX11 ()
         Store (SX42 (), Local0)
         SX12 ()
         Return (Local0)
     }

     Mutex (WMIS, 0x01)
     Name (WM00, 0x00)
     Method (WM02, 0, NotSerialized)
     {
         SX10 ()
         SX30 (0x15)
         SX11 ()
         Store (SX42 (), WM00)
         SX12 ()
     }

     Method (WM03, 3, NotSerialized)
     {
         OperationRegion (WWPR, SystemMemory, Arg0, 0x01)
         Field (WWPR, ByteAcc, Lock, Preserve)
         {
             MEMW,   8
         }

         CreateByteField (Arg1, Arg2, WVAL)
         Store (WVAL, MEMW)
     }

     Method (WM05, 3, NotSerialized)
     {
         OperationRegion (WWPR, SystemMemory, Arg0, 0x04)
         Field (WWPR, ByteAcc, Lock, Preserve)
         {
             MW32,   32
         }

         CreateDWordField (Arg1, Arg2, WVAL)
         Store (WVAL, MW32)
     }

     Method (WM04, 3, NotSerialized)
     {
         OperationRegion (WRPR, SystemMemory, Arg0, 0x01)
         Field (WRPR, ByteAcc, Lock, Preserve)
         {
             MEMR,   8
         }

         CreateByteField (Arg1, Arg2, WVAL)
         Store (MEMR, WVAL)
         Store (0x00, MEMR)
     }

     Method (WM06, 3, NotSerialized)
     {
         OperationRegion (WRPR, SystemMemory, Arg0, 0x04)
         Field (WRPR, ByteAcc, Lock, Preserve)
         {
             MR32,   32
         }

         CreateDWordField (Arg1, Arg2, WVAL)
         Store (MR32, WVAL)
         Store (0x00, MR32)
     }

     Method (WM07, 2, NotSerialized)
     {
         If (LLessEqual (Arg1, 0x1000))
         {
             Store (WM00, Local0)
             Store (0x00, Local1)
             While (LLess (Local1, Arg1))
             {
                 WM05 (Local0, Arg0, Local1)
                 Add (Local0, 0x04, Local0)
                 Add (Local1, 0x04, Local1)
             }

             SXX6 (0xCC, 0x00)
             Store (WM00, Local0)
             Store (0x00, Local1)
             While (LLess (Local1, Arg1))
             {
                 WM06 (Local0, Arg0, Local1)
                 Add (Local0, 0x04, Local0)
                 Add (Local1, 0x04, Local1)
             }
         }

         Return (Arg0)
     }

     Method (WMI, 2, NotSerialized)
     {
         Acquire (WMIS, 0xFFFF)
         If (LEqual (WM00, 0x00))
         {
             WM02 ()
         }

         WM07 (Arg0, Arg1)
         Release (WMIS)
         Return (Arg0)
     }

     Name (W98S, "Microsoft Windows")
     Name (NT5S, "Microsoft Windows NT")
     Name (WINM, "Microsoft WindowsME: Millennium Edition")
     Name (WXP, "Windows 2001")
     Name (WLG, "Windows 2006")
     Method (GETC, 2, NotSerialized)
     {
         CreateByteField (Arg0, Arg1, TCHR)
         Return (TCHR)
     }

     Method (STRE, 2, NotSerialized)
     {
         Name (STR1, Buffer (0x50) {})
         Name (STR2, Buffer (0x50) {})
         Store (Arg0, STR1)
         Store (Arg1, STR2)
         Store (Zero, Local0)
         Store (One, Local1)
         While (Local1)
         {
             Store (GETC (STR1, Local0), Local1)
             Store (GETC (STR2, Local0), Local2)
             If (LNotEqual (Local1, Local2))
             {
                 Return (Zero)
             }

             Increment (Local0)
         }

         Return (One)
     }

     Method (OSID, 0, NotSerialized)
     {
         If (LEqual (MIS3, 0x00))
         {
             Store (0x01, MIS3)
             If (CondRefOf (\_OSI, Local0))
             {
                 If (\_OSI (WXP))
                 {
                     Store (0x10, MIS3)
                 }

                 If (\_OSI (WLG))
                 {
                     Store (0x20, MIS3)
                 }
             }
             Else
             {
                 If (STRE (\_OS, W98S))
                 {
                     Store (0x02, MIS3)
                 }

                 If (STRE (\_OS, NT5S))
                 {
                     Store (0x08, MIS3)
                 }

                 If (STRE (\_OS, WINM))
                 {
                     Store (0x04, MIS3)
                 }
             }
         }

         Return (MIS3)
     }

     Method (SOST, 0, NotSerialized)
     {
         SX10 ()
         SX30 (0x0A)
         OSID ()
         SX30 (MIS3)
         SX11 ()
         SX12 ()
     }

     Scope (\)
     {
         OperationRegion (RCRB, SystemMemory, 0xF4008000, 0x4000)
         Field (RCRB, DWordAcc, Lock, Preserve)
         {
                     Offset (0x1000),
                     Offset (0x3000),
                     Offset (0x3404),
             HPAS,   2,
                 ,   5,
             HPAE,   1,
                     Offset (0x3418),
                 ,   1,
             PATD,   1,
             SATD,   1,
             SMBD,   1,
             HDAD,   1,
             A97D,   1,
                     Offset (0x341A),
             RPD1,   1,
             RPD2,   1,
             RPD3,   1,
             RPD4,   1,
             RPD5,   1,
             RPD6,   1
         }
     }

     Name (WAKE, 0x00)
     Method (NEVT, 0, NotSerialized)
     {
         Store (SMI (0x8C, 0x00), Local0)
         If (And (Local0, 0x01))
         {
             Notify (\_SB.PBTN, 0x80)
         }

         If (And (Local0, 0x02))
         {
             EJTE ()
         }

         If (And (Local0, 0x04))
         {
             LIDE ()
         }

         If (And (Local0, 0x08))
         {
             PWRE ()
         }

         If (And (Local0, 0x10))
         {
             DCKE ()
         }

         If (And (Local0, 0x20))
         {
             BAYE ()
         }

         If (And (Local0, 0x40))
         {
             Notify (\_SB.SBTN, 0x80)
         }

         If (And (Local0, 0x80))
         {
             SMIE ()
         }
     }

     Method (EJTE, 0, NotSerialized)
     {
         SMI (0xA6, 0x01)
         Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
     }

     Method (LIDE, 0, NotSerialized)
     {
         Store (SMI (0x43, 0x00), Local0)
         If (LAnd (LNotEqual (Local0, 0x00), LNotEqual (Local0, 0x0F)))
         {
             Store (SMI (0x6D, 0x00), Local0)
             If (LEqual (Local0, 0x03))
             {
                 If (LGreaterEqual (OSID (), 0x10))
                 {
                     Notify (\_SB.PCI0, 0x00)
                     Sleep (0x03E8)
                 }
                 Else
                 {
                     If (LEqual (OSID (), 0x08))
                     {
                         Notify (\_SB.PCI0.VID, 0x00)
                         Notify (\_SB.PCI0.VID2, 0x00)
                         Sleep (0x02EE)
                     }
                 }

                 Notify (\_SB.PCI0.VID, 0x80)
             }
         }

         Notify (\_SB.LID, 0x80)
     }

     Method (PWRE, 0, NotSerialized)
     {
         Store (SMI (0x98, 0x00), Local0)
         XOr (Local0, MIS0, Local1)
         And (Local0, Or (0x01, Or (0x02, 0x10)), MIS0)
         If (And (Local1, 0x01))
         {
             Notify (\_SB.AC, 0x80)
         }

         And (MIS0, 0x02, Local2)
         If (And (Local1, 0x02))
         {
             If (Local2)
             {
                 Notify (\_SB.BAT0, 0x81)
             }
             Else
             {
                 Notify (\_SB.BAT0, 0x81)
             }
         }

         If (And (Local1, 0x04))
         {
             If (Local2)
             {
                 Notify (\_SB.BAT0, 0x80)
             }
         }

         If (And (Local1, 0x08))
         {
             If (Local2)
             {
                 Notify (\_SB.BAT0, 0x80)
             }
         }

         And (MIS0, 0x10, Local2)
         If (And (Local1, 0x10))
         {
             If (Local2)
             {
                 Notify (\_SB.BAT1, 0x81)
             }
             Else
             {
                 Notify (\_SB.BAT1, 0x81)
             }
         }

         If (And (Local1, 0x20))
         {
             If (Local2)
             {
                 Notify (\_SB.BAT1, 0x80)
             }
         }

         If (And (Local1, 0x40))
         {
             If (Local2)
             {
                 Notify (\_SB.BAT1, 0x80)
             }
         }
     }

     Method (DCKE, 0, NotSerialized)
     {
         Store (SMI (0x65, 0x22), Local0)
         And (Local0, 0x08, MIS8)
         Store (SMI (0x87, 0x00), Local0)
         If (MIS8)
         {
             XOr (Local0, MIS7, Local1)
             Store (Local0, MIS7)
         }
         Else
         {
             XOr (Local0, MIS2, Local1)
         }

         Store (Local0, MIS2)
         If (Local1)
         {
             If (Local0)
             {
                 Notify (\_SB.PCI0.PCIE.GDCK, 0x00)
             }
             Else
             {
                 SMI (0x8D, 0x00)
                 If (MIS8)
                 {
                     Signal (EJTD)
                 }

                 Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
             }
         }
     }

     Method (BAYE, 0, NotSerialized)
     {
         Store (SMI (0x86, 0x00), Local0)
         If (And (Local0, 0x02))
         {
             SMI (0x90, 0x01)
         }
         Else
         {
             SMI (0x90, 0x00)
         }

         SMI (0xBA, 0x00)
     }

     Method (CESM, 0, NotSerialized)
     {
         SX10 ()
         SX30 (0x18)
         SX11 ()
         Store (SX42 (), Local0)
         SX12 ()
         If (LGreaterEqual (OSID (), 0x20))
         {
             If (And (Local0, 0x04))
             {
                 Notify (\_SB.PCI0.VID.LCD, 0x86)
             }

             If (And (Local0, 0x02))
             {
                 Notify (\_SB.PCI0.VID.LCD, 0x87)
             }
         }
     }

     Method (SMIE, 0, NotSerialized)
     {
         Store (SMI (0x96, 0x00), Local0)
         If (And (Local0, 0x01))
         {
             Notify (\_TZ.THM, 0x80)
         }

         If (And (Local0, 0x20))
         {
             Notify (\_SB.PCI0.VID, 0x81)
         }

         If (And (Local0, 0x02))
         {
             If (LGreaterEqual (OSID (), 0x10))
             {
                 Notify (\_SB.PCI0, 0x00)
                 Sleep (0x03E8)
             }
             Else
             {
                 If (LEqual (OSID (), 0x08))
                 {
                     Notify (\_SB.PCI0.VID, 0x00)
                     Notify (\_SB.PCI0.VID2, 0x00)
                     Sleep (0x02EE)
                 }
             }

             Notify (\_SB.PCI0.VID, 0x80)
         }

         If (And (Local0, 0x04))
         {
             CESM ()
         }

         If (And (Local0, 0x08))
         {
             Notify (\_PR.CPU0, 0x80)
             Notify (\_PR.CPU1, 0x80)
         }

         If (And (Local0, 0x10))
         {
             Notify (\_SB.PCI0.IDE0.SEC0.MAST, 0x01)
             If (LGreaterEqual (OSID (), 0x10))
             {
                 Notify (\_SB.PCI0.IDE0.SEC0, 0x01)
             }
         }

         If (And (Local0, 0x40))
         {
             Store (0x00, MIS5)
         }
     }

     Method (\_PTS, 1, NotSerialized)
     {
         SMI (0x8A, Arg0)
     }

     Method (\_WAK, 1, NotSerialized)
     {
         SMI (0xA7, MIS2)
         SMI (0x9A, Arg0)
         BAYE ()
         If (LEqual (Arg0, 0x04))
         {
             Notify (\_SB.PBTN, 0x02)
             Store (SMI (0x98, 0x00), MIS0)
             Store (0x01, MIS4)
             SOST ()
         }

         Notify (\_SB.AC, 0x80)
         Store (SMI (0x87, 0x00), Local0)
         XOr (Local0, MIS2, Local1)
         If (Local1)
         {
             If (Local0)
             {
                 Notify (\_SB.PCI0.PCIE.GDCK, 0x00)
             }
             Else
             {
                 If (LEqual (OSID (), 0x02))
                 {
                     SMI (0x8D, 0x00)
                     Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
                 }
             }
         }

         Store (Local0, MIS2)
         SMI (0xA6, 0x00)
         Return (Package (0x02)
         {
             0x00,
             0x00
         })
     }

     Method (NWAK, 0, NotSerialized)
     {
         Store (0x01, WAKE)
         Store (SMI (0x89, 0x00), Local0)
         Store (0x00, Local1)
         If (LEqual (Local0, 0x00))
         {
             Store (0x01, Local1)
         }

         If (And (Local0, 0x01))
         {
             Store (0x01, Local1)
         }

         If (And (Local0, 0x02))
         {
             LIDE ()
         }

         If (And (Local0, 0x10))
         {
             Notify (\_SB.PCI0.PCIE.GDCK, 0x02)
         }

         If (And (Local0, 0x40))
         {
             Notify (\_SB.PCI0.PCIE.GDCK, 0x01)
         }

         If (And (Local0, 0x20))
         {
             If (LEqual (OSID (), 0x02))
             {
                 Store (0x01, Local1)
             }
         }

         Notify (\_SB.BAT0, 0x81)
         Notify (\_SB.BAT1, 0x81)
         If (LEqual (Local0, 0x04))
         {
             Store (0x01, Local1)
         }

         If (Local1)
         {
             Notify (\_SB.PBTN, 0x02)
         }

         Store (0x00, WAKE)
     }

     Scope (\_GPE)
     {
         Method (_L01, 0, NotSerialized)
         {
             \_SB.PCI0.POHP ()
         }

         Method (_L19, 0, NotSerialized)
         {
             NEVT ()
         }

         Method (_L16, 0, NotSerialized)
         {
             NWAK ()
         }

         Method (_L0B, 0, NotSerialized)
         {
             Store (0x00, Local0)
             Notify (\_SB.PCI0, 0x02)
         }

         Method (_L18, 0, NotSerialized)
         {
             Store (0x00, Local0)
         }

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

         Method (_L04, 0, NotSerialized)
         {
             Notify (\_SB.PCI0.USB1, 0x02)
         }

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

         Method (_L0E, 0, NotSerialized)
         {
             Notify (\_SB.PCI0.USB3, 0x02)
         }

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

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

         Method (_L09, 0, NotSerialized)
         {
             Store (SMI (0xC6, 0x00), Local0)
             If (And (Local0, 0x02))
             {
                 Notify (\_SB.PCI0.RP02.PXS2, 0x02)
             }
         }
     }

     Name (CRS0, Buffer (0x0192) {})
     CreateWordField (CRS0, 0x0190, CRS1)
     Method (CRS3, 0, NotSerialized)
     {
         Store (0x00, CRS1)
     }

     Method (CRS4, 1, NotSerialized)
     {
         CreateByteField (CRS0, CRS1, CRS2)
         Store (Arg0, CRS2)
         Increment (CRS1)
     }

     Method (CRS5, 1, NotSerialized)
     {
         CreateWordField (CRS0, CRS1, CRS2)
         Store (Arg0, CRS2)
         Increment (CRS1)
         Increment (CRS1)
     }

     Method (CRS6, 1, NotSerialized)
     {
         CreateDWordField (CRS0, CRS1, CRS2)
         Store (Arg0, CRS2)
         Add (CRS1, 0x04, CRS1)
     }

     Method (CR_0, 3, NotSerialized)
     {
         CRS4 (0x86)
         CRS5 (0x09)
         CRS4 (Arg0)
         CRS6 (Arg1)
         CRS6 (Arg2)
     }

     Method (CR_1, 4, NotSerialized)
     {
         CRS4 (0x47)
         CRS4 (0x01)
         CRS5 (Arg0)
         CRS5 (Arg1)
         CRS4 (Arg2)
         CRS4 (Arg3)
     }

     Method (CR_2, 2, NotSerialized)
     {
         CRS4 (0x88)
         CRS5 (0x0D)
         CRS4 (0x02)
         CRS4 (0x0C)
         CRS4 (0x00)
         CRS5 (0x00)
         CRS5 (Arg0)
         Add (Arg0, Arg1, Local0)
         Decrement (Local0)
         CRS5 (Local0)
         CRS5 (0x00)
         CRS5 (Arg1)
     }

     Method (CR_3, 2, NotSerialized)
     {
         CRS4 (0x88)
         CRS5 (0x0D)
         CRS4 (0x01)
         CRS4 (0x0C)
         CRS4 (0x03)
         CRS5 (0x00)
         CRS5 (Arg0)
         Add (Arg0, Arg1, Local0)
         Decrement (Local0)
         CRS5 (Local0)
         CRS5 (0x00)
         CRS5 (Arg1)
     }

     Method (CR_4, 2, NotSerialized)
     {
         CRS4 (0x87)
         CRS5 (0x17)
         CRS4 (0x00)
         CRS4 (0x0C)
         CRS4 (0x03)
         CRS6 (0x00)
         CRS6 (Arg0)
         Add (Arg0, Arg1, Local0)
         Decrement (Local0)
         CRS6 (Local0)
         CRS6 (0x00)
         CRS6 (Arg1)
     }

     Method (CR_5, 0, NotSerialized)
     {
         CRS5 (0x79)
         Store (CRS1, Local0)
         Subtract (0x0192, 0x02, Local1)
         While (LLess (Local0, Local1))
         {
             CRS4 (0x00)
             Increment (Local0)
         }

         Store (0x79, CRS1)
     }

     Scope (\_PR)
     {
         Processor (CPU0, 0x00, 0x00001010, 0x06) {}
         Processor (CPU1, 0x01, 0x00001010, 0x06) {}
     }

     Name (\_S0, Package (0x03)
     {
         0x00,
         0x00,
         0x00
     })
     Name (\_S3, Package (0x03)
     {
         0x05,
         0x00,
         0x00
     })
     Name (\_S4, Package (0x03)
     {
         0x07,
         0x00,
         0x00
     })
     Name (\_S5, Package (0x03)
     {
         0x07,
         0x00,
         0x00
     })
     Scope (\_TZ)
     {
         ThermalZone (THM)
         {
             Method (_CRT, 0, NotSerialized)
             {
                 Store (0x7E, Local0)
                 Multiply (Local0, 0x0A, Local0)
                 Add (Local0, 0x0AAC, Local0)
                 Return (Local0)
             }

             Method (_TMP, 0, NotSerialized)
             {
                 Store (GINF (0x04), Local0)
                 Return (Local0)
             }

             Method (GINF, 1, NotSerialized)
             {
                 SX10 ()
                 SX30 (Arg0)
                 SX11 ()
                 Store (SX41 (), Local0)
                 SX12 ()
                 If (LLess (Local0, 0x0BA6))
                 {
                     Store (0x0BA6, Local0)
                 }

                 Return (Local0)
             }
         }
     }

     Scope (\)
     {
         Name (GPIC, 0x00)
         Method (_PIC, 1, NotSerialized)
         {
             Store (Arg0, GPIC)
         }
     }

     Scope (\_SB)
     {
         OperationRegion (SMIR, SystemIO, 0xB2, 0x02)
         Field (SMIR, ByteAcc, NoLock, Preserve)
         {
             SMIC,   8,
             SMID,   8
         }

         OperationRegion (SMR2, SystemIO, 0x86, 0x01)
         Field (SMR2, ByteAcc, NoLock, Preserve)
         {
             SMIA,   8
         }

         Device (AMW0)
         {
             Mutex (WMIX, 0x01)
             Name (_HID, "*pnp0c14")
             Name (_UID, 0x00)
             Method (STBY, 3, NotSerialized)
             {
                 CreateByteField (Arg0, Arg1, TMP)
                 Store (Arg2, TMP)
             }

             Method (STWD, 3, NotSerialized)
             {
                 CreateWordField (Arg0, Arg1, TMP)
                 Store (Arg2, TMP)
             }

             Method (STDW, 3, NotSerialized)
             {
                 CreateDWordField (Arg0, Arg1, TMP)
                 Store (Arg2, TMP)
             }

             Method (CLBY, 1, NotSerialized)
             {
                 Store (0x00, Local0)
                 While (LLess (Local0, SizeOf (Arg0)))
                 {
                     STBY (Arg0, Local0, 0x00)
                     Increment (Local0)
                 }
             }

             Name (_WDG, Buffer (0x64)
             {
                 /* 0000 */    0xBC, 0xDC, 0x9D, 0x8D, 0x97, 0xA9, 0xDA, 0x1=
 1,
                 /* 0008 */    0xB0, 0x12, 0xB6, 0x22, 0xA1, 0xEF, 0x54, 0x9=
 2,
                 /* 0010 */    0x41, 0x41, 0x01, 0x00, 0xCE, 0x93, 0x05, 0xA=
 8,
                 /* 0018 */    0x97, 0xA9, 0xDA, 0x11, 0xB0, 0x12, 0xB6, 0x2=
 2,
                 /* 0020 */    0xA1, 0xEF, 0x54, 0x92, 0x42, 0x41, 0x01, 0x0=
 2,
                 /* 0028 */    0x94, 0x59, 0xBB, 0x9D, 0x97, 0xA9, 0xDA, 0x1=
 1,
                 /* 0030 */    0xB0, 0x12, 0xB6, 0x22, 0xA1, 0xEF, 0x54, 0x9=
 2,
                 /* 0038 */    0xD0, 0x00, 0x01, 0x08, 0xE0, 0x6C, 0x77, 0xA=
 3,
                 /* 0040 */    0x88, 0x1E, 0xDB, 0x11, 0xA9, 0x8B, 0x08, 0x0=
 0,
                 /* 0048 */    0x20, 0x0C, 0x9A, 0x66, 0x42, 0x43, 0x01, 0x0=
 0,
                 /* 0050 */    0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x1=
 1,
                 /* 0058 */    0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x1=
 0,
                 /* 0060 */    0x4D, 0x4F, 0x01, 0x00
             })
             Name (INFO, Buffer (0x80) {})
             Name (ECD0, 0x00)
             Method (WED0, 1, NotSerialized)
             {
                 Store (Arg0, ECD0)
                 Return (Zero)
             }

             Method (WCAA, 1, NotSerialized)
             {
                 Return (Zero)
             }

             Method (WQAA, 1, NotSerialized)
             {
                 Acquire (WMIX, 0xFFFF)
                 CLBY (INFO)
                 If (LNotEqual (Arg0, 0x00))
                 {
                     Store (INFO, Local1)
                 }
                 Else
                 {
                     STDW (INFO, 0x00, 0x4C4C4544)
                     STDW (INFO, 0x04, 0x494D5720)
                     STDW (INFO, 0x08, 0x01)
                     STDW (INFO, 0x0C, 0x1000)
                     Store (INFO, Local1)
                 }

                 Release (WMIX)
                 Return (Local1)
             }

             Method (WSAA, 2, NotSerialized)
             {
                 Return (Arg1)
             }

             Method (WMBA, 3, NotSerialized)
             {
                 CreateDWordField (Arg2, 0x28, WBUF)
                 Add (WBUF, 0x2C, Local1)
                 If (LLessEqual (Local1, 0x1000))
                 {
                     Store (WMI (Arg2, Local1), Local0)
                 }

                 Return (Local0)
             }

             Method (_WED, 1, NotSerialized)
             {
                 Acquire (WMIX, 0xFFFF)
                 CLBY (INFO)
                 If (LOr (LNotEqual (Arg0, 0xD0), LEqual (ECD0, 0x00)))
                 {
                     Store (INFO, Local1)
                 }
                 Else
                 {
                     SX10 ()
                     SX30 (0x16)
                     SX11 ()
                     Store (SX42 (), Local0)
                     SX12 ()
                     STDW (INFO, 0x00, Local0)
                     Store (INFO, Local1)
                 }

                 Release (WMIX)
                 Return (Local1)
             }

             Name (WQMO, Buffer (0x0572)
             {
                 /* 0000 */    0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x0=
 0,
                 /* 0008 */    0x62, 0x05, 0x00, 0x00, 0x88, 0x1C, 0x00, 0x0=
 0,
                 /* 0010 */    0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x5=
 4,
                 /* 0018 */    0x18, 0xD5, 0x8D, 0x00, 0x01, 0x06, 0x18, 0x4=
 2,
                 /* 0020 */    0x10, 0x0F, 0x10, 0x22, 0x21, 0x04, 0x12, 0x0=
 1,
                 /* 0028 */    0xA1, 0xC8, 0x2C, 0x0C, 0x86, 0x10, 0x38, 0x2=
 E,
                 /* 0030 */    0x84, 0x1C, 0x40, 0x48, 0x1C, 0x14, 0x4A, 0x0=
 8,
                 /* 0038 */    0x84, 0xFA, 0x13, 0xC8, 0xAF, 0x00, 0x84, 0x0=
 E,
                 /* 0040 */    0x05, 0xC8, 0x14, 0x60, 0x50, 0x80, 0x53, 0x0=
 4,
                 /* 0048 */    0x11, 0xF4, 0x2A, 0xC0, 0xA6, 0x00, 0x93, 0x0=
 2,
                 /* 0050 */    0x2C, 0x0A, 0xD0, 0x2E, 0xC0, 0xB2, 0x00, 0xD=
 D,
                 /* 0058 */    0x02, 0xA4, 0xC3, 0x12, 0x91, 0xE0, 0x28, 0x3=
 1,
                 /* 0060 */    0xE0, 0x28, 0x9D, 0xD8, 0xC2, 0x0D, 0x1B, 0xB=
 C,
                 /* 0068 */    0x50, 0x14, 0xCD, 0x20, 0x4A, 0x82, 0xCA, 0x0=
 5,
                 /* 0070 */    0xF8, 0x46, 0x10, 0x78, 0xB9, 0x02, 0x24, 0x4=
 F,
                 /* 0078 */    0x40, 0x9A, 0x05, 0x18, 0x16, 0x60, 0x5D, 0x8=
 0,
                 /* 0080 */    0xEC, 0x21, 0x50, 0xA9, 0x43, 0x40, 0xC9, 0x1=
 9,
                 /* 0088 */    0x02, 0x6A, 0x00, 0xAD, 0x4E, 0x40, 0xF8, 0x9=
 5,
                 /* 0090 */    0x4E, 0x09, 0x49, 0x10, 0xCE, 0x58, 0xC5, 0xE=
 3,
                 /* 0098 */    0x6B, 0x16, 0x4D, 0xCF, 0x49, 0xCE, 0x31, 0xE=
 4,
                 /* 00A0 */    0x78, 0x5C, 0xE8, 0x41, 0xF0, 0x40, 0x0A, 0x4=
 0,
                 /* 00A8 */    0x58, 0x78, 0x08, 0x45, 0x80, 0x41, 0x49, 0x1=
 8,
                 /* 00B0 */    0x0B, 0x75, 0x31, 0x6A, 0xD4, 0x48, 0xD9, 0x8=
 0,
                 /* 00B8 */    0x0C, 0x51, 0xDA, 0xA8, 0xD1, 0x03, 0x3A, 0xB=
 F,
                 /* 00C0 */    0x23, 0x39, 0xBB, 0xA3, 0x3B, 0x92, 0x04, 0x4=
 6,
                 /* 00C8 */    0x3D, 0xA6, 0x63, 0x2C, 0x6C, 0x46, 0x42, 0x8=
 D,
                 /* 00D0 */    0xD1, 0x1C, 0x14, 0x81, 0xC6, 0x0D, 0xDA, 0x1=
 2,
                 /* 00D8 */    0x61, 0x35, 0xAE, 0xD8, 0x67, 0x66, 0xE1, 0xC=
 3,
                 /* 00E0 */    0x12, 0xC6, 0x11, 0x1C, 0x58, 0x82, 0x46, 0xD=
 1,
                 /* 00E8 */    0x34, 0xC7, 0xB3, 0x0D, 0x91, 0xE0, 0x20, 0x4=
 2,
                 /* 00F0 */    0x63, 0x64, 0x40, 0xC8, 0xF3, 0xB0, 0x05, 0x7=
 A,
                 /* 00F8 */    0xE4, 0x09, 0xEC, 0x1E, 0x51, 0x0A, 0x11, 0x3=
 4,
                 /* 0100 */    0xDF, 0x13, 0xA9, 0x51, 0x80, 0x36, 0x0C, 0xD=
 9,
                 /* 0108 */    0x3A, 0x1B, 0x68, 0xA8, 0xB1, 0x1A, 0x43, 0x1=
 1,
                 /* 0110 */    0x44, 0x84, 0xA0, 0x51, 0x0C, 0x16, 0x21, 0x5=
 4,
                 /* 0118 */    0x88, 0xFF, 0x7F, 0x94, 0xA8, 0xA7, 0x14, 0x2=
 4,
                 /* 0120 */    0x6A, 0x65, 0x20, 0x42, 0x0B, 0x66, 0x04, 0x6=
 6,
                 /* 0128 */    0x7F, 0x10, 0x24, 0xC6, 0x99, 0x41, 0x87, 0x0=
 5,
                 /* 0130 */    0xCB, 0x00, 0x91, 0x11, 0x41, 0xA3, 0x61, 0x6=
 7,
                 /* 0138 */    0x01, 0x0F, 0xC7, 0x33, 0x69, 0x7E, 0x62, 0x1=
 A,
                 /* 0140 */    0x9C, 0x09, 0xC6, 0x86, 0x90, 0x06, 0x08, 0x8=
 9,
                 /* 0148 */    0x3A, 0x38, 0x50, 0x02, 0x4B, 0x19, 0x38, 0xB=
 1,
                 /* 0150 */    0x3D, 0x2E, 0x8D, 0xEF, 0x8C, 0xA3, 0x86, 0x3=
 8,
                 /* 0158 */    0xF5, 0x33, 0xF3, 0x3F, 0xC2, 0x5B, 0xF0, 0x1=
 1,
                 /* 0160 */    0x80, 0x8F, 0xC1, 0x83, 0x3D, 0x84, 0x80, 0x4=
 7,
                 /* 0168 */    0xC8, 0xCE, 0x00, 0x06, 0xC4, 0x7B, 0x9F, 0x3=
 4,
                 /* 0170 */    0x99, 0x8B, 0xCF, 0x02, 0x30, 0x86, 0x0F, 0xD=
 7,
                 /* 0178 */    0xF8, 0x28, 0x34, 0x1E, 0x76, 0x3E, 0x60, 0xE=
 3,
                 /* 0180 */    0xE2, 0xF0, 0x3E, 0x14, 0x9C, 0x70, 0xB1, 0x2=
 0,
                 /* 0188 */    0x0A, 0x00, 0x21, 0x59, 0xE7, 0x03, 0xF4, 0xA=
 C,
                 /* 0190 */    0x8F, 0x2D, 0xE0, 0xC3, 0x40, 0xB3, 0x77, 0x0=
 8,
                 /* 0198 */    0x42, 0xF0, 0x22, 0xE0, 0xA3, 0x83, 0x8F, 0x1=
 B,
                 /* 01A0 */    0x1E, 0xF7, 0xF3, 0x06, 0x18, 0x0E, 0x07, 0x1=
 E,
                 /* 01A8 */    0x8E, 0x4F, 0x1B, 0xC0, 0x65, 0x04, 0x5C, 0xD=
 A,
                 /* 01B0 */    0x93, 0xC2, 0x04, 0x92, 0xFC, 0x04, 0x90, 0x1=
 8,
                 /* 01B8 */    0x18, 0xD4, 0x81, 0xC0, 0x07, 0x0B, 0xB8, 0x9=
 2,
                 /* 01C0 */    0xE0, 0x50, 0xC3, 0xF3, 0xC4, 0x1E, 0x10, 0xF=
 E,
                 /* 01C8 */    0xFF, 0x47, 0x79, 0x22, 0x2F, 0x06, 0x9E, 0xF=
 E,
                 /* 01D0 */    0x63, 0x00, 0x8C, 0x03, 0x82, 0xA7, 0x75, 0x5=
 2,
                 /* 01D8 */    0xBE, 0x79, 0x3C, 0x48, 0x78, 0x50, 0x61, 0x1=
 2,
                 /* 01E0 */    0xF8, 0x94, 0xC0, 0xD0, 0xF8, 0x71, 0x03, 0xA=
 C,
                 /* 01E8 */    0xA3, 0xC6, 0x1F, 0x10, 0xE0, 0x9D, 0x24, 0xC=
 E,
                 /* 01F0 */    0xAF, 0xCF, 0x01, 0xE8, 0xD0, 0x70, 0x8A, 0x0=
 C,
                 /* 01F8 */    0xE4, 0x35, 0xE0, 0xA4, 0x4F, 0xC9, 0xE3, 0x4=
 B,
                 /* 0200 */    0xE0, 0x33, 0x07, 0xEC, 0xBB, 0xC1, 0x61, 0x1=
 C,
                 /* 0208 */    0x4C, 0x88, 0x08, 0xEF, 0x01, 0x4F, 0x1D, 0xB=
 E,
                 /* 0210 */    0x6B, 0x3C, 0x0A, 0x04, 0x8A, 0xD0, 0xDB, 0x9=
 9,
                 /* 0218 */    0x83, 0x9E, 0x42, 0x8C, 0x12, 0xED, 0xAC, 0xC=
 2,
                 /* 0220 */    0x3C, 0x70, 0x44, 0xF1, 0x91, 0xC3, 0x08, 0xE=
 F,
                 /* 0228 */    0x1E, 0xBE, 0x13, 0x3C, 0x80, 0xB4, 0x36, 0x3=
 9,
                 /* 0230 */    0xE1, 0x06, 0x7A, 0xE6, 0x60, 0xD1, 0xCE, 0x2=
 C,
                 /* 0238 */    0xB2, 0x00, 0xA2, 0x48, 0xA3, 0x41, 0x9D, 0x1=
 1,
                 /* 0240 */    0x7C, 0x1A, 0xF0, 0xB4, 0x9E, 0x62, 0x7C, 0x9=
 4,
                 /* 0248 */    0x30, 0xC8, 0x19, 0x1E, 0xD8, 0x73, 0xC2, 0x6=
 3,
                 /* 0250 */    0x80, 0x07, 0xCC, 0xEE, 0x07, 0x3E, 0x4E, 0xF=
 8,
                 /* 0258 */    0x5C, 0x80, 0x77, 0x0D, 0xA8, 0x19, 0xFA, 0xB=
 0,
                 /* 0260 */    0x01, 0xE7, 0xD0, 0x81, 0x3F, 0x4D, 0xE0, 0x0=
 F,
                 /* 0268 */    0x16, 0xF8, 0xF1, 0xF8, 0x9A, 0xC3, 0x26, 0x9=
 C,
                 /* 0270 */    0xC0, 0xF2, 0x07, 0x81, 0x1A, 0x99, 0xA1, 0x3=
 D,
                 /* 0278 */    0xCB, 0xD3, 0x7A, 0x0D, 0xF0, 0x69, 0xC7, 0x0=
 4,
                 /* 0280 */    0x3E, 0x6F, 0xF8, 0xFF, 0xFF, 0xCF, 0xF1, 0x7=
 8,
                 /* 0288 */    0xC0, 0xAF, 0xF8, 0x74, 0x41, 0xEE, 0x0A, 0x9=
 E,
                 /* 0290 */    0xAF, 0xCF, 0x2E, 0xCC, 0xC6, 0x78, 0x50, 0xA=
 3,
                 /* 0298 */    0xF0, 0x01, 0x07, 0x77, 0x76, 0xF1, 0x11, 0xC=
 0,
                 /* 02A0 */    0x67, 0x17, 0xE0, 0x39, 0x89, 0x67, 0x09, 0xF=
 0,
                 /* 02A8 */    0x1E, 0x02, 0x7C, 0x22, 0x89, 0xF7, 0xB0, 0x0=
 5,
                 /* 02B0 */    0x63, 0xC4, 0x78, 0xC8, 0x33, 0xAE, 0x7A, 0x1=
 8,
                 /* 02B8 */    0xBA, 0x08, 0x58, 0xDD, 0x7D, 0x05, 0x75, 0xF=
 4,
                 /* 02C0 */    0x02, 0x13, 0xD4, 0x6B, 0x06, 0xEE, 0xF4, 0x0=
 2,
                 /* 02C8 */    0x7C, 0x4E, 0x59, 0xF0, 0xFE, 0xFF, 0xA7, 0x2=
 C,
                 /* 02D0 */    0xE0, 0x7E, 0x55, 0xE0, 0x47, 0x14, 0x30, 0x4=
 0,
                 /* 02D8 */    0x76, 0x76, 0x3A, 0x11, 0xC2, 0x7B, 0xC9, 0x7=
 3,
                 /* 02E0 */    0x88, 0x6F, 0x57, 0x3E, 0x98, 0x04, 0x79, 0x0=
 E,
                 /* 02E8 */    0x88, 0xF0, 0x94, 0xC5, 0xEF, 0x03, 0x51, 0x6=
 2,
                 /* 02F0 */    0x1E, 0x50, 0xA4, 0x28, 0x46, 0x0C, 0xF2, 0x8=
 4,
                 /* 02F8 */    0xE5, 0xEB, 0x49, 0x0C, 0x43, 0x07, 0x0B, 0x1=
 7,
                 /* 0300 */    0x3E, 0xC2, 0x53, 0x16, 0x60, 0xF1, 0x92, 0x8=
 5,
                 /* 0308 */    0x39, 0x65, 0xC1, 0x7C, 0x1B, 0xF8, 0x94, 0x0=
 5,
                 /* 0310 */    0x8E, 0xFF, 0xFF, 0x29, 0x0B, 0x5C, 0xE3, 0x7=
 E,
                 /* 0318 */    0xCA, 0x02, 0x66, 0xD2, 0x9F, 0x02, 0x3E, 0xD=
 5,
                 /* 0320 */    0xF8, 0x09, 0xA0, 0xE8, 0x07, 0x0B, 0x0A, 0xE=
 3,
                 /* 0328 */    0x53, 0x16, 0xE0, 0x4A, 0xDE, 0x01, 0x01, 0x3=
 4,
                 /* 0330 */    0x67, 0x27, 0xDF, 0x16, 0x0C, 0x76, 0xCC, 0xB=
 E,
                 /* 0338 */    0x64, 0xF8, 0x94, 0x08, 0x86, 0x43, 0x86, 0xE=
 F,
                 /* 0340 */    0x54, 0x87, 0xF2, 0xC8, 0xF1, 0x14, 0xE0, 0x2=
 3,
                 /* 0348 */    0x16, 0xD8, 0xE3, 0x1C, 0x03, 0x74, 0x5C, 0xF=
 1,
                 /* 0350 */    0x11, 0xCB, 0xFF, 0xFF, 0x23, 0x16, 0xC0, 0x8=
 D,
                 /* 0358 */    0x03, 0x08, 0xFE, 0xD4, 0x01, 0xEB, 0x1E, 0x1=
 0,
                 /* 0360 */    0xD6, 0x87, 0x0E, 0xE0, 0x21, 0xFB, 0x21, 0xA=
 0,
                 /* 0368 */    0x33, 0x8C, 0x25, 0x83, 0xC8, 0xC6, 0xB9, 0x8=
 6,
                 /* 0370 */    0x8E, 0xD1, 0xE2, 0x17, 0xAA, 0x9B, 0x42, 0xE=
 C,
                 /* 0378 */    0x83, 0xE1, 0xB2, 0x81, 0x04, 0xEA, 0xE1, 0x5=
 A,
                 /* 0380 */    0x30, 0x85, 0x44, 0xD1, 0x68, 0x34, 0x06, 0x2=
 6,
                 /* 0388 */    0x30, 0x82, 0x33, 0x88, 0x01, 0x9D, 0x11, 0x4=
 2,
                 /* 0390 */    0x87, 0x32, 0x9C, 0x8A, 0xF3, 0x10, 0xEA, 0xF=
 F,
                 /* 0398 */    0x4F, 0x30, 0xD4, 0x8D, 0x89, 0xCE, 0xCE, 0xF=
 3,
                 /* 03A0 */    0xE7, 0xB7, 0x11, 0x9F, 0x08, 0x0C, 0xEC, 0x2=
 B,
                 /* 03A8 */    0xC4, 0x5B, 0x06, 0x58, 0x86, 0xE5, 0xC5, 0x3=
 D,
                 /* 03B0 */    0x01, 0x1C, 0xE3, 0x49, 0x26, 0xA8, 0xE6, 0x5=
 8,
                 /* 03B8 */    0x83, 0x9A, 0x83, 0xAF, 0x02, 0x6F, 0x64, 0x2=
 6,
                 /* 03C0 */    0xF0, 0x15, 0x0C, 0x6C, 0xA7, 0x19, 0x8C, 0xB=
 E,
                 /* 03C8 */    0x3B, 0x01, 0x28, 0x80, 0x7C, 0x14, 0xF0, 0x7=
 D,
                 /* 03D0 */    0xF9, 0x6D, 0x80, 0xCD, 0xE2, 0x95, 0xD9, 0x6=
 8,
                 /* 03D8 */    0x3E, 0x7F, 0x22, 0x86, 0x8E, 0x12, 0x33, 0x7=
 4,
                 /* 03E0 */    0x0A, 0xE2, 0xA1, 0x3B, 0xE8, 0xD0, 0xD1, 0xC=
 7,
                 /* 03E8 */    0x01, 0x9F, 0xAC, 0x70, 0xC1, 0x0E, 0x5F, 0xD=
 0,
                 /* 03F0 */    0x26, 0x77, 0xB4, 0x27, 0xE6, 0x59, 0x78, 0x9=
 E,
                 /* 03F8 */    0xB8, 0xB9, 0x83, 0xE9, 0x88, 0x04, 0x63, 0xF=
 0,
                 /* 0400 */    0x98, 0xC9, 0x83, 0x59, 0xE0, 0xE4, 0x41, 0xF=
 1,
                 /* 0408 */    0xFF, 0x9F, 0x3C, 0x4C, 0x78, 0x4C, 0xD8, 0xC=
 3,
                 /* 0410 */    0x21, 0x3D, 0x74, 0x78, 0x64, 0x7C, 0x9C, 0x3=
 E,
                 /* 0418 */    0xFD, 0x30, 0xEC, 0xD3, 0x39, 0x97, 0xA2, 0x6=
 7,
                 /* 0420 */    0xA4, 0x3B, 0xC6, 0x33, 0x17, 0x06, 0xD6, 0x2=
 3,
                 /* 0428 */    0xE7, 0xB0, 0x46, 0x0B, 0x7B, 0xC0, 0xCF, 0x2=
 1,
                 /* 0430 */    0xBE, 0xC3, 0xF8, 0xC0, 0xC3, 0x60, 0x7D, 0x7=
 A,
                 /* 0438 */    0x01, 0xC7, 0xF1, 0x0B, 0xFE, 0x69, 0x00, 0x3=
 C,
                 /* 0440 */    0x07, 0x10, 0x8F, 0xE1, 0x05, 0x84, 0x1F, 0x5=
 F,
                 /* 0448 */    0x74, 0xFE, 0xA5, 0x42, 0x17, 0x27, 0x79, 0x3=
 0,
                 /* 0450 */    0xA8, 0xD3, 0x14, 0xE0, 0xEA, 0xF4, 0x06, 0x9=
 E,
                 /* 0458 */    0xAB, 0x3E, 0xEE, 0x2C, 0x85, 0xFB, 0xFF, 0x9=
 F,
                 /* 0460 */    0xA5, 0x60, 0x1C, 0x7E, 0x7D, 0x81, 0xF7, 0x5=
 D,
                 /* 0468 */    0xCA, 0x08, 0x07, 0xF2, 0x2C, 0x05, 0xF6, 0xD=
 8,
                 /* 0470 */    0xCF, 0x10, 0x1D, 0x02, 0x7C, 0x96, 0x02, 0xF=
 8,
                 /* 0478 */    0xF1, 0xFA, 0xF0, 0x79, 0x06, 0x6E, 0xE0, 0xD=
 3,
                 /* 0480 */    0x2F, 0xD0, 0xFA, 0xFF, 0x9F, 0x42, 0xC0, 0x7=
 F,
                 /* 0488 */    0x8C, 0xF0, 0x11, 0x07, 0x77, 0xB6, 0x01, 0xE=
 F,
                 /* 0490 */    0xD1, 0x17, 0x1C, 0x07, 0x63, 0x7E, 0xC6, 0xC=
 0,
                 /* 0498 */    0x1D, 0xC7, 0x80, 0xC7, 0xC9, 0x19, 0x77, 0x9=
 A,
                 /* 04A0 */    0xF0, 0x10, 0xF8, 0x00, 0x5A, 0x9D, 0x1E, 0x3=
 9,
                 /* 04A8 */    0xF5, 0x9C, 0x12, 0xEE, 0x38, 0xC0, 0xA7, 0x8=
 4,
                 /* 04B0 */    0x1B, 0x00, 0x26, 0xC0, 0x19, 0x13, 0x50, 0xF=
 5,
                 /* 04B8 */    0xFF, 0x3F, 0x63, 0x02, 0x63, 0x90, 0x08, 0xE=
 F,
                 /* 04C0 */    0x0A, 0x51, 0xDF, 0x91, 0x0D, 0xF1, 0x8C, 0xC=
 C,
                 /* 04C8 */    0x70, 0xDE, 0x1A, 0x1E, 0x5F, 0x9E, 0x91, 0xC=
 1,
                 /* 04D0 */    0x79, 0xC6, 0x04, 0xF8, 0xF3, 0xFF, 0x3F, 0xD=
 2,
                 /* 04D8 */    0x63, 0x6F, 0x0A, 0xC1, 0x9F, 0x42, 0x80, 0x8=
 9,
                 /* 04E0 */    0xF8, 0x33, 0x26, 0x15, 0x7E, 0xC6, 0x84, 0x3=
 6,
                 /* 04E8 */    0x17, 0x4F, 0xDB, 0x67, 0x4C, 0x80, 0x7B, 0xF=
 F,
                 /* 04F0 */    0xFF, 0x33, 0x26, 0xE0, 0x3B, 0xF2, 0x19, 0x1=
 3,
                 /* 04F8 */    0xD0, 0x73, 0xA4, 0xC2, 0x9D, 0x31, 0xC1, 0x3=
 0,
                 /* 0500 */    0xCE, 0xF7, 0x27, 0x83, 0x3C, 0x8F, 0xF8, 0x4=
 0,
                 /* 0508 */    0xE0, 0xA3, 0x0C, 0x53, 0x68, 0xD3, 0xA7, 0x4=
 6,
                 /* 0510 */    0xA3, 0x56, 0x0D, 0xCA, 0xD4, 0x28, 0xD3, 0xA=
 0,
                 /* 0518 */    0x56, 0x9F, 0x4A, 0x8D, 0x19, 0x3B, 0x3A, 0x5=
 9,
                 /* 0520 */    0xC4, 0x5A, 0x35, 0x58, 0x87, 0x5A, 0xAF, 0x4=
 0,
                 /* 0528 */    0x2C, 0xE9, 0x89, 0x21, 0x10, 0xFF, 0xFF, 0x4=
 5,
                 /* 0530 */    0x79, 0x00, 0x61, 0x71, 0x4D, 0x80, 0x30, 0xE=
 1,
                 /* 0538 */    0xAB, 0x12, 0x88, 0x63, 0x83, 0x50, 0xB1, 0x3=
 A,
                 /* 0540 */    0x20, 0x1A, 0x19, 0xA2, 0x41, 0x04, 0xE4, 0x1=
 0,
                 /* 0548 */    0x3E, 0x80, 0x58, 0x24, 0x10, 0x81, 0x13, 0x2=
 5,
                 /* 0550 */    0xA0, 0xD4, 0x09, 0x08, 0x13, 0xBA, 0x16, 0x8=
 1,
                 /* 0558 */    0x58, 0x9E, 0x17, 0x10, 0x16, 0x0E, 0x84, 0x4=
 A,
                 /* 0560 */    0x32, 0x03, 0xCE, 0xF4, 0x81, 0x08, 0xC8, 0x5=
 2,
                 /* 0568 */    0x5F, 0x21, 0x02, 0xB2, 0x70, 0x10, 0x01, 0xF=
 9,
                 /* 0570 */    0xFF, 0x0F
             })
         }

         Device (AC)
         {
             Name (_HID, "ACPI0003")
             Name (_PCL, Package (0x03)
             {
                 \_SB,
                 BAT0,
                 BAT1
             })
             Method (_PSR, 0, NotSerialized)
             {
                 Store (SMI (0x85, 0x00), Local0)
                 And (Local0, 0x01, Local0)
                 Return (Local0)
             }

             Method (_STA, 0, NotSerialized)
             {
                 Return (0x0F)
             }
         }

         Name (BIFP, Package (0x0D) {})
         Method (BIF, 1, NotSerialized)
         {
             SX10 ()
             SX30 (0x01)
             SX30 (Arg0)
             SX11 ()
             Store (SX42 (), Index (BIFP, 0x00))
             Store (SX42 (), Index (BIFP, 0x01))
             Store (SX42 (), Index (BIFP, 0x02))
             Store (SX42 (), Index (BIFP, 0x03))
             Store (SX42 (), Index (BIFP, 0x04))
             Store (SX42 (), Index (BIFP, 0x05))
             Store (SX42 (), Index (BIFP, 0x06))
             Store (SX42 (), Index (BIFP, 0x07))
             Store (SX42 (), Index (BIFP, 0x08))
             Store (SX45 (), Index (BIFP, 0x09))
             Store (SX45 (), Index (BIFP, 0x0A))
             Store (SX45 (), Index (BIFP, 0x0B))
             Store (SX45 (), Index (BIFP, 0x0C))
             SX12 ()
             Return (BIFP)
         }

         Device (BAT0)
         {
             Name (_HID, EisaId ("PNP0C0A"))
             Name (_UID, 0x01)
             Name (_PCL, Package (0x01)
             {
                 \_SB
             })
             Method (_STA, 0, NotSerialized)
             {
                 And (MIS0, 0x02, Local0)
                 If (Local0)
                 {
                     Return (0x1F)
                 }

                 Return (0x0F)
             }

             Method (_BIF, 0, NotSerialized)
             {
                 Return (BIF (0x01))
             }

             Method (_BST, 0, NotSerialized)
             {
                 SX10 ()
                 SX30 (0x02)
                 SX30 (0x01)
                 SX11 ()
                 Name (BST0, Package (0x04) {})
                 Store (SX42 (), Index (BST0, 0x00))
                 Store (SX42 (), Index (BST0, 0x01))
                 Store (SX42 (), Index (BST0, 0x02))
                 Store (SX42 (), Index (BST0, 0x03))
                 SX12 ()
                 Return (BST0)
             }

             Method (_BTP, 1, NotSerialized)
             {
                 SX10 ()
                 SX30 (0x03)
                 SX30 (0x01)
                 SX32 (Arg0)
                 SX11 ()
                 SX12 ()
             }
         }

         Device (BAT1)
         {
             Name (_HID, EisaId ("PNP0C0A"))
             Name (_UID, 0x02)
             Name (_PCL, Package (0x01)
             {
                 \_SB
             })
             Method (_STA, 0, NotSerialized)
             {
                 And (MIS0, 0x10, Local0)
                 If (Local0)
                 {
                     Return (0x1F)
                 }

                 Return (0x0F)
             }

             Method (_BIF, 0, NotSerialized)
             {
                 Return (BIF (0x02))
             }

             Method (_BST, 0, NotSerialized)
             {
                 SX10 ()
                 SX30 (0x02)
                 SX30 (0x02)
                 SX11 ()
                 Name (BST1, Package (0x04) {})
                 Store (SX42 (), Index (BST1, 0x00))
                 Store (SX42 (), Index (BST1, 0x01))
                 Store (SX42 (), Index (BST1, 0x02))
                 Store (SX42 (), Index (BST1, 0x03))
                 SX12 ()
                 Return (BST1)
             }

             Method (_BTP, 1, NotSerialized)
             {
                 SX10 ()
                 SX30 (0x03)
                 SX30 (0x02)
                 SX32 (Arg0)
                 SX11 ()
                 SX12 ()
             }
         }

         Device (LID)
         {
             Name (_HID, EisaId ("PNP0C0D"))
             Method (_LID, 0, NotSerialized)
             {
                 Store (SMI (0x84, 0x00), Local0)
                 Return (Local0)
             }

             Name (_PRW, Package (0x02)
             {
                 0x16,
                 0x03
             })
             Method (_PSW, 1, NotSerialized)
             {
                 PSW (Arg0, 0x02)
             }
         }

         Device (PBTN)
         {
             Name (_HID, EisaId ("PNP0C0C"))
             Name (_PRW, Package (0x02)
             {
                 0x16,
                 0x04
             })
             Method (_PSW, 1, NotSerialized)
             {
                 PSW (Arg0, 0x01)
             }
         }

         Device (SBTN)
         {
             Name (_HID, EisaId ("PNP0C0E"))
         }

         Device (MB1)
         {
             Name (_HID, EisaId ("PNP0C01"))
             Name (_UID, 0x01)
             Method (_CRS, 0, NotSerialized)
             {
                 CRS3 ()
                 CR_0 (0x01, 0x00, 0x0009FC00)
                 CR_0 (0x01, 0x0009FC00, 0x0400)
                 If (LGreaterEqual (OSID (), 0x08))
                 {
                     Store (GORL (), Local0)
                     CR_0 (0x00, 0x000C0000, Local0)
                 }

                 CR_0 (0x00, 0x000E0000, 0x00020000)
                 Store (GMEM (), Local0)
                 Subtract (Local0, 0x0002CC00, Local1)
                 CR_0 (0x01, 0x00100000, Local1)
                 Add (Local1, 0x00100000, Local1)
                 CR_0 (0x01, Local1, 0x0002CC00)
                 Store (SMMB (), Local0)
                 CR_0 (0x01, Local0, 0x00100000)
                 Add (Local1, 0x0002CC00, Local1)
                 Store (SMI (0x6D, 0x00), Local0)
                 If (LEqual (Local0, 0x03))
                 {
                     CR_0 (0x00, Local1, 0x00800000)
                 }

                 Subtract (0xFFFFFFFF, 0xFFB00000, Local0)
                 Add (Local0, 0x01, Local0)
                 CR_0 (0x00, 0xFFB00000, Local0)
                 CR_0 (0x01, 0xFEC00000, 0x00010000)
                 CR_0 (0x01, 0xFEE00000, 0x00010000)
                 CR_0 (0x00, 0xFED20000, 0x00080000)
                 CR_0 (0x01, 0xFFA80000, 0x4000)
                 CR_0 (0x01, 0xF4000000, 0x4000)
                 CR_0 (0x01, 0xF4004000, 0x1000)
                 CR_0 (0x01, 0xF4005000, 0x1000)
                 CR_0 (0x01, 0xF4006000, 0x1000)
                 CR_0 (0x01, 0xF4008000, 0x4000)
                 CR_0 (0x01, 0xF0000000, 0x04000000)
                 CR_5 ()
                 Return (CRS0)
             }
         }

         Device (PCI0)
         {
             Name (_HID, EisaId ("PNP0A03"))
             Name (_ADR, 0x00)
             Name (_PRW, Package (0x02)
             {
                 0x0B,
                 0x04
             })
             Method (_INI, 0, NotSerialized)
             {
                 Store (SMI (0x98, 0x00), MIS0)
                 And (MIS0, Or (0x01, Or (0x02, 0x10)), MIS0)
                 Store (SMI (0x87, 0x00), MIS2)
                 Store (0x01, MIS4)
                 SOST ()
             }

             Method (_CRS, 0, NotSerialized)
             {
                 CRS3 ()
                 CR_2 (0x00, 0x0100)
                 CR_3 (0x00, 0x0CF8)
                 CR_1 (0x0CF8, 0x0CF8, 0x01, 0x08)
                 CR_3 (0x0D00, 0xF300)
                 CR_4 (0x000A0000, 0x00020000)
                 CR_4 (0x000D0000, 0x00010000)
                 Add (0x00100000, GMEM (), Local0)
                 Add (Local0, 0x00100000, Local0)
                 Store (SMI (0x6D, 0x00), Local3)
                 If (LEqual (Local3, 0x03))
                 {
                     Add (Local0, 0x00800000, Local0)
                 }

                 Subtract (0xF0000000, Local0, Local1)
                 CR_4 (Local0, Local1)
                 Add (0xF4006000, 0x1000, Local0)
                 Subtract (0xF4008000, Local0, Local1)
                 CR_4 (Local0, Local1)
                 Add (0xF4008000, 0x4000, Local0)
                 Subtract (0xFEC00000, Local0, Local1)
                 CR_4 (Local0, Local1)
                 Add (0xFEC00000, 0x00010000, Local0)
                 Subtract (0xFED00000, Local0, Local1)
                 If (Local1)
                 {
                     CR_4 (Local0, Local1)
                 }

                 Add (0xFED00000, 0x0400, Local0)
                 Subtract (0xFED20000, Local0, Local1)
                 If (Local1)
                 {
                     CR_4 (Local0, Local1)
                 }

                 Add (0xFED20000, 0x00080000, Local0)
                 Subtract (0xFEDA0000, Local0, Local1)
                 CR_4 (Local0, Local1)
                 Add (0xFEE00000, 0x00010000, Local0)
                 Subtract (0xFFB00000, Local0, Local1)
                 CR_4 (Local0, Local1)
                 CR_5 ()
                 Return (CRS0)
             }

             Device (MB2)
             {
                 Name (_HID, EisaId ("PNP0C01"))
                 Name (_UID, 0x02)
                 Name (CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0x0092,             // Range Minimum
                         0x0092,             // Range Maximum
                         0x02,               // Alignment
                         0x01,               // Length
                         )
                     IO (Decode16,
                         0x00B2,             // Range Minimum
                         0x00B2,             // Range Maximum
                         0x02,               // Alignment
                         0x01,               // Length
                         )
                     IO (Decode16,
                         0x0020,             // Range Minimum
                         0x0020,             // Range Maximum
                         0x10,               // Alignment
                         0x02,               // Length
                         )
                     IO (Decode16,
                         0x00A0,             // Range Minimum
                         0x00A0,             // Range Maximum
                         0x10,               // Alignment
                         0x02,               // Length
                         )
                     IRQNoFlags ()
                         {0}
                     IO (Decode16,
                         0x04D0,             // Range Minimum
                         0x04D0,             // Range Maximum
                         0x10,               // Alignment
                         0x02,               // Length
                         )
                     IO (Decode16,
                         0x1000,             // Range Minimum
                         0x1000,             // Range Maximum
                         0x10,               // Alignment
                         0x06,               // Length
                         )
                     IO (Decode16,
                         0x1008,             // Range Minimum
                         0x1008,             // Range Maximum
                         0x08,               // Alignment
                         0x08,               // Length
                         )
                 })
                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS)
                 }
             }

             Device (MB3)
             {
                 Name (_HID, EisaId ("PNP0C01"))
                 Name (_UID, 0x03)
                 Name (CRS, ResourceTemplate ()
                 {
                     IO (Decode16,
                         0xF400,             // Range Minimum
                         0xF400,             // Range Maximum
                         0x01,               // Alignment
                         0xFF,               // Length
                         )
                     IO (Decode16,
                         0x0086,             // Range Minimum
                         0x0086,             // Range Maximum
                         0x02,               // Alignment
                         0x01,               // Length
                         )
                     IO (Decode16,
                         0x00B3,             // Range Minimum
                         0x00B3,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                     IO (Decode16,
                         0x1006,             // Range Minimum
                         0x1006,             // Range Maximum
                         0x02,               // Alignment
                         0x02,               // Length
                         )
                     IO (Decode16,
                         0x100A,             // Range Minimum
                         0x100A,             // Range Maximum
                         0x01,               // Alignment
                         0x50,               // Length
                         )
                     IO (Decode16,
                         0x1060,             // Range Minimum
                         0x1060,             // Range Maximum
                         0x10,               // Alignment
                         0x20,               // Length
                         )
                     IO (Decode16,
                         0x1080,             // Range Minimum
                         0x1080,             // Range Maximum
                         0x10,               // Alignment
                         0x40,               // Length
                         )
                     IO (Decode16,
                         0x10C0,             // Range Minimum
                         0x10C0,             // Range Maximum
                         0x10,               // Alignment
                         0x20,               // Length
                         )
                     IO (Decode16,
                         0x1010,             // Range Minimum
                         0x1010,             // Range Maximum
                         0x10,               // Alignment
                         0x20,               // Length
                         )
                     IO (Decode16,
                         0x0809,             // Range Minimum
                         0x0809,             // Range Maximum
                         0x01,               // Alignment
                         0x01,               // Length
                         )
                 })
                 Method (_CRS, 0, NotSerialized)
                 {
                     Return (CRS)
                 }
             }

             Device (ISAB)
             {
                 Name (_ADR, 0x001F0000)
                 OperationRegion (PIR1, PCI_Config, 0x60, 0x04)
                 OperationRegion (PIR2, PCI_Config, 0x68, 0x04)
                 OperationRegion (FDIS, PCI_Config, 0xF2, 0x02)
                 Device (PS2M)
                 {
                     Name (_HID, EisaId ("PNP0F13"))
                     Name (CRS, ResourceTemplate ()
                     {
                         IRQNoFlags ()
                             {12}
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (CRS)
                     }
                 }

                 Device (KBC)
                 {
                     Name (_HID, EisaId ("PNP0303"))
                     Name (CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0060,             // Range Minimum
                             0x0060,             // Range Maximum
                             0x10,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0064,             // Range Minimum
                             0x0064,             // Range Maximum
                             0x04,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0062,             // Range Minimum
                             0x0062,             // Range Maximum
                             0x02,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0066,             // Range Minimum
                             0x0066,             // Range Maximum
                             0x06,               // Alignment
                             0x01,               // Length
                             )
                         IRQNoFlags ()
                             {1}
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (CRS)
                     }
                 }

                 Device (RTC)
                 {
                     Name (_HID, EisaId ("PNP0B00"))
                     Name (RT, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0070,             // Range Minimum
                             0x0070,             // Range Maximum
                             0x10,               // Alignment
                             0x02,               // Length
                             )
                         IRQNoFlags ()
                             {8}
                         IO (Decode16,
                             0x0072,             // Range Minimum
                             0x0072,             // Range Maximum
                             0x02,               // Alignment
                             0x06,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (RT)
                     }
                 }

                 Device (TMR)
                 {
                     Name (_HID, EisaId ("PNP0100"))
                     Name (TM, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0040,             // Range Minimum
                             0x0040,             // Range Maximum
                             0x10,               // Alignment
                             0x04,               // Length
                             )
                         IRQNoFlags ()
                             {2}
                         IO (Decode16,
                             0x0050,             // Range Minimum
                             0x0050,             // Range Maximum
                             0x10,               // Alignment
                             0x04,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (TM)
                     }
                 }

                 Device (SPKR)
                 {
                     Name (_HID, EisaId ("PNP0800"))
                     Name (CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0061,             // Range Minimum
                             0x0061,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0063,             // Range Minimum
                             0x0063,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0065,             // Range Minimum
                             0x0065,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                         IO (Decode16,
                             0x0067,             // Range Minimum
                             0x0067,             // Range Maximum
                             0x01,               // Alignment
                             0x01,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (CRS)
                     }
                 }

                 Device (MB4)
                 {
                     Name (_HID, EisaId ("PNP0C01"))
                     Name (_UID, 0x04)
                     Name (CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x002E,             // Range Minimum
                             0x002E,             // Range Maximum
                             0x02,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0C80,             // Range Minimum
                             0x0C80,             // Range Maximum
                             0x10,               // Alignment
                             0x80,               // Length
                             )
                         IO (Decode16,
                             0x004E,             // Range Minimum
                             0x004E,             // Range Maximum
                             0x02,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0910,             // Range Minimum
                             0x0910,             // Range Maximum
                             0x10,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0920,             // Range Minimum
                             0x0920,             // Range Maximum
                             0x10,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0CB0,             // Range Minimum
                             0x0CB0,             // Range Maximum
                             0x10,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0930,             // Range Minimum
                             0x0930,             // Range Maximum
                             0x10,               // Alignment
                             0x50,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (CRS)
                     }
                 }

                 Device (PIC)
                 {
                     Name (_HID, EisaId ("PNP0000"))
                     Name (CRS, ResourceTemplate ()
                     {
                         IO (Decode16,
                             0x0024,             // Range Minimum
                             0x0024,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0028,             // Range Minimum
                             0x0028,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x002C,             // Range Minimum
                             0x002C,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0030,             // Range Minimum
                             0x0030,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0034,             // Range Minimum
                             0x0034,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0038,             // Range Minimum
                             0x0038,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x003C,             // Range Minimum
                             0x003C,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00A4,             // Range Minimum
                             0x00A4,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00A8,             // Range Minimum
                             0x00A8,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00AC,             // Range Minimum
                             0x00AC,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00B0,             // Range Minimum
                             0x00B0,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00B4,             // Range Minimum
                             0x00B4,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00B8,             // Range Minimum
                             0x00B8,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x00BC,             // Range Minimum
                             0x00BC,             // Range Maximum
                             0x04,               // Alignment
                             0x02,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (CRS)
                     }
                 }

                 Device (MAD)
                 {
                     Name (_HID, EisaId ("PNP0200"))
                     Name (CRS, ResourceTemplate ()
                     {
                         DMA (Compatibility, BusMaster, Transfer8, )
                             {4}
                         IO (Decode16,
                             0x0000,             // Range Minimum
                             0x0000,             // Range Maximum
                             0x10,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0080,             // Range Minimum
                             0x0080,             // Range Maximum
                             0x10,               // Alignment
                             0x06,               // Length
                             )
                         IO (Decode16,
                             0x0087,             // Range Minimum
                             0x0087,             // Range Maximum
                             0x01,               // Alignment
                             0x09,               // Length
                             )
                         IO (Decode16,
                             0x00C0,             // Range Minimum
                             0x00C0,             // Range Maximum
                             0x10,               // Alignment
                             0x20,               // Length
                             )
                         IO (Decode16,
                             0x0010,             // Range Minimum
                             0x0010,             // Range Maximum
                             0x10,               // Alignment
                             0x10,               // Length
                             )
                         IO (Decode16,
                             0x0090,             // Range Minimum
                             0x0090,             // Range Maximum
                             0x10,               // Alignment
                             0x02,               // Length
                             )
                         IO (Decode16,
                             0x0093,             // Range Minimum
                             0x0093,             // Range Maximum
                             0x01,               // Alignment
                             0x0D,               // Length
                             )
                     })
                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (CRS)
                     }
                 }

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

                 Device (HPET)
                 {
                     Name (_HID, EisaId ("PNP0103"))
                     Name (_CID, EisaId ("PNP0C01"))
                     Name (BUF0, ResourceTemplate ()
                     {
                         Memory32Fixed (ReadOnly,
                             0xFED00000,         // Address Base
                             0x00000400,         // Address Length
                             )
                     })
                     Method (_STA, 0, NotSerialized)
                     {
                         If (LGreaterEqual (OSID (), 0x10))
                         {
                             If (HPAE)
                             {
                                 Return (0x0F)
                             }
                         }

                         Return (0x00)
                     }

                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (BUF0)
                     }
                 }

                 Device (UAR1)
                 {
                     Name (_HID, EisaId ("PNP0501"))
                     Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                     Method (_STA, 0, NotSerialized)
                     {
                         Store (PNPQ (0x02), Local1)
                         Return (Local1)
                     }

                     Method (_DIS, 0, NotSerialized)
                     {
                         PNPD (0x02)
                     }

                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (PNPG (0x02))
                     }

                     Method (_PRS, 0, NotSerialized)
                     {
                         Name (BUF0, ResourceTemplate ()
                         {
                             StartDependentFn (0x01, 0x01)
                             {
                                 IRQ (Edge, ActiveHigh, Shared, )
                                     {3,4,6,12}
                                 IO (Decode16,
                                     0x03F8,             // Range Minimum
                                     0x03F8,             // Range Maximum
                                     0x08,               // Alignment
                                     0x08,               // Length
                                     )
                             }
                             StartDependentFn (0x01, 0x01)
                             {
                                 IRQ (Edge, ActiveHigh, Shared, )
                                     {3,4,6,12}
                                 IO (Decode16,
                                     0x02F8,             // Range Minimum
                                     0x02F8,             // Range Maximum
                                     0x08,               // Alignment
                                     0x08,               // Length
                                     )
                             }
                             StartDependentFn (0x01, 0x01)
                             {
                                 IRQ (Edge, ActiveHigh, Shared, )
                                     {3,4,6,12}
                                 IO (Decode16,
                                     0x03E8,             // Range Minimum
                                     0x03E8,             // Range Maximum
                                     0x08,               // Alignment
                                     0x08,               // Length
                                     )
                             }
                             StartDependentFn (0x01, 0x01)
                             {
                                 IRQ (Edge, ActiveHigh, Shared, )
                                     {3,4,6,12}
                                 IO (Decode16,
                                     0x02E8,             // Range Minimum
                                     0x02E8,             // Range Maximum
                                     0x08,               // Alignment
                                     0x08,               // Length
                                     )
                             }
                             EndDependentFn ()
                         })
                         Return (BUF0)
                     }

                     Method (_SRS, 1, NotSerialized)
                     {
                         PNPS (0x02, Arg0)
                     }
                 }

                 Device (IRDA)
                 {
                     Name (_HID, EisaId ("SMCF010"))
                     Method (_STA, 0, NotSerialized)
                     {
                         Store (PNPQ (0x03), Local0)
                         Return (Local0)
                     }

                     Method (_DIS, 0, NotSerialized)
                     {
                         PNPD (0x03)
                     }

                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (PNPG (0x03))
                     }

                     Name (_PRS, ResourceTemplate ()
                     {
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {4}
                             IO (Decode16,
                                 0x03E8,             // Range Minimum
                                 0x03E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {4}
                             IO (Decode16,
                                 0x03E8,             // Range Minimum
                                 0x03E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x02F8,             // Range Minimum
                                 0x02F8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x03F8,             // Range Minimum
                                 0x03F8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x03E8,             // Range Minimum
                                 0x03E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x02E8,             // Range Minimum
                                 0x02E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x03F8,             // Range Minimum
                                 0x03F8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x02F8,             // Range Minimum
                                 0x02F8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x03E8,             // Range Minimum
                                 0x03E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x02E8,             // Range Minimum
                                 0x02E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0270,             // Range Minimum
                                 0x0400,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                         }
                         StartDependentFnNoPri ()
                         {
                             IRQNoFlags ()
                                 {3,4,6,12}
                             IO (Decode16,
                                 0x03E8,             // Range Minimum
                                 0x03E8,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0000,             // Range Minimum
                                 0x0000,             // Range Maximum
                                 0x08,               // Alignment
                                 0x00,               // Length
                                 )
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                         }
                         EndDependentFn ()
                     })
                     Method (_SRS, 1, NotSerialized)
                     {
                         PNPS (0x03, Arg0)
                     }
                 }

                 Device (ECP)
                 {
                     Name (_HID, EisaId ("PNP0401"))
                     Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                     Method (_STA, 0, NotSerialized)
                     {
                         Store (PNPQ (0x01), Local1)
                         Return (Local1)
                     }

                     Method (_DIS, 0, NotSerialized)
                     {
                         PNPD (0x01)
                     }

                     Method (_CRS, 0, NotSerialized)
                     {
                         Return (PNPG (0x01))
                     }

                     Name (_PRS, ResourceTemplate ()
                     {
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IRQNoFlags ()
                                 {3,4,5,7}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0778,             // Range Minimum
                                 0x0778,             // Range Maximum
                                 0x08,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IRQNoFlags ()
                                 {7}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0778,             // Range Minimum
                                 0x0778,             // Range Maximum
                                 0x08,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IRQNoFlags ()
                                 {3,4,5,7}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0678,             // Range Minimum
                                 0x0678,             // Range Maximum
                                 0x08,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IRQNoFlags ()
                                 {3,4,5,7}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0678,             // Range Minimum
                                 0x0678,             // Range Maximum
                                 0x08,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IRQNoFlags ()
                                 {3,4,5,7}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x04,               // Alignment
                                 0x04,               // Length
                                 )
                             IO (Decode16,
                                 0x07BC,             // Range Minimum
                                 0x07BC,             // Range Maximum
                                 0x04,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {1,2,3}
                             IRQNoFlags ()
                                 {3,4,5,7}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x04,               // Alignment
                                 0x04,               // Length
                                 )
                             IO (Decode16,
                                 0x07BC,             // Range Minimum
                                 0x07BC,             // Range Maximum
                                 0x04,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IRQNoFlags ()
                                 {}
                             IO (Decode16,
                                 0x0378,             // Range Minimum
                                 0x0378,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0778,             // Range Minimum
                                 0x0778,             // Range Maximum
                                 0x08,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IRQNoFlags ()
                                 {}
                             IO (Decode16,
                                 0x0278,             // Range Minimum
                                 0x0278,             // Range Maximum
                                 0x08,               // Alignment
                                 0x08,               // Length
                                 )
                             IO (Decode16,
                                 0x0678,             // Range Minimum
                                 0x0678,             // Range Maximum
                                 0x08,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         StartDependentFnNoPri ()
                         {
                             DMA (Compatibility, NotBusMaster, Transfer8, )
                                 {}
                             IRQNoFlags ()
                                 {}
                             IO (Decode16,
                                 0x03BC,             // Range Minimum
                                 0x03BC,             // Range Maximum
                                 0x04,               // Alignment
                                 0x04,               // Length
                                 )
                             IO (Decode16,
                                 0x07BC,             // Range Minimum
                                 0x07BC,             // Range Maximum
                                 0x04,               // Alignment
                                 0x04,               // Length
                                 )
                         }
                         EndDependentFn ()
                     })
                     Method (_SRS, 1, NotSerialized)
                     {
                         PNPS (0x01, Arg0)
                     }
                 }
             }

             Method (UCMD, 3, NotSerialized)
             {
                 SX10 ()
                 SX30 (0x0F)
                 SX30 (Arg0)
                 SX30 (Arg1)
                 SX30 (Arg2)
                 SX11 ()
                 Store (SX40 (), Local0)
                 SX12 ()
                 Return (Local0)
             }

             Method (UPSW, 2, NotSerialized)
             {
                 Return (UCMD (0x02, Arg0, Arg1))
             }

             Method (UPRW, 2, NotSerialized)
             {
                 Return (UCMD (0x01, Arg0, Arg1))
             }

             Device (USB0)
             {
                 Name (_ADR, 0x001D0000)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Store (UPRW (0x00, 0x00), Local0)
                     If (LEqual (Local0, 0x03))
                     {
                         Return (Package (0x02)
                         {
                             0x03,
                             0x03
                         })
                     }

                     If (LEqual (Local0, 0x01))
                     {
                         Return (Package (0x02)
                         {
                             0x03,
                             0x01
                         })
                     }

                     Return (Package (0x02)
                     {
                         0x03,
                         0x00
                     })
                 }

                 Method (_PSW, 1, NotSerialized)
                 {
                     UPSW (Arg0, 0x00)
                 }

                 Device (HUB0)
                 {
                     Name (_ADR, 0x00)
                     Device (CH00)
                     {
                         Name (_ADR, 0x01)
                     }

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

             Device (USB1)
             {
                 Name (_ADR, 0x001D0001)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Store (UPRW (0x00, 0x01), Local0)
                     If (LEqual (Local0, 0x03))
                     {
                         Return (Package (0x02)
                         {
                             0x04,
                             0x03
                         })
                     }

                     If (LEqual (Local0, 0x01))
                     {
                         Return (Package (0x02)
                         {
                             0x04,
                             0x01
                         })
                     }

                     Return (Package (0x02)
                     {
                         0x04,
                         0x00
                     })
                 }

                 Method (_PSW, 1, NotSerialized)
                 {
                     UPSW (Arg0, 0x01)
                 }

                 Device (HUB1)
                 {
                     Name (_ADR, 0x00)
                     Device (CH10)
                     {
                         Name (_ADR, 0x01)
                     }

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

             Device (USB2)
             {
                 Name (_ADR, 0x001D0002)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Store (UPRW (0x00, 0x02), Local0)
                     If (LEqual (Local0, 0x03))
                     {
                         Return (Package (0x02)
                         {
                             0x0C,
                             0x03
                         })
                     }

                     If (LEqual (Local0, 0x01))
                     {
                         Return (Package (0x02)
                         {
                             0x0C,
                             0x01
                         })
                     }

                     Return (Package (0x02)
                     {
                         0x0C,
                         0x00
                     })
                 }

                 Method (_PSW, 1, NotSerialized)
                 {
                     UPSW (Arg0, 0x02)
                 }

                 Device (HUB2)
                 {
                     Name (_ADR, 0x00)
                     Device (CH20)
                     {
                         Name (_ADR, 0x01)
                     }

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

             Device (USB3)
             {
                 Name (_ADR, 0x001D0003)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Store (UPRW (0x00, 0x03), Local0)
                     If (LEqual (Local0, 0x03))
                     {
                         Return (Package (0x02)
                         {
                             0x0E,
                             0x03
                         })
                     }

                     If (LEqual (Local0, 0x01))
                     {
                         Return (Package (0x02)
                         {
                             0x0E,
                             0x01
                         })
                     }

                     Return (Package (0x02)
                     {
                         0x0E,
                         0x00
                     })
                 }

                 Method (_PSW, 1, NotSerialized)
                 {
                     UPSW (Arg0, 0x03)
                 }

                 Device (HUB3)
                 {
                     Name (_ADR, 0x00)
                     Device (CH30)
                     {
                         Name (_ADR, 0x01)
                     }

                     Device (CH31)
                     {
                         Name (_ADR, 0x02)
                         Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                     }
                 }
             }

             Device (EHCI)
             {
                 Name (_ADR, 0x001D0007)
                 Name (_S1D, 0x02)
                 Name (_S3D, 0x02)
                 Method (_PRW, 0, NotSerialized)
                 {
                     Store (UPRW (0x00, 0x07), Local0)
                     If (LEqual (Local0, 0x03))
                     {
                         Return (Package (0x02)
                         {
                             0x0D,
                             0x03
                         })
                     }

                     If (LEqual (Local0, 0x01))
                     {
                         Return (Package (0x02)
                         {
                             0x0D,
                             0x01
                         })
                     }

                     Return (Package (0x02)
                     {
                         0x0D,
                         0x00
                     })
                 }

                 Method (_PSW, 1, NotSerialized)
                 {
                     UPSW (Arg0, 0x07)
                 }

                 Device (HUB7)
                 {
                     Name (_ADR, 0x00)
                     Device (CH00)
                     {
                         Name (_ADR, 0x01)
                     }

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

                     Device (CH10)
                     {
                         Name (_ADR, 0x03)
                     }

                     Device (CH11)
                     {
                         Name (_ADR, 0x04)
                     }

                     Device (CH20)
                     {
                         Name (_ADR, 0x05)
                     }

                     Device (CH21)
                     {
                         Name (_ADR, 0x06)
                     }

                     Device (CH30)
                     {
                         Name (_ADR, 0x07)
                     }

                     Device (CH31)
                     {
                         Name (_ADR, 0x08)
                         Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                     }
                 }
             }

             Name (PIC0, Package (0x12)
             {
                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x00,
                     \_SB.PCI0.LNKC,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x01,
                     \_SB.PCI0.LNKB,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x02,
                     \_SB.PCI0.LNKC,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x03,
                     \_SB.PCI0.LNKD,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x00,
                     \_SB.PCI0.LNKA,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x01,
                     \_SB.PCI0.LNKB,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x02,
                     \_SB.PCI0.LNKC,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x03,
                     \_SB.PCI0.LNKD,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x00,
                     \_SB.PCI0.LNKE,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x01,
                     \_SB.PCI0.LNKF,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x02,
                     \_SB.PCI0.LNKG,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x03,
                     \_SB.PCI0.LNKH,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x00,
                     \_SB.PCI0.LNKA,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x01,
                     \_SB.PCI0.LNKB,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x02,
                     \_SB.PCI0.LNKC,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x03,
                     \_SB.PCI0.LNKD,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x001BFFFF,
                     0x00,
                     \_SB.PCI0.LNKF,
                     0x00
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x00,
                     \_SB.PCI0.LNKA,
                     0x00
                 }
             })
             Name (API0, Package (0x12)
             {
                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x00,
                     0x00,
                     0x10
                 },

                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x01,
                     0x00,
                     0x11
                 },

                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x02,
                     0x00,
                     0x12
                 },

                 Package (0x04)
                 {
                     0x001FFFFF,
                     0x03,
                     0x00,
                     0x13
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x00,
                     0x00,
                     0x10
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x01,
                     0x00,
                     0x11
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x02,
                     0x00,
                     0x12
                 },

                 Package (0x04)
                 {
                     0x001EFFFF,
                     0x03,
                     0x00,
                     0x13
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x00,
                     0x00,
                     0x14
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x01,
                     0x00,
                     0x15
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x02,
                     0x00,
                     0x16
                 },

                 Package (0x04)
                 {
                     0x001DFFFF,
                     0x03,
                     0x00,
                     0x17
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x00,
                     0x00,
                     0x10
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x01,
                     0x00,
                     0x11
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x02,
                     0x00,
                     0x12
                 },

                 Package (0x04)
                 {
                     0x001CFFFF,
                     0x03,
                     0x00,
                     0x13
                 },

                 Package (0x04)
                 {
                     0x001BFFFF,
                     0x00,
                     0x00,
                     0x15
                 },

                 Package (0x04)
                 {
                     0x0002FFFF,
                     0x00,
                     0x00,
                     0x10
                 }
             })
             Method (_PRT, 0, NotSerialized)
             {
                 Store (API0, Local0)
                 If (LNot (GPIC))
                 {
                     Store (PIC0, Local0)
                 }

                 Return (Local0)
             }

             Field (\_SB.PCI0.ISAB.PIR1, ByteAcc, NoLock, Preserve)
             {
                 PIRA,   8,
                 PIRB,   8,
                 PIRC,   8,
                 PIRD,   8
             }

             Field (\_SB.PCI0.ISAB.PIR2, ByteAcc, NoLock, Preserve)
             {
                 PIRE,   8,
                 PIRF,   8,
                 PIRG,   8,
                 PIRH,   8
             }

             Device (LNKA)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x01)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {9,10,11}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRA, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRA, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRA)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFA, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y00)
                             {}
                     })
                     CreateWordField (BUFA, \_SB.PCI0.LNKA._CRS._Y00._INT, I=
 RA)
                     Store (PIRA, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRA)
                     }

                     Return (BUFA)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQA)
                     FindSetLeftBit (IRQA, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRA)
                 }
             }

             Device (LNKB)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x02)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {5,7}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRB, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRB, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRB)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFB, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y01)
                             {}
                     })
                     CreateWordField (BUFB, \_SB.PCI0.LNKB._CRS._Y01._INT, I=
 RB)
                     Store (PIRB, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRB)
                     }

                     Return (BUFB)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQB)
                     FindSetLeftBit (IRQB, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRB)
                 }
             }

             Device (LNKC)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x03)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {9,10,11}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRC, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRC, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRC)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFC, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y02)
                             {}
                     })
                     CreateWordField (BUFC, \_SB.PCI0.LNKC._CRS._Y02._INT, I=
 RC)
                     Store (PIRC, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRC)
                     }

                     Return (BUFC)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQC)
                     FindSetLeftBit (IRQC, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRC)
                 }
             }

             Device (LNKD)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x04)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {5,7,9,10,11}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRD, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRD, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRD)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFD, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y03)
                             {}
                     })
                     CreateWordField (BUFD, \_SB.PCI0.LNKD._CRS._Y03._INT, I=
 RD)
                     Store (PIRD, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRD)
                     }

                     Return (BUFD)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQD)
                     FindSetLeftBit (IRQD, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRD)
                 }
             }

             Device (LNKE)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x05)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {3,4,5,6,7,9,10,11,12,14,15}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRE, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRE, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRE)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFE, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y04)
                             {}
                     })
                     CreateWordField (BUFE, \_SB.PCI0.LNKE._CRS._Y04._INT, I=
 RE)
                     Store (PIRE, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRE)
                     }

                     Return (BUFE)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQE)
                     FindSetLeftBit (IRQE, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRE)
                 }
             }

             Device (LNKF)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x06)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {3,4,5,6,7,9,10,11,12,14,15}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRF, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRF, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRF)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFF, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y05)
                             {}
                     })
                     CreateWordField (BUFF, \_SB.PCI0.LNKF._CRS._Y05._INT, I=
 RF)
                     Store (PIRF, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRF)
                     }

                     Return (BUFF)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQF)
                     FindSetLeftBit (IRQF, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRF)
                 }
             }

             Device (LNKG)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x07)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {3,4,5,6,7,9,10,11,12,14,15}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRG, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRG, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRG)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFG, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y06)
                             {}
                     })
                     CreateWordField (BUFG, \_SB.PCI0.LNKG._CRS._Y06._INT, I=
 RG)
                     Store (PIRG, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRG)
                     }

                     Return (BUFG)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQG)
                     FindSetLeftBit (IRQG, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRG)
                 }
             }

             Device (LNKH)
             {
                 Name (_HID, EisaId ("PNP0C0F"))
                 Name (_UID, 0x08)
                 Name (_PRS, ResourceTemplate ()
                 {
                     IRQ (Level, ActiveLow, Shared, )
                         {3,4,5,6,7,9,10,11,12,14,15}
                 })
                 Method (_STA, 0, NotSerialized)
                 {
                     Store (PIRH, Local0)
                     And (Local0, 0x80, Local0)
                     If (LEqual (Local0, 0x80))
                     {
                         Return (0x09)
                     }

                     Return (0x0B)
                 }

                 Method (_DIS, 0, NotSerialized)
                 {
                     Store (PIRH, Local0)
                     Or (Local0, 0x80, Local0)
                     Store (Local0, PIRH)
                 }

                 Method (_CRS, 0, NotSerialized)
                 {
                     Name (BUFH, ResourceTemplate ()
                     {
                         IRQ (Level, ActiveLow, Shared, _Y07)
                             {}
                     })
                     CreateWordField (BUFH, \_SB.PCI0.LNKH._CRS._Y07._INT, I=
 RH)
                     Store (PIRH, Local0)
                     And (Local0, 0x8F, Local0)
                     If (LLess (Local0, 0x80))
                     {
                         And (Local0, 0x0F)
                         Store (0x01, Local1)
                         ShiftLeft (Local1, Local0, Local1)
                         Store (Local1, IRH)
                     }

                     Return (BUFH)
                 }

                 Method (_SRS, 1, NotSerialized)
                 {
                     CreateWordField (Arg0, 0x01, IRQH)
                     FindSetLeftBit (IRQH, Local0)
                     Decrement (Local0)
                     Store (Local0, PIRH)
                 }
             }

             Device (IDE0)
             {
                 Name (_ADR, 0x001F0002)
                 OperationRegion (PCFG, PCI_Config, 0x00, 0x0100)
                 Field (PCFG, DWordAcc, NoLock, Preserve)
                 {
                             Offset (0x40),
                     TPF0,   1,
                     TPI0,   1,
                     TPP0,   1,
                     TPD0,   1,
                     TPF1,   1,
                     TPI1,   1,
                     TPP1,   1,
                     TPD1,   1,
                     TPRT,   2,
                         ,   2,
                     TPIS,   2,
                     TPTR,   1,
                     TPDE,   1,
                     TSF0,   1,
                     TSI0,   1,
                     TSP0,   1,
                     TSD0,   1,
                     TSF1,   1,
                     TSI1,   1,
                     TSP1,   1,
                     TSD1,   1,
                     TSRT,   2,
                         ,   2,
                     TSIS,   2,
                     TSTR,   1,
                     TSDE,   1,
                     PRTS,   2,
                     PIOS,   2,
                     SRTS,   2,
                     SIOS,   2,
                             Offset (0x48),
                     SCP0,   1,
                     SCP1,   1,
                     SCS0,   1,
                     SCS1,   1,
                             Offset (0x4A),
                     PCT0,   2,
                         ,   2,
                     PCT1,   2,
                             Offset (0x4B),
                     SCT0,   2,
                         ,   2,
                     SCT1,   2,
                             Offset (0x4C),
                             Offset (0x54),
                     PCB0,   1,
                     PCB1,   1,
                     SCB0,   1,
                     SCB1,   1,
                         ,   2,
                     PMCR,   1,
                     PSCR,   1,
                         ,   4,
                     FPC0,   1,
                     FPC1,   1,
                     FSC0,   1,
                     FSC1,   1,
                     PSIG,   2,
                     SSIG,   2,
                             Offset (0x58)
                 }

                 Name (GTMT, Buffer (0x14)
                 {
                     /* 0000 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 0xFF, 0xFF,
                     /* 0008 */    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 0xFF, 0xFF,
                     /* 0010 */    0x11, 0x00, 0x00, 0x00
                 })
                 CreateDWordField (GTMT, 0x00, PIO0)
                 CreateDWordField (GTMT, 0x04, DMA0)
                 CreateDWordField (GTMT, 0x08, PIO1)
                 CreateDWordField (GTMT, 0x0C, DMA1)
                 CreateDWordField (GTMT, 0x10, IFLG)
                 Method (GTMI, 0, NotSerialized)
                 {
                     Store (Ones, PIO0)
                     Store (Ones, DMA0)
                     Store (Ones, PIO1)
                     Store (Ones, DMA1)
                     Store (0x10, IFLG)
                 }

                 Method (UDMA, 3, NotSerialized)
                 {
                     If (Arg0)
                     {
                         Return (0x14)
                     }

                     If (Arg1)
                     {
                         If (LEqual (Arg2, 0x02))
                         {
                             Return (0x3C)
                         }
                         Else
                         {
                             Return (0x5A)
                         }
                     }
                     Else
                     {
                         Multiply (Subtract (0x04, Arg2), 0x1E, Local0)
                         Return (Local0)
                     }
                 }

                 Method (PIOM, 2, NotSerialized)
                 {
                     Store (0x09, Local0)
                     Subtract (Local0, Arg0, Local0)
                     Subtract (Local0, Arg1, Local0)
                     Multiply (Local0, 0x1E, Local0)
                     Return (Local0)
                 }

                 Method (GTMP, 0, NotSerialized)
                 {
                     GTMI ()
                     If (LEqual (TPDE, 0x00))
                     {
                         Return (GTMT)
                     }

                     Or (SCP0, IFLG, IFLG)
                     ShiftLeft (TPI0, 0x01, Local0)
                     Or (Local0, IFLG, IFLG)
                     ShiftLeft (SCP1, 0x02, Local0)
                     Or (Local0, IFLG, IFLG)
                     ShiftLeft (TPI1, 0x03, Local0)
                     Or (Local0, IFLG, IFLG)
                     Store (PIOM (TPIS, TPRT), PIO0)
                     Store (PIOM (PRTS, PIOS), PIO1)
                     If (SCP0)
                     {
                         Store (UDMA (FPC0, PCB0, PCT0), DMA0)
                     }
                     Else
                     {
                         If (TPD0)
                         {
                             Store (PIO0, DMA0)
                         }
                     }

                     If (SCP1)
                     {
                         Store (UDMA (FPC1, PCB1, PCT1), DMA1)
                     }
                     Else
                     {
                         If (TPD1)
                         {
                             Store (PIO1, DMA1)
                         }
                     }

                     Return (GTMT)
                 }

                 Method (GTMS, 0, NotSerialized)
                 {
                     GTMI ()
                     If (LEqual (TSDE, 0x00))
                     {
                         Return (GTMT)
                     }

                     Or (SCS0, IFLG, IFLG)
                     ShiftLeft (TSI0, 0x01, Local0)
                     Or (Local0, IFLG, IFLG)
                     ShiftLeft (SCS1, 0x02, Local0)
                     Or (Local0, IFLG, IFLG)
                     ShiftLeft (TSI1, 0x03, Local0)
                     Or (Local0, IFLG, IFLG)
                     Store (PIOM (TSIS, TSRT), PIO0)
                     Store (PIOM (SRTS, SIOS), PIO1)
                     If (SCS0)
                     {
                         Store (UDMA (FSC0, SCB0, SCT0), DMA0)
                     }
                     Else
                     {
                         If (TSD0)
                         {
                             Store (PIO0, DMA0)
                         }
                     }

                     If (SCS1)
                     {
                         Store (UDMA (FSC1, SCB1, SCT1), DMA1)
                     }
                     Else
                     {
                         If (TSD1)
                         {
                             Store (PIO1, DMA1)
                         }
                     }

                     Return (GTMT)
                 }

                 Method (_STA, 0, NotSerialized)
                 {
                     Return (0x0F)
                 }

                 Device (PRI)
                 {
                     Name (_ADR, 0x00)
                     Method (_STA, 0, NotSerialized)
                     {
                         Return (0x0F)
                     }

                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (GTMP ())
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Name (GTFP, Buffer (0x07)
                         {
                             0x10, 0x03, 0x00, 0x00, 0x00, 0xA0, 0xEF
                         })
                         Method (_GTF, 0, NotSerialized)
                         {
                             Store (SMI (0x76, 0x00), Local0)
                             If (LEqual (Local0, 0x01))
                             {
                                 Return (GTFP)
                             }
                             Else
                             {
                                 Return (0x00)
                             }
                         }
                     }
                 }

                 Device (SEC0)
                 {
                     Name (_ADR, 0x01)
                     Method (_STA, 0, NotSerialized)
                     {
                         Return (0x0F)
                     }

                     Method (_GTM, 0, NotSerialized)
                     {
                         Return (GTMS ())
                     }

                     Device (MAST)
                     {
                         Name (_ADR, 0x00)
                         Name (_RMV, 0x00)
                         Method (_EJ0, 1, NotSerialized)
                         {
                             SMI (0x90, 0x08)
                             Return (0x00)
                         }

                         Method (_STA, 0, NotSerialized)
                         {
                             Store (SMI (0x86, 0x00), Local0)
                             If (Local0)
                             {
                                 Return (0x0F)
                             }

                             Return (0x00)
                         }
                     }
                 }
             }

             Device (AZAL)
             {
                 Name (_ADR, 0x001B0000)
                 Name (_PRW, Package (0x02)
                 {
                     0x05,
                     0x03
                 })
             }

             Device (VID)
             {
                 Name (_ADR, 0x00020000)
                 Method (_DOS, 1, NotSerialized)
                 {
                     Store (Arg0, MIS4)
                     SMI (0x9E, MIS4)
                 }

                 Method (_DOD, 0, NotSerialized)
                 {
                     Return (Package (0x04)
                     {
                         0x00010100,
                         0x00010200,
                         0x00010400,
                         0x00010300
                     })
                 }

                 Device (TV)
                 {
                     Method (_ADR, 0, NotSerialized)
                     {
                         Return (0x0200)
                     }

                     Method (_DCS, 0, NotSerialized)
                     {
                         Store (SMI (0x8E, 0x04), Local0)
                         Return (Local0)
                     }

                     Method (_DGS, 0, NotSerialized)
                     {
                         Store (SMI (0x99, 0x04), Local0)
                         Return (Local0)
                     }

                     Method (_DSS, 1, NotSerialized)
                     {
                         DSS (0x04, Arg0)
                     }
                 }

                 Device (CRT)
                 {
                     Method (_ADR, 0, NotSerialized)
                     {
                         Return (0x0100)
                     }

                     Method (_DCS, 0, NotSerialized)
                     {
                         Store (SMI (0x8E, 0x02), Local0)
                         Return (Local0)
                     }

                     Method (_DGS, 0, NotSerialized)
                     {
                         Store (SMI (0x99, 0x02), Local0)
                         Return (Local0)
                     }

                     Method (_DSS, 1, NotSerialized)
                     {
                         DSS (0x02, Arg0)
                     }
                 }

                 Device (LCD)
                 {
                     Method (_ADR, 0, NotSerialized)
                     {
                         Return (0x0400)
                     }

                     Method (_DCS, 0, NotSerialized)
                     {
                         Store (SMI (0x8E, 0x01), Local0)
                         Return (Local0)
                     }

                     Method (_DGS, 0, NotSerialized)
                     {
                         Store (SMI (0x99, 0x01), Local0)
                         Return (Local0)
                     }

                     Method (_DSS, 1, NotSerialized)
                     {
                         DSS (0x01, Arg0)
                     }

                     Name (BTVL, 0x64)
                     Name (DBCL, Package (0x0A) {})
                     Method (_BCL, 0, NotSerialized)
                     {
                         SX10 ()
                         SX30 (0x19)
                         SX30 (0x00)
                         SX11 ()
                         Store (SX40 (), Index (DBCL, 0x00))
                         Store (SX40 (), Index (DBCL, 0x01))
                         Store (SX40 (), Index (DBCL, 0x02))
                         Store (SX40 (), Index (DBCL, 0x03))
                         Store (SX40 (), Index (DBCL, 0x04))
                         Store (SX40 (), Index (DBCL, 0x05))
                         Store (SX40 (), Index (DBCL, 0x06))
                         Store (SX40 (), Index (DBCL, 0x07))
                         Store (SX40 (), Index (DBCL, 0x08))
                         Store (SX40 (), Index (DBCL, 0x09))
                         SX12 ()
                         Return (DBCL)
                     }

                     Method (_BCM, 1, NotSerialized)
                     {
                         SX10 ()
                         SX30 (0x19)
                         SX30 (0x01)
                         SX30 (Arg0)
                         Store (Arg0, BTVL)
                         SX11 ()
                         SX12 ()
                     }

                     Method (_BQC, 0, NotSerialized)
                     {
                         SX10 ()
                         SX30 (0x19)
                         SX30 (0x02)
                         SX11 ()
                         Store (SX40 (), Local0)
                         Store (Local0, BTVL)
                         SX12 ()
                         Return (Local0)
                     }
                 }

                 Device (DVI)
                 {
                     Method (_ADR, 0, NotSerialized)
                     {
                         Return (0x0300)
                     }

                     Method (_DCS, 0, NotSerialized)
                     {
                         Store (SMI (0x8E, 0x08), Local0)
                         Return (Local0)
                     }

                     Method (_DGS, 0, NotSerialized)
                     {
                         Store (SMI (0x99, 0x08), Local0)
                         Return (Local0)
                     }

                     Method (_DSS, 1, NotSerialized)
                     {
                         DSS (0x08, Arg0)
                     }
                 }
             }

             Device (VID2)
             {
                 Name (_ADR, 0x00020001)
                 Method (_DOS, 1, NotSerialized)
                 {
                 }

                 Method (_DOD, 0, NotSerialized)
                 {
                     Return (Package (0x00) {})
                 }
             }

             Device (PCIE)
             {
                 Name (_ADR, 0x001E0000)
                 Name (_PRW, Package (0x02)
                 {
                     0x0B,
                     0x04
                 })
                 Name (PICE, Package (0x04)
                 {
                     Package (0x04)
                     {
                         0x0001FFFF,
                         0x00,
                         \_SB.PCI0.LNKD,
                         0x00
                     },

                     Package (0x04)
                     {
                         0xFFFF,
                         0x00,
                         \_SB.PCI0.LNKB,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0008FFFF,
                         0x00,
                         \_SB.PCI0.LNKA,
                         0x00
                     },

                     Package (0x04)
                     {
                         0x0008FFFF,
                         0x01,
                         \_SB.PCI0.LNKA,
                         0x00
                     }
                 })
                 Name (APIE, Package (0x04)
                 {
                     Package (0x04)
                     {
                         0x0001FFFF,
                         0x00,
                         0x00,
                         0x13
                     },

                     Package (0x04)
                     {
                         0xFFFF,
                         0x00,
                         0x00,
                         0x11
                     },

                     Package (0x04)
                     {
                         0x0008FFFF,
                         0x00,
                         0x00,
                         0x10
                     },

                     Package (0x04)
                     {
                         0x0008FFFF,
                         0x01,
                         0x00,
                         0x10
                     }
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     Store (APIE, Local0)
                     If (LNot (GPIC))
                     {
                         Store (PICE, Local0)
                     }

                     Return (Local0)
                 }

                 Device (CRD0)
                 {
                     Name (_ADR, 0x00010000)
                     Method (_INI, 0, NotSerialized)
                     {
                         SMI (0x95, 0x04)
                     }

                     Name (_S1D, 0x00)
                     Name (_S3D, 0x03)
                 }

                 Device (CRD1)
                 {
                     Name (_ADR, 0x00010005)
                     Method (_INI, 0, NotSerialized)
                     {
                         SMI (0x9D, 0x04)
                     }

                     Name (_S1D, 0x00)
                     Name (_S3D, 0x03)
                 }

                 Device (GDCK)
                 {
                     Name (_HID, EisaId ("PNP0C15"))
                     Method (_STA, 0, NotSerialized)
                     {
                         If (And (MIS5, 0x01))
                         {
                             Store (SMI (0x87, 0x00), Local2)
                             If (Local2)
                             {
                                 Notify (\_SB.PCI0.PCIE.GDCK, 0x00)
                                 Return (0x00)
                             }
                         }

                         Store (SMI (0x87, 0x00), Local0)
                         If (Local0)
                         {
                             Return (0x0F)
                         }

                         Return (0x00)
                     }

                     Method (_UID, 0, NotSerialized)
                     {
                         SX10 ()
                         SX30 (0x05)
                         SX30 (OSID ())
                         SX11 ()
                         Store (SX42 (), Local0)
                         SX12 ()
                         Return (Local0)
                     }

                     Method (_BDN, 0, NotSerialized)
                     {
                         Store (SMI (0x87, 0x00), Local0)
                         If (LEqual (Local0, 0x01))
                         {
                             Return (0x0C80AC10)
                         }

                         If (LEqual (Local0, 0x02))
                         {
                             Return (0x0D80AC10)
                         }

                         If (LEqual (Local0, 0x03))
                         {
                             Return (0x0E80AC10)
                         }

                         Return (0x00)
                     }

                     Method (_EJ0, 1, NotSerialized)
                     {
                         Store (SMI (0x87, 0x00), MIS7)
                         If (MIS7)
                         {
                             SMI (0xA6, 0x02)
                             SMI (0x49, 0x01)
                             Wait (EJTD, 0xA000)
                             SMI (0x49, 0x00)
                         }

                         Return (0x00)
                     }

                     Method (_EJ3, 1, NotSerialized)
                     {
                         SMI (0xA6, 0x01)
                         Return (0x00)
                     }

                     Method (_EJ4, 1, NotSerialized)
                     {
                         SMI (0xA6, 0x01)
                         Return (0x00)
                     }

                     Method (_DCK, 1, NotSerialized)
                     {
                         If (Arg0)
                         {
                             SMI (0x8D, 0x01)
                             Store (0x00, MIS5)
                             Store (SMI (0x87, 0x00), MIS2)
                         }
                         Else
                         {
                             SMI (0x8D, 0x00)
                             Store (0x00, MIS2)
                             Store (0x01, MIS5)
                         }

                         Return (0x01)
                     }
                 }

                 Device (DCKS)
                 {
                     Name (_ADR, 0x00080000)
                     Name (_EJD, "\\_SB_.PCI0.PCIE.GDCK")
                 }
             }

             Device (RP01)
             {
                 Name (_ADR, 0x001C0000)
                 OperationRegion (P1CS, PCI_Config, 0x00, 0x0100)
                 Field (P1CS, AnyAcc, NoLock, WriteAsZeros)
                 {
                             Offset (0x3E),
                         ,   6,
                     SBSR,   1,
                             Offset (0x52),
                         ,   13,
                     LSTS,   1,
                             Offset (0x5A),
                     ABP1,   1,
                         ,   2,
                     PDC1,   1,
                         ,   2,
                     PDS1,   1,
                             Offset (0x5B),
                     LASC,   1,
                             Offset (0x60),
                             Offset (0x62),
                     PSP1,   1,
                             Offset (0xDC),
                         ,   30,
                     HPCS,   1,
                     PMCS,   1,
                             Offset (0xE2),
                             Offset (0xE3),
                     WXME,   2
                 }

                 Device (PXS1)
                 {
                     Name (_ADR, 0x00)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x09,
                     0x03
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (\GPIC)
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 0x00,
                                 0x10
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 0x00,
                                 0x11
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 0x00,
                                 0x12
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 0x00,
                                 0x13
                             }
                         })
                     }
                     Else
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 \_SB.PCI0.LNKA,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 \_SB.PCI0.LNKB,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 \_SB.PCI0.LNKC,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 \_SB.PCI0.LNKD,
                                 0x00
                             }
                         })
                     }
                 }
             }

             Device (RP02)
             {
                 Name (_ADR, 0x001C0001)
                 OperationRegion (P2CS, PCI_Config, 0x00, 0x0100)
                 Field (P2CS, AnyAcc, NoLock, WriteAsZeros)
                 {
                             Offset (0x3E),
                         ,   6,
                     SBSR,   1,
                             Offset (0x52),
                         ,   13,
                     LSTS,   1,
                             Offset (0x5A),
                     ABP2,   1,
                         ,   2,
                     PDC2,   1,
                         ,   2,
                     PDS2,   1,
                             Offset (0x5B),
                     LASC,   1,
                             Offset (0x60),
                             Offset (0x62),
                     PSP2,   1,
                             Offset (0xDC),
                         ,   30,
                     HPCS,   1,
                     PMCS,   1,
                             Offset (0xE2),
                             Offset (0xE3),
                     WXME,   2
                 }

                 Device (PXS2)
                 {
                     Name (_ADR, 0x00)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x09,
                     0x04
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (\GPIC)
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 0x00,
                                 0x11
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 0x00,
                                 0x12
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 0x00,
                                 0x13
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 0x00,
                                 0x10
                             }
                         })
                     }
                     Else
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 \_SB.PCI0.LNKB,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 \_SB.PCI0.LNKC,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 \_SB.PCI0.LNKD,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 \_SB.PCI0.LNKA,
                                 0x00
                             }
                         })
                     }
                 }
             }

             Device (RP03)
             {
                 Name (_ADR, 0x001C0002)
                 OperationRegion (P3CS, PCI_Config, 0x00, 0x0100)
                 Field (P3CS, AnyAcc, NoLock, WriteAsZeros)
                 {
                             Offset (0x3E),
                         ,   6,
                     SBSR,   1,
                             Offset (0x52),
                         ,   13,
                     LSTS,   1,
                             Offset (0x5A),
                     ABP3,   1,
                         ,   2,
                     PDC3,   1,
                         ,   2,
                     PDS3,   1,
                             Offset (0x5B),
                     LASC,   1,
                             Offset (0x60),
                             Offset (0x62),
                     PSP3,   1,
                             Offset (0xDC),
                         ,   30,
                     HPCS,   1,
                     PMCS,   1,
                             Offset (0xE2),
                             Offset (0xE3),
                     WXME,   2
                 }

                 Device (PXS3)
                 {
                     Name (_ADR, 0x00)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x09,
                     0x03
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (\GPIC)
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 0x00,
                                 0x12
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 0x00,
                                 0x13
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 0x00,
                                 0x10
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 0x00,
                                 0x11
                             }
                         })
                     }
                     Else
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 \_SB.PCI0.LNKC,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 \_SB.PCI0.LNKD,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 \_SB.PCI0.LNKA,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 \_SB.PCI0.LNKB,
                                 0x00
                             }
                         })
                     }
                 }
             }

             Device (RP04)
             {
                 Name (_ADR, 0x001C0003)
                 OperationRegion (P4CS, PCI_Config, 0x00, 0x0100)
                 Field (P4CS, AnyAcc, NoLock, WriteAsZeros)
                 {
                             Offset (0x3E),
                         ,   6,
                     SBSR,   1,
                             Offset (0x52),
                         ,   13,
                     LSTS,   1,
                             Offset (0x5A),
                     ABP4,   1,
                         ,   2,
                     PDC4,   1,
                         ,   2,
                     PDS4,   1,
                             Offset (0x5B),
                     LASC,   1,
                             Offset (0x60),
                             Offset (0x62),
                     PSP4,   1,
                             Offset (0xDC),
                         ,   30,
                     HPCS,   1,
                     PMCS,   1,
                             Offset (0xE2),
                             Offset (0xE3),
                     WXME,   2
                 }

                 Device (PXS4)
                 {
                     Name (_ADR, 0x00)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x09,
                     0x03
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (\GPIC)
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 0x00,
                                 0x13
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 0x00,
                                 0x10
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 0x00,
                                 0x11
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 0x00,
                                 0x12
                             }
                         })
                     }
                     Else
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 \_SB.PCI0.LNKD,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 \_SB.PCI0.LNKA,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 \_SB.PCI0.LNKB,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 \_SB.PCI0.LNKC,
                                 0x00
                             }
                         })
                     }
                 }
             }

             Device (RP05)
             {
                 Name (_ADR, 0x001C0004)
                 OperationRegion (P5CS, PCI_Config, 0x00, 0x0100)
                 Field (P5CS, AnyAcc, NoLock, WriteAsZeros)
                 {
                             Offset (0x3E),
                         ,   6,
                     SBSR,   1,
                             Offset (0x52),
                         ,   13,
                     LSTS,   1,
                             Offset (0x5A),
                     ABP5,   1,
                         ,   2,
                     PDC5,   1,
                         ,   2,
                     PDS5,   1,
                             Offset (0x5B),
                     LASC,   1,
                             Offset (0x60),
                             Offset (0x62),
                     PSP5,   1,
                             Offset (0xDC),
                         ,   30,
                     HPCS,   1,
                     PMCS,   1,
                             Offset (0xE2),
                             Offset (0xE3),
                     WXME,   2
                 }

                 Device (PXS5)
                 {
                     Name (_ADR, 0x00)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x09,
                     0x03
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (\GPIC)
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 0x00,
                                 0x10
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 0x00,
                                 0x11
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 0x00,
                                 0x12
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 0x00,
                                 0x13
                             }
                         })
                     }
                     Else
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 \_SB.PCI0.LNKA,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 \_SB.PCI0.LNKB,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 \_SB.PCI0.LNKC,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 \_SB.PCI0.LNKD,
                                 0x00
                             }
                         })
                     }
                 }
             }

             Device (RP06)
             {
                 Name (_ADR, 0x001C0005)
                 OperationRegion (P6CS, PCI_Config, 0x00, 0x0100)
                 Field (P6CS, AnyAcc, NoLock, WriteAsZeros)
                 {
                             Offset (0x3E),
                         ,   6,
                     SBSR,   1,
                             Offset (0x52),
                         ,   13,
                     LSTS,   1,
                             Offset (0x5A),
                     ABP6,   1,
                         ,   2,
                     PDC6,   1,
                         ,   2,
                     PDS6,   1,
                             Offset (0x5B),
                     LASC,   1,
                             Offset (0x60),
                             Offset (0x62),
                     PSP6,   1,
                             Offset (0xDC),
                         ,   30,
                     HPCS,   1,
                     PMCS,   1,
                             Offset (0xE2),
                             Offset (0xE3),
                     WXME,   2
                 }

                 Device (PXS6)
                 {
                     Name (_ADR, 0x00)
                 }

                 Name (_PRW, Package (0x02)
                 {
                     0x09,
                     0x03
                 })
                 Method (_PRT, 0, NotSerialized)
                 {
                     If (\GPIC)
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 0x00,
                                 0x11
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 0x00,
                                 0x12
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 0x00,
                                 0x13
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 0x00,
                                 0x10
                             }
                         })
                     }
                     Else
                     {
                         Return (Package (0x04)
                         {
                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x00,
                                 \_SB.PCI0.LNKB,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x01,
                                 \_SB.PCI0.LNKC,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x02,
                                 \_SB.PCI0.LNKD,
                                 0x00
                             },

                             Package (0x04)
                             {
                                 0xFFFF,
                                 0x03,
                                 \_SB.PCI0.LNKA,
                                 0x00
                             }
                         })
                     }
                 }
             }

             Method (WKHP, 0, NotSerialized)
             {
             }

             Method (POHP, 0, NotSerialized)
             {
                 If (LEqual (0x02, 0x02))
                 {
                     If (LAnd (LEqual (RPD2, 0x00), \_SB.PCI0.RP02.HPCS))
                     {
                         If (\_SB.PCI0.RP02.WXME)
                         {
                             If (\_SB.PCI0.RP02.LASC)
                             {
                                 While (\_SB.PCI0.RP02.SBSR)
                                 {
                                     Sleep (0x0A)
                                 }

                                 Sleep (0x64)
                                 If (LEqual (\_SB.PCI0.RP02.LSTS, 0x00))
                                 {
                                     SX10 ()
                                     SX30 (0x14)
                                     SX11 ()
                                     SX12 ()
                                     Sleep (0x32)
                                 }

                                 Store (0x01, \_SB.PCI0.RP02.LASC)
                                 Store (0x01, \_SB.PCI0.RP02.PDC2)
                                 Store (0x01, \_SB.PCI0.RP02.HPCS)
                                 If (\_SB.PCI0.RP02.PDS2)
                                 {
                                     Notify (\_SB.PCI0.RP02, 0x00)
                                 }
                             }
                         }
                         Else
                         {
                             If (\_SB.PCI0.RP02.PDC2)
                             {
                                 Store (0x01, \_SB.PCI0.RP02.PDC2)
                                 Store (0x01, \_SB.PCI0.RP02.HPCS)
                                 Notify (\_SB.PCI0.RP02, 0x00)
                             }
                             Else
                             {
                                 Store (0x01, \_SB.PCI0.RP02.HPCS)
                             }
                         }
                     }
                 }
                 Else
                 {
                     Sleep (0x01F4)
                     If (\_SB.PCI0.RP02.HPCS)
                     {
                         If (LAnd (LEqual (RPD2, 0x00), \_SB.PCI0.RP02.PDC2)=
 )
                         {
                             Store (0x01, \_SB.PCI0.RP02.PDC2)
                             Store (0x01, \_SB.PCI0.RP02.HPCS)
                             Notify (\_SB.PCI0.RP02, 0x00)
                         }
                         Else
                         {
                             Store (0x01, \_SB.PCI0.RP02.HPCS)
                         }
                     }
                 }
             }
         }
     }

     Scope (\_PR.CPU0)
     {
         Method (_CST, 0, NotSerialized)
         {
             If (LAnd (And (CFGD, 0x01000000), LNot (And (PDC0, 0x10
                 ))))
             {
                 Return (Package (0x02)
                 {
                     0x01,
                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (FFixedHW,
                                 0x00,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000000000, // Address
                                 ,)
                         },

                         0x01,
                         0x9D,
                         0x03E8
                     }
                 })
             }

             If (And (CFGD, 0x80))
             {
                 Return (Package (0x04)
                 {
                     0x03,
                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (FFixedHW,
                                 0x00,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000000000, // Address
                                 ,)
                         },

                         0x01,
                         0x01,
                         0x03E8
                     },

                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (SystemIO,
                                 0x08,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000001014, // Address
                                 ,)
                         },

                         0x02,
                         0x01,
                         0x01F4
                     },

                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (SystemIO,
                                 0x08,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000001016, // Address
                                 ,)
                         },

                         0x03,
                         0x39,
                         0x64
                     }
                 })
             }

             If (And (CFGD, 0x40))
             {
                 Return (Package (0x04)
                 {
                     0x03,
                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (FFixedHW,
                                 0x00,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000000000, // Address
                                 ,)
                         },

                         0x01,
                         0x01,
                         0x03E8
                     },

                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (SystemIO,
                                 0x08,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000001014, // Address
                                 ,)
                         },

                         0x02,
                         0x01,
                         0x01F4
                     },

                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (SystemIO,
                                 0x08,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000001015, // Address
                                 ,)
                         },

                         0x03,
                         0x55,
                         0xFA
                     }
                 })
             }

             If (And (CFGD, 0x20))
             {
                 Return (Package (0x03)
                 {
                     0x02,
                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (FFixedHW,
                                 0x00,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000000000, // Address
                                 ,)
                         },

                         0x01,
                         0x01,
                         0x03E8
                     },

                     Package (0x04)
                     {
                         ResourceTemplate ()
                         {
                             Register (SystemIO,
                                 0x08,               // Bit Width
                                 0x00,               // Bit Offset
                                 0x0000000000001014, // Address
                                 ,)
                         },

                         0x02,
                         0x01,
                         0x01F4
                     }
                 })
             }

             Return (Package (0x02)
             {
                 0x01,
                 Package (0x04)
                 {
                     ResourceTemplate ()
                     {
                         Register (FFixedHW,
                             0x00,               // Bit Width
                             0x00,               // Bit Offset
                             0x0000000000000000, // Address
                             ,)
                     },

                     0x01,
                     0x01,
                     0x03E8
                 }
             })
         }
     }

     Scope (\)
     {
         Name (SSDT, Package (0x0C)
         {
             "CPU0IST ",
             0x00000000,
             0xF000EC62,
             "CPU1IST ",
             0x00000000,
             0xF000EC62,
             "CPU0CST ",
             0x3F6D4272,
             0x000001C6,
             "CPU1CST ",
             0x00000000,
             0xF000EC62
         })
         Name (CFGD, 0x00130070)
         Name (\PDC0, 0x80000000)
         Name (\PDC1, 0x80000000)
         Name (\SDTL, 0x00)
     }

     Scope (\_PR.CPU0)
     {
         Name (HI0, 0x00)
         Name (HC0, 0x00)
         Method (_PDC, 1, NotSerialized)
         {
             CreateDWordField (Arg0, 0x00, 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, 0x00, STS0)
             CreateDWordField (Arg3, 0x04, CAP0)
             CreateDWordField (Arg0, 0x00, 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, 0x4=
 7,
                 /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x5=
 3
             })
             CreateDWordField (UID0, 0x00, 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, Index (STS0, 0x00))
                 Return (Arg3)
             }

             If (LNotEqual (Arg1, 0x01))
             {
                 Store (0x0A, Index (STS0, 0x00))
                 Return (Arg3)
             }

             Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
             If (And (CFGD, 0x01))
             {
                 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0,
                     0x09), 0x09)), LNot (And (SDTL, 0x01))))
                 {
                     Or (SDTL, 0x01, SDTL)
                     OperationRegion (IST0, SystemMemory, DerefOf
 (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02
                         )))
                     Load (IST0, HI0)
                 }
             }

             If (And (CFGD, 0xF0))
             {
                 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
                     )), LNot (And (SDTL, 0x02))))
                 {
                     Or (SDTL, 0x02, SDTL)
                     OperationRegion (CST0, SystemMemory, DerefOf
 (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
                         )))
                     Load (CST0, HC0)
                 }
             }

             Return (Arg3)
         }
     }

     Scope (\_PR.CPU1)
     {
         Name (HI1, 0x00)
         Name (HC1, 0x00)
         Method (_PDC, 1, NotSerialized)
         {
             CreateDWordField (Arg0, 0x00, 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, 0x00, STS1)
             CreateDWordField (Arg3, 0x04, CAP1)
             CreateDWordField (Arg0, 0x00, IID0)
             CreateDWordField (Arg0, 0x04, IID1)
             CreateDWordField (Arg0, 0x08, IID2)
             CreateDWordField (Arg0, 0x0C, IID3)
             Name (UID1, Buffer (0x10)
             {
                 /* 0000 */    0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x4=
 7,
                 /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x5=
 3
             })
             CreateDWordField (UID1, 0x00, EID0)
             CreateDWordField (UID1, 0x04, EID1)
             CreateDWordField (UID1, 0x08, EID2)
             CreateDWordField (UID1, 0x0C, EID3)
             If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1))=
 ,
                 LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
             {
                 Store (0x06, Index (STS1, 0x00))
                 Return (Arg3)
             }

             If (LNotEqual (Arg1, 0x01))
             {
                 Store (0x0A, Index (STS1, 0x00))
                 Return (Arg3)
             }

             Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
             If (And (CFGD, 0x01))
             {
                 If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC1,
                     0x09), 0x09)), LNot (And (SDTL, 0x10))))
                 {
                     Or (SDTL, 0x10, SDTL)
                     OperationRegion (IST1, SystemMemory, DerefOf
 (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
                         )))
                     Load (IST1, HI1)
                 }
             }

             If (And (CFGD, 0xF0))
             {
                 If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC1, 0x18
                     )), LNot (And (SDTL, 0x20))))
                 {
                     Or (SDTL, 0x20, SDTL)
                     OperationRegion (CST1, SystemMemory, DerefOf
 (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
                         )))
                     Load (CST1, HC1)
                 }
             }

             Return (Arg3)
         }
     }
 }

From: Jukka Ruohonen <jruohonen@iki.fi>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/44042: ACPI problem on Dell D520 (install media and recompiled kernel)
Date: Sat, 6 Nov 2010 07:10:37 +0200

 Indeed the dump reveals an "empty" device:

             Device (VID2)
             {
                 Name (_ADR, 0x00020001)
                 Method (_DOS, 1, NotSerialized)
                 {
                 }

                 Method (_DOD, 0, NotSerialized)
                 {
                     Return (Package (0x00) {})
                 }
             }

 It is unclear how this should be interpreted. Maybe Windows requires such an
 empty node, or maybe not. Maybe this should be taken as an indication that the
 second device is not supported, or maybe not.

 As there is not much we can do, I will close this. The error you are seeing
 is entirely harmless as such, but we may silence it in the future or avoid
 attaching acpivga(4) for these "empty" devices.

 Thanks for the report,

 Jukka.

State-Changed-From-To: open->closed
State-Changed-By: jruoho@NetBSD.org
State-Changed-When: Sat, 06 Nov 2010 05:18:42 +0000
State-Changed-Why:
Fixed.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.