Enhanced SpeedStep hosed in -current ?

From: Poul-Henning Kamp <phk_at_phk.freebsd.dk>
Date: Sun, 16 Mar 2008 22:33:11 +0000
It looks like my laptop runs full speed at all times, no matter what
powerd or I may desire.

Looks like the EST driver is (suddenly ?) not happy about the system.

sysctl, dmesg & acpidump included.

Poul-Henning

PS: the pcib3 message in dmesg also looks bogus ?

dev.est.0.%desc: Enhanced SpeedStep Frequency Control
dev.est.0.%driver: est
dev.est.0.%parent: cpu0
dev.est.0.freq_settings: 2000/31000 1667/25000 1000/13000
dev.est.1.%desc: Enhanced SpeedStep Frequency Control
dev.est.1.%driver: est
dev.est.1.%parent: cpu1
dev.est.1.freq_settings: 1667/25000 1000/13000


dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.CPU0
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 125
dev.cpu.0.freq_levels: 2000/31000 1750/27125 1667/25000 1458/21875 1250/18750 1041/15625 1000/13000 875/11375 750/9750 625/8125 500/6500 375/4875 250/3250 125/1625
dev.cpu.0.cx_supported: C1/1 C2/1 C3/17
dev.cpu.0.cx_lowest: C3
dev.cpu.0.cx_usage: 0.00% 21.12% 78.87%
dev.cpu.1.%desc: ACPI CPU
dev.cpu.1.%driver: cpu
dev.cpu.1.%location: handle=\_PR_.CPU1
dev.cpu.1.%pnpinfo: _HID=none _UID=0
dev.cpu.1.%parent: acpi0
dev.cpu.1.cx_supported: C1/1 C2/1 C3/17
dev.cpu.1.cx_lowest: C3
dev.cpu.1.cx_usage: 0.00% 74.18% 25.81%



Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #2: Sun Mar 16 19:26:33 UTC 2008
    root_at_critter.freebsd.dk:/freebsd/src/sys/i386/compile/C5
Preloaded elf kernel "/boot/kx/kernel" at 0xc0910000.
Preloaded elf module "/boot/kx/acpi.ko" at 0xc09101e0.
Calibrating clock(s) ... i8254 clock: 1193198 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 1995019896 Hz
CPU: Intel(R) Core(TM)2 CPU         T7200  _at_ 2.00GHz (1995.02-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6f6  Stepping = 6
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xe3bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM>
  AMD Features=0x20100000<NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 2

Instruction TLB: 4 KB Pages, 4-way set associative, 128 entries
1st-level instruction cache: 32 KB, 8-way set associative, 64 byte line size
1st-level data cache: 32 KB, 8-way set associative, 64 byte line size
L2 cache: 4096 kbytes, 16-way associative, 64 bytes/line
real memory  = 2137260032 (2038 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009efff, 647168 bytes (158 pages)
0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages)
0x0000000000c25000 - 0x000000007d418fff, 2088714240 bytes (509940 pages)
avail memory = 2088230912 (1991 MB)
Table 'FACP' at 0x7f64ff8c
Table 'SSDT' at 0x7f64e7a4
Table 'MCFG' at 0x7f64ea09
Table 'SSDT' at 0x7f64ea45
Table 'SSDT' at 0x7f64f5f5
Table 'APIC' at 0x7f64fd4e
MADT: Found table at 0x7f64fd4e
APIC: Using the MADT enumerator.
MADT: Found CPU APIC ID 0 ACPI ID 0: enabled
SMP: Added CPU 0 (AP)
MADT: Found CPU APIC ID 1 ACPI ID 1: enabled
SMP: Added CPU 1 (AP)
ACPI APIC Table: <FUJ    FJNB1B5 >
INTR: Adding local APIC 1 as a target
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
bios32: Found BIOS32 Service Directory header at 0xc00f5720
bios32: Entry = 0xfdbf4 (c00fdbf4)  Rev = 0  Len = 1
pcibios: PCI BIOS entry at 0xfdbe0+0x10
pnpbios: Found PnP BIOS data at 0xc00f57f0
pnpbios: Entry = f0000:b9ba  Rev = 1.0
Other BIOS signatures found:
APIC: CPU 0 has ACPI ID 0
APIC: CPU 1 has ACPI ID 1
ULE: setup cpu 0
ULE: setup cpu 1
ACPI: RSDP _at_ 0x0xf5770/0x0014 (v  0 FUJ   )
ACPI: RSDT _at_ 0x0x7f6478d8/0x0048 (v  1 FSC    PC       0x01300000 FUJ  0x00000100)
ACPI: FACP _at_ 0x0x7f64ff8c/0x0074 (v  1 FSC    PC       0x01300000 FUJ  0x00000100)
ACPI: DSDT _at_ 0x0x7f647930/0x6E74 (v  1 FUJ    FJNB1B5  0x01300000 MSFT 0x0100000E)
ACPI: FACS _at_ 0x0x7f650fc0/0x0040
ACPI: SSDT _at_ 0x0x7f64e7a4/0x0265 (v  1 FUJ    FJNB1B5  0x01300000 MSFT 0x0100000E)
ACPI: MCFG _at_ 0x0x7f64ea09/0x003C (v  1 FUJ    FJNB1B5  0x01300000 FUJ  0x00000100)
ACPI: SSDT _at_ 0x0x7f64ea45/0x04DC (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
ACPI: SSDT _at_ 0x0x7f64f5f5/0x0759 (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
ACPI: APIC _at_ 0x0x7f64fd4e/0x0068 (v  1 FUJ    FJNB1B5  0x01300000  LTP 0x00000000)
ACPI: HPET _at_ 0x0x7f64fdb6/0x0038 (v  1 FUJ    FJNB1B5  0x01300000 FUJ  0x00000100)
ACPI: BOOT _at_ 0x0x7f64fdee/0x0028 (v  1 FUJ    FJNB1B5  0x01300000 FUJ  0x00000100)
ACPI: SLIC _at_ 0x0x7f64fe16/0x0176 (v  1 FSC    PC       0x01300000 FSC  0x00000100)
MADT: Found IO APIC ID 2, Interrupt 0 at 0xfec00000
ioapic0: Routing external 8259A's -> intpin 0
lapic0: Routing NMI -> LINT1
lapic0: LINT1 trigger: edge
lapic0: LINT1 polarity: high
lapic1: Routing NMI -> LINT1
lapic1: LINT1 trigger: edge
lapic1: LINT1 polarity: high
MADT: Interrupt override: source 0, irq 2
ioapic0: Routing IRQ 0 -> intpin 2
MADT: Interrupt override: source 9, irq 9
ioapic0: intpin 9 trigger: level
ioapic0 <Version 2.0> irqs 0-23 on motherboard
cpu0 BSP:
     ID: 0x00000000   VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
  timer: 0x000100ef therm: 0x00010000 err: 0x00010000 pcm: 0x00010000
wlan_amrr: <AMRR Transmit Rate Control Algorithm>
wlan: <802.11 Link Layer>
ath_rate: version 1.2 <SampleRate bit-rate selection algorithm>
io: <I/O>
null: <null device, zero device>
VESA: information block
56 45 53 41 00 03 00 01 00 01 01 00 00 00 40 00 
00 01 7b 00 00 01 43 01 00 01 55 01 00 01 89 01 
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
VESA: 12 mode(s) found
VESA: v3.0, 7872k memory, flags:0x1, mode table:0xc0802820 (1000040)
VESA: Intel(r) 82945GM Chipset Family Graphics Chip Accelerated VGA BIOS
VESA: Intel Corporation Intel(r) 82945GM Chipset Family Graphics Controller Hardware Version 0.0
kbd: new array size 4
kbd1 at kbdmux0
random: <entropy source, Software, Yarrow>
nfslock: pseudo-device
mem: <memory>
Pentium Pro MTRR support enabled
ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
npx0: INT 16 interface
acpi0: <FSC PC> on motherboard
ioapic0: routing intpin 9 (ISA IRQ 9) to vector 48
acpi0: [MPSAFE]
acpi0: [ITHREAD]
ACPI: SSDT _at_ 0x0x7f6505c3/0x0893 (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
acpi0: Power Button (fixed)
acpi0: wakeup code va 0xd8a71000 pa 0x1000
pci_open(1):	mode 1 addr port (0x0cf8) is 0x8000fa20
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=00] is there (id=27a08086)
pcibios: BIOS_PRESENT call failed
AcpiOsDerivePciId: \\_SB_.PCI0.HBUS -> bus 0 dev 0 func 0
AcpiOsDerivePciId: \\_SB_.PCI0.LPCB.LPC0 -> bus 0 dev 31 func 0
acpi_hpet0: vend: 0x8086 rev: 0x1 num: 2 hz: 14318180 opts: legacy_route 64-bit
Timecounter "HPET" frequency 14318180 Hz quality 900
ACPI timer: 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/2 1/1 1/1 -> 10
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x17> port 0x62,0x66 on acpi0
pci_link0:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 10 12 14 15
  Validation          0  255   N     0  1 3 4 5 6 7 10 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 10 12 14 15
pci_link1:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 11 12 14 15
  Validation          0   11   N     0  1 3 4 5 6 7 11 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 11 12 14 15
pci_link2:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 10 12 14 15
  Validation          0  255   N     0  1 3 4 5 6 7 10 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 10 12 14 15
pci_link3:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 11 12 14 15
  Validation          0   11   N     0  1 3 4 5 6 7 11 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 11 12 14 15
pci_link4:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 10 12 14 15
  Validation          0  255   N     0  1 3 4 5 6 7 10 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 10 12 14 15
pci_link5:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 11 12 14 15
  Validation          0   11   N     0  1 3 4 5 6 7 11 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 11 12 14 15
pci_link6:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 3 4 5 6 7 10 12 14 15
  Validation          0  255   N     0  1 3 4 5 6 7 10 12 14 15
  After Disable       0  255   N     0  1 3 4 5 6 7 10 12 14 15
pci_link7:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  3 4 5 6 7 11 12 14 15
  Validation          0   11   N     0  3 4 5 6 7 11 12 14 15
  After Disable       0  255   N     0  3 4 5 6 7 11 12 14 15
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: domain=0, physical bus=0
found->	vendor=0x8086, dev=0x27a0, revid=0x03
	domain=0, bus=0, slot=0, func=0
	class=06-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0106, statreg=0x2090, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x8086, dev=0x27a2, revid=0x03
	domain=0, bus=0, slot=2, func=0
	class=03-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x0090, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
	map[10]: type Memory, range 32, base 0xf0200000, size 19, enabled
	map[14]: type I/O Port, range 32, base 0x1800, size  3, enabled
	map[18]: type Prefetchable Memory, range 32, base 0xe0000000, size 28, enabled
	map[1c]: type Memory, range 32, base 0xf0300000, size 18, enabled
pcib0: matched entry for 0.2.INTA
pcib0: slot 2 INTA hardwired to IRQ 16
found->	vendor=0x8086, dev=0x27a6, revid=0x03
	domain=0, bus=0, slot=2, func=1
	class=03-80-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x0090, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	powerspec 2  supports D0 D3  current D0
	map[10]: type Memory, range 32, base 0xf0280000, size 19, enabled
found->	vendor=0x8086, dev=0x27d8, revid=0x02
	domain=0, bus=0, slot=27, func=0
	class=04-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0006, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message, 64 bit
	map[10]: type Memory, range 64, base 0xf0540000, size 14, enabled
pcib0: matched entry for 0.27.INTA
pcib0: slot 27 INTA hardwired to IRQ 17
found->	vendor=0x8086, dev=0x27d0, revid=0x02
	domain=0, bus=0, slot=28, func=0
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0007, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
pcib0: matched entry for 0.28.INTA
pcib0: slot 28 INTA hardwired to IRQ 22
found->	vendor=0x8086, dev=0x27d2, revid=0x02
	domain=0, bus=0, slot=28, func=1
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0000, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
pcib0: matched entry for 0.28.INTB
pcib0: slot 28 INTB hardwired to IRQ 21
found->	vendor=0x8086, dev=0x27d4, revid=0x02
	domain=0, bus=0, slot=28, func=2
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0000, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=c, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
pcib0: matched entry for 0.28.INTC
pcib0: slot 28 INTC hardwired to IRQ 20
found->	vendor=0x8086, dev=0x27c8, revid=0x02
	domain=0, bus=0, slot=29, func=0
	class=0c-03-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	map[20]: type I/O Port, range 32, base 0x1820, size  5, enabled
pcib0: matched entry for 0.29.INTA
pcib0: slot 29 INTA hardwired to IRQ 23
found->	vendor=0x8086, dev=0x27c9, revid=0x02
	domain=0, bus=0, slot=29, func=1
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	map[20]: type I/O Port, range 32, base 0x1840, size  5, enabled
pcib0: matched entry for 0.29.INTB
pcib0: slot 29 INTB hardwired to IRQ 20
found->	vendor=0x8086, dev=0x27ca, revid=0x02
	domain=0, bus=0, slot=29, func=2
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=c, irq=11
	map[20]: type I/O Port, range 32, base 0x1860, size  5, enabled
pcib0: matched entry for 0.29.INTC
pcib0: slot 29 INTC hardwired to IRQ 18
found->	vendor=0x8086, dev=0x27cb, revid=0x02
	domain=0, bus=0, slot=29, func=3
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=d, irq=11
	map[20]: type I/O Port, range 32, base 0x1880, size  5, enabled
pcib0: matched entry for 0.29.INTD
pcib0: slot 29 INTD hardwired to IRQ 16
found->	vendor=0x8086, dev=0x27cc, revid=0x02
	domain=0, bus=0, slot=29, func=7
	class=0c-03-20, hdrtype=0x00, mfdev=0
	cmdreg=0x0006, statreg=0x0290, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D3  current D0
	map[10]: type Memory, range 32, base 0xf0544000, size 10, enabled
pcib0: matched entry for 0.29.INTA
pcib0: slot 29 INTA hardwired to IRQ 23
found->	vendor=0x8086, dev=0x2448, revid=0xe2
	domain=0, bus=0, slot=30, func=0
	class=06-04-01, hdrtype=0x01, mfdev=0
	cmdreg=0x0007, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
found->	vendor=0x8086, dev=0x27b9, revid=0x02
	domain=0, bus=0, slot=31, func=0
	class=06-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x8086, dev=0x27df, revid=0x02
	domain=0, bus=0, slot=31, func=1
	class=01-01-8a, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
	map[20]: type I/O Port, range 32, base 0x1810, size  4, enabled
found->	vendor=0x8086, dev=0x27c4, revid=0x02
	domain=0, bus=0, slot=31, func=2
	class=01-01-8f, hdrtype=0x00, mfdev=0
	cmdreg=0x0007, statreg=0x02b0, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D3  current D0
	map[10]: type I/O Port, range 32, base 0x18d0, size  3, enabled
	map[14]: type I/O Port, range 32, base 0x18c4, size  2, enabled
	map[18]: type I/O Port, range 32, base 0x18c8, size  3, enabled
	map[1c]: type I/O Port, range 32, base 0x18c0, size  2, enabled
	map[20]: type I/O Port, range 32, base 0x18b0, size  4, enabled
	map[24]: type Memory, range 32, base 0xf0544400, size 10, enabled
pcib0: matched entry for 0.31.INTB
pcib0: slot 31 INTB hardwired to IRQ 19
found->	vendor=0x8086, dev=0x27da, revid=0x02
	domain=0, bus=0, slot=31, func=3
	class=0c-05-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=11
	map[20]: type I/O Port, range 32, base 0x18e0, size  5, enabled
pcib0: matched entry for 0.31.INTB
pcib0: slot 31 INTB hardwired to IRQ 19
vgapci0: <VGA-compatible display> port 0x1800-0x1807 mem 0xf0200000-0xf027ffff,0xe0000000-0xefffffff,0xf0300000-0xf033ffff irq 16 at device 2.0 on pci0
agp0: <Intel 82945GM (945GM GMCH) SVGA controller> on vgapci0
vgapci0: Reserved 0x10000000 bytes for rid 0x18 type 3 at 0xe0000000
vgapci0: Reserved 0x80000 bytes for rid 0x10 type 3 at 0xf0200000
vgapci0: Reserved 0x40000 bytes for rid 0x1c type 3 at 0xf0300000
agp0: detected 7932k stolen memory
agp0: aperture size is 256M
vgapci1: <VGA-compatible display> mem 0xf0280000-0xf02fffff at device 2.1 on pci0
pci0: <multimedia> at device 27.0 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> irq 22 at device 28.0 on pci0
pcib1:   domain            0
pcib1:   secondary bus     2
pcib1:   subordinate bus   2
pcib1:   I/O decode        0x2000-0x2fff
pcib1:   memory decode     0xf0000000-0xf00fffff
pcib1:   no prefetched decode
pci2: <ACPI PCI bus> on pcib1
pci2: domain=0, physical bus=2
found->	vendor=0x11ab, dev=0x4363, revid=0x12
	domain=0, bus=2, slot=0, func=0
	class=02-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0007, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 3  supports D0 D1 D2 D3  current D0
	MSI supports 1 message, 64 bit
	map[10]: type Memory, range 64, base 0xf0000000, size 14, enabled
pcib1: requested memory range 0xf0000000-0xf0003fff: good
	map[18]: type I/O Port, range 32, base 0x2000, size  8, enabled
pcib1: requested I/O range 0x2000-0x20ff: in range
pcib1: matched entry for 2.0.INTA
pcib1: slot 0 INTA hardwired to IRQ 16
mskc0: <Marvell Yukon 88E8055 Gigabit Ethernet> port 0x2000-0x20ff mem 0xf0000000-0xf0003fff irq 16 at device 0.0 on pci2
mskc0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0xf0000000
mskc0: MSI count : 1
mskc0: attempting to allocate 1 MSI vectors (1 supported)
msi: routing MSI IRQ 256 to vector 49
mskc0: using IRQ 256 for MSI
mskc0: RAM buffer size : 128KB
mskc0: Port 0 : Rx Queue 85KB(0x00000000:0x000153ff)
mskc0: Port 0 : Tx Queue 43KB(0x00015400:0x0001ffff)
msk0: <Marvell Technology Group Ltd. Yukon EC Ultra Id 0xb4 Rev 0x02> on mskc0
msk0: bpf attached
msk0: Ethernet address: 00:17:42:42:cd:7a
miibus0: <MII bus> on msk0
e1000phy0: <Marvell 88E1149 Gigabit PHY> PHY 0 on miibus0
e1000phy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX-FDX, auto
mskc0: [MPSAFE]
mskc0: [FILTER]
pcib2: <ACPI PCI-PCI bridge> irq 21 at device 28.1 on pci0
pcib2:   domain            0
pcib2:   secondary bus     3
pcib2:   subordinate bus   4
pcib2:   I/O decode        0x0-0x0
pcib2:   no prefetched decode
pci3: <ACPI PCI bus> on pcib2
pci3: domain=0, physical bus=3
pcib3: <ACPI PCI-PCI bridge> irq 20 at device 28.2 on pci0
pcib3:   domain            0
pcib3:   secondary bus     5
pcib3:   subordinate bus   5
pcib3:   I/O decode        0x0-0x0
pcib3:   no prefetched decode
pci5: <ACPI PCI bus> on pcib3
pci5: domain=0, physical bus=5
found->	vendor=0x8086, dev=0x4222, revid=0x02
	domain=0, bus=5, slot=0, func=0
	class=02-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0006, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message, 64 bit
	map[10]: type Memory, range 32, base 0xf0100000, size 12, enabled
pcib3: requested unsupported memory range 0xf0100000-0xf0100fff (decoding 0-0, 0-0)
pcib3: matched entry for 5.0.INTA
pcib3: slot 0 INTA hardwired to IRQ 18
pci5: <network> at device 0.0 (no driver attached)
pci0: <serial bus, USB> at device 29.0 (no driver attached)
pci0: <serial bus, USB> at device 29.1 (no driver attached)
pci0: <serial bus, USB> at device 29.2 (no driver attached)
pci0: <serial bus, USB> at device 29.3 (no driver attached)
pci0: <serial bus, USB> at device 29.7 (no driver attached)
pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pcib4:   domain            0
pcib4:   secondary bus     8
pcib4:   subordinate bus   9
pcib4:   I/O decode        0xf000-0xfff
pcib4:   no prefetched decode
pcib4:   Subtractively decoded bridge.
pci8: <ACPI PCI bus> on pcib4
pci8: domain=0, physical bus=8
found->	vendor=0x1217, dev=0x7134, revid=0x21
	domain=0, bus=8, slot=3, func=0
	class=06-07-00, hdrtype=0x02, mfdev=1
	cmdreg=0x0007, statreg=0x0410, cachelnsz=0 (dwords)
	lattimer=0x40 (1920 ns), mingnt=0xc0 (48000 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0, size 12, enabled
pcib4: matched entry for 8.3.INTA
pcib4: slot 3 INTA hardwired to IRQ 16
cbb0: <PCI-CardBus Bridge> irq 16 at device 3.0 on pci8
pcib4: cbb0 requested memory range 0x0-0xffffffff: good
cbb0: Lazy allocation of 0x1000 bytes rid 0x10 type 3 at 0x80000000
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
ioapic0: routing intpin 16 (PCI IRQ 16) to vector 50
cbb0: [MPSAFE]
cbb0: [ITHREAD]
cbb0: PCI Configuration space:
  0x00: 0x71341217 0x04100007 0x06070021 0x00824000 
  0x10: 0x80000000 0x020000a0 0x20090908 0xfffff000 
  0x20: 0x00000000 0xfffff000 0x00000000 0x0000fffd 
  0x30: 0x00000001 0x0000fffd 0x00000001 0x04400110 
  0x40: 0x131e10cf 0x00000001 0x00000000 0x00000000 
  0x50: 0x00000000 0x00000000 0x00000000 0x00000000 
  0x60: 0x00000000 0x00000000 0x00000000 0x00000000 
  0x70: 0x00000000 0x00000000 0x00000000 0x00000000 
  0x80: 0x00000000 0x00000000 0x00000000 0x01001002 
  0x90: 0x00052406 0x00000000 0x00000000 0x00000000 
  0xa0: 0xfe020001 0x00c04000 0x00000000 0x0000001f 
  0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 
  0xc0: 0x00000000 0x00000000 0x00000000 0x00000000 
  0xd0: 0x09006100 0x818203ea 0x00000000 0x00480018 
  0xe0: 0x00820000 0x000b101b 0x00000000 0x00000000 
  0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH7 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1810-0x181f at device 31.1 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x1810
ata0: <ATA channel 0> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0: stat0=0x00 err=0x01 lsb=0x14 msb=0xeb
ata0: stat1=0x00 err=0x00 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=00 stat1=00 devices=0x4<ATAPI_MASTER>
ioapic0: routing intpin 14 (ISA IRQ 14) to vector 51
ata0: [MPSAFE]
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=00 ostat0=ff ostat1=ff
ioapic0: routing intpin 15 (ISA IRQ 15) to vector 52
ata1: [MPSAFE]
ata1: [ITHREAD]
atapci1: <Intel ICH7M SATA300 controller> port 0x18d0-0x18d7,0x18c4-0x18c7,0x18c8-0x18cf,0x18c0-0x18c3,0x18b0-0x18bf mem 0xf0544400-0xf05447ff irq 19 at device 31.2 on pci0
atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0x18b0
ioapic0: routing intpin 19 (PCI IRQ 19) to vector 53
atapci1: [MPSAFE]
atapci1: [ITHREAD]
pci0: child atapci1 requested type 4 for rid 0x24, but the BAR says it is an memio
ata2: <ATA channel 0> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x18d0
atapci1: Reserved 0x4 bytes for rid 0x14 type 4 at 0x18c4
ata2: reset tp1 mask=03 ostat0=50 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ata2: [MPSAFE]
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x18c8
atapci1: Reserved 0x4 bytes for rid 0x1c type 4 at 0x18c0
ata3: reset tp1 mask=03 ostat0=7f ostat1=7f
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: reset tp2 stat0=ff stat1=ff devices=0x0
ata3: [MPSAFE]
ata3: [ITHREAD]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
cpu0: <ACPI CPU> on acpi0
ACPI: SSDT _at_ 0x0x7f64ef21/0x01E8 (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
ACPI: SSDT _at_ 0x0x7f64f3a0/0x01D0 (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
est0: <Enhanced SpeedStep Frequency Control> on cpu0
est0: Invalid id16 (set, cur) = (2067, 2587)
est0: Invalid freq 1333, ignored.
p4tcc0: <CPU Frequency Thermal Control> on cpu0
cpu1: <ACPI CPU> on acpi0
ACPI: SSDT _at_ 0x0x7f64f319/0x0087 (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
ACPI: SSDT _at_ 0x0x7f64f570/0x0085 (v  1 FUJ    FJNB1B5  0x01300000 INTL 0x20050624)
est1: <Enhanced SpeedStep Frequency Control> on cpu1
est1: Invalid id16 (set, cur) = (3106, 1570)
est1: Invalid freq 2000, ignored.
est1: Invalid id16 (set, cur) = (2067, 2587)
est1: Invalid freq 1333, ignored.
p4tcc1: <CPU Frequency Thermal Control> on cpu1
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0047
atkbd: keyboard ID 0x54ab (2)
kbd0 at atkbd0
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
ioapic0: routing intpin 1 (ISA IRQ 1) to vector 54
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: unable to allocate IRQ
psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
psm0: current command byte:0047
psm0: <PS/2 Mouse> irq 12 on atkbdc0
ioapic0: routing intpin 12 (ISA IRQ 12) to vector 55
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons
psm0: config:00000000, flags:00000008, packet size:3
psm0: syncmask:c0, syncbits:00
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_acad0: <AC Adapter> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
battery1: <ACPI Control Method Battery> on acpi0
acpi_button1: <Sleep Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
ata: ata0 already exists; skipping it
ata: ata1 already exists; skipping it
atkbdc: atkbdc0 already exists; skipping it
pnp_identify: Trying Read_Port at 203
pnp_identify: Trying Read_Port at 243
pnp_identify: Trying Read_Port at 283
pnp_identify: Trying Read_Port at 2c3
pnp_identify: Trying Read_Port at 303
pnp_identify: Trying Read_Port at 343
pnp_identify: Trying Read_Port at 383
pnp_identify: Trying Read_Port at 3c3
PNP Identify complete
sc: sc0 already exists; skipping it
vga: vga0 already exists; skipping it
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
pmtimer0 on isa0
adv0: not probed (disabled)
aha0: not probed (disabled)
aic0: not probed (disabled)
bt0: not probed (disabled)
cs0: not probed (disabled)
ed0: not probed (disabled)
fdc0 failed to probe at port 0x3f0 irq 6 drq 2 on isa0
fe0: not probed (disabled)
ie0: not probed (disabled)
le0: not probed (disabled)
ppc0 failed to probe at irq 7 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd1, terminal emulator: sc (syscons terminal)
sio0 failed to probe at port 0x3f8 irq 4 on isa0
sio1 failed to probe at port 0x2f8 irq 3 on isa0
sio2: not probed (disabled)
sio3: not probed (disabled)
sn0: not probed (disabled)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
isa_probe_children: probing PnP devices
Device configuration finished.
Reducing kern.maxvnodes 133880 -> 100000
procfs registered
lapic: Divisor 2, Frequency 83125841 hz
Timecounter "TSC" frequency 1995019896 Hz quality -100
Timecounters tick every 1.000 msec
lo0: bpf attached
acpi_acad0: acline initialization start
acpi_acad0: On Lineata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA33 cable=80 wire

acpi_acad0: acline initialization done, tried 1 timesacd0: setting PIO4 on ICH7 chip

battery0: battery initialization start
acd0: setting UDMA33 on ICH7 chip
battery0: battery initialization done, tried 1 times
battery1: battery initialization start
acd0: <MATSHITADVD-RAM UJ-841S/1.31> DVDR drive at ata0 as master
acd0: read 4134KB/s (4134KB/s) write 4134KB/s (4134KB/s), 2048KB buffer, UDMA33
acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, DVDRAM, packet
acd0: Writes: CDR, CDRW, DVDR, DVDRAM, test write, burnproof
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: no/blank disc
ata2-master: pio=PIO4 wdma=WDMA2 udma=UDMA100 cable=40 wire
ad4: 95396MB <HTE721010G9SA00 MCZOC10V> at ata2-master SATA150
ad4: 195371568 sectors [193821C/16H/63S] 16 sectors/interrupt 1 depth queue
SMP: AP CPU #1 Launched!
cpu1 AP:
     ID: 0x01000000   VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
  timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00010000
ioapic0: Assigning ISA IRQ 1 to local APIC 0
ioapic0: Assigning ISA IRQ 9 to local APIC 1
ioapic0: Assigning ISA IRQ 12 to local APIC 0
ioapic0: Assigning ISA IRQ 14 to local APIC 1
ioapic0: Assigning ISA IRQ 15 to local APIC 0
ioapic0: Assigning PCI IRQ 16 to local APIC 1
ioapic0: Assigning PCI IRQ 19 to local APIC 0
msi: Assigning MSI IRQ 256 to local APIC 1
GEOM: new disk ad4
pcib4: requested memory range 0x88000000-0xffffffff: good
cbb0: Opening memory:
cbb0: Normal: 0x88000000-0x8800ffff
unknown: Lazy allocation of 0x10000 bytes rid 0x10 type 3 at 0x88000000
cbb0: Opening memory:
	map[10]: type Memory, range 32, base 0, size 16, enabled
pcib4: requested memory range 0x88000000-0xffffffff: good
found->	vendor=0x168c, dev=0x0013, revid=0x01
	domain=0, bus=9, slot=0, func=0
	class=02-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0002, statreg=0x0290, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x0a (2500 ns), maxlat=0x1c (7000 ns)
	intpin=a, irq=16
	powerspec 2  supports D0 D3  current D0
ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 16 at device 0.0 on cardbus0
ath0: Reserved 0x10000 bytes for rid 0x10 type 3 at 0x88000000
cbb0: Opening memory:
cbb0: Normal: 0x88000000-0x8800ffff
ath0: [MPSAFE]
ath0: [ITHREAD]
ath0: hal channel 2412/a0 -> 1
ath0: hal channel 2412/c0 -> 1
ath0: hal channel 2417/a0 -> 2
ath0: hal channel 2417/c0 -> 2
ath0: hal channel 2422/a0 -> 3
ath0: hal channel 2422/c0 -> 3
ath0: hal channel 2427/a0 -> 4
ath0: hal channel 2427/c0 -> 4
ath0: hal channel 2432/a0 -> 5
ath0: hal channel 2432/c0 -> 5
ath0: hal channel 2437/a0 -> 6
ath0: hal channel 2437/c0 -> 6
ath0: hal channel 2437/d0 -> 6
ath0: hal channel 2442/a0 -> 7
ath0: hal channel 2442/c0 -> 7
ath0: hal channel 2447/a0 -> 8
ath0: hal channel 2447/c0 -> 8
ath0: hal channel 2452/a0 -> 9
ath0: hal channel 2452/c0 -> 9
ath0: hal channel 2457/a0 -> 10
ath0: hal channel 2457/c0 -> 10
ath0: hal channel 2462/a0 -> 11
ath0: hal channel 2462/c0 -> 11
ath0: hal channel 5180/140 -> 36
ath0: hal channel 5200/140 -> 40
ath0: hal channel 5200/150 -> 40
ath0: hal channel 5210/2150 -> 42
ath0: hal channel 5220/140 -> 44
ath0: hal channel 5240/140 -> 48
ath0: hal channel 5240/150 -> 48
ath0: hal channel 5250/2150 -> 50
ath0: hal channel 5260/140 -> 52
ath0: hal channel 5280/140 -> 56
ath0: hal channel 5280/150 -> 56
ath0: hal channel 5290/2150 -> 58
ath0: hal channel 5300/140 -> 60
ath0: hal channel 5320/140 -> 64
ath0: hal channel 5745/140 -> 149
ath0: hal channel 5760/2150 -> 152
ath0: hal channel 5765/140 -> 153
ath0: hal channel 5765/150 -> 153
ath0: hal channel 5785/140 -> 157
ath0: hal channel 5800/2150 -> 160
ath0: hal channel 5805/140 -> 161
ath0: hal channel 5805/150 -> 161
ath0: hal channel 5825/140 -> 165
ath0: WARNING: using obsoleted if_watchdog interface
ath0: bpf attached
ath0: Ethernet address: 00:0f:b5:0c:30:30
ath0: bpf attached
ath0: bpf attached
ath0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: turboA rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: sturboA rates: 
ath0: mac 5.9 phy 4.3 radio 3.6
ath0: Use hw queue 1 for WME_AC_BE traffic
ath0: Use hw queue 0 for WME_AC_BK traffic
ath0: Use hw queue 2 for WME_AC_VI traffic
ath0: Use hw queue 3 for WME_AC_VO traffic
ath0: Use hw queue 8 for CAB traffic
ath0: Use hw queue 9 for beacons
Trying to mount root from ufs:ad4s2a
start_init: trying /sbin/init
Linux ELF exec handler installed
ath0: link state changed to UP


/*
  RSD PTR: OEM=FUJ, ACPI_Rev=1.0x (0)
	RSDT=0x7f6478d8, cksum=105
 */
/*
  RSDT: Length=72, Revision=1, Checksum=154,
	OEMID=FSC, OEM Table ID=PC, OEM Revision=0x1300000,
	Creator ID=FUJ, Creator Revision=0x100
	Entries={ 0x7f64ff8c, 0x7f64e7a4, 0x7f64ea09, 0x7f64ea45, 0x7f64f5f5, 0x7f64fd4e, 0x7f64fdb6, 0x7f64fdee, 0x7f64fe16 }
 */
/*
  FACP: Length=116, Revision=1, Checksum=206,
	OEMID=FSC, OEM Table ID=PC, OEM Revision=0x1300000,
	Creator ID=FUJ, Creator Revision=0x100
 	FACS=0x7f650fc0, DSDT=0x7f647930
	INT_MODEL=PIC
	Preferred_PM_Profile=Unspecified (0)
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
	PSTATE_CNT=0x80
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1020-0x1020
	PM_TMR_BLK=0x1008-0x100b
	GPE0_BLK=0x1028-0x102f
	P_LVL2_LAT=1 us, P_LVL3_LAT=100 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=0, DUTY_WIDTH=0
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	IAPC_BOOT_ARCH=
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,DCK_CAP}
 */
/*
  FACS:	Length=64, HwSig=0x000016c9, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=0
 */
/*
  DSDT: Length=28276, Revision=1, Checksum=94,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
/*
  SSDT: Length=613, Revision=1, Checksum=137,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
/*
  MCFG: Length=60, Revision=1, Checksum=11,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=FUJ, Creator Revision=0x100

	Base Address= 0x00000000f8000000
	Segment Group= 0x0000
	Start Bus= 0
	End Bus= 63
 */
/*
  SSDT: Length=1244, Revision=1, Checksum=203,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=INTL, Creator Revision=0x20050624
 */
/*
  SSDT: Length=1881, Revision=1, Checksum=42,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=INTL, Creator Revision=0x20050624
 */
/*
  APIC: Length=104, Revision=1, Checksum=237,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID= LTP, Creator Revision=0x0
	Local APIC ADDR=0xfee00000
	Flags={PC-AT}

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

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

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

	Type=Local NMI
	ACPI CPU=0
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}

	Type=Local NMI
	ACPI CPU=1
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}

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

	Type=INT Override
	BUS=0
	IRQ=9
	INTR=9
	Flags={Polarity=active-hi, Trigger=level}
 */
/*
  HPET: Length=56, Revision=1, Checksum=187,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=FUJ, Creator Revision=0x100
	HPET Number=0
	ADDR=0xfed00000:0[0] (Memory)	HW Rev=0x1
	Comparitors=2
	Counter Size=1
	Legacy IRQ routing capable={TRUE}
	PCI Vendor ID=0x8086
	Minimal Tick=0
 */
/*
  BOOT: Length=40, Revision=1, Checksum=8,
	OEMID=FUJ, OEM Table ID=FJNB1B5, OEM Revision=0x1300000,
	Creator ID=FUJ, Creator Revision=0x100
 */
/*
  SLIC: Length=374, Revision=1, Checksum=185,
	OEMID=FSC, OEM Table ID=PC, OEM Revision=0x1300000,
	Creator ID=FSC, Creator Revision=0x100
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20070320
 *
 * Disassembly of /tmp/acpidump.n7c3Xb, Sun Mar 16 22:32:54 2008
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x00007CA2 (31906)
 *     Revision         0x01
 *     OEM ID           "FUJ   "
 *     OEM Table ID     "FJNB1B5 "
 *     OEM Revision     0x01300000 (19922944)
 *     Creator ID       "MSFT"
 *     Creator Revision 0x0100000E (16777230)
 */
DefinitionBlock ("/tmp/acpidump.aml", "DSDT", 1, "FUJ   ", "FJNB1B5 ", 0x01300000)
{
    External (\_SB_.PCI0.GFX0.LCD_.BLNF, MethodObj)    // 0 Arguments

    Name (BIDT, Buffer (0x10)
    {
        /* 0000 */    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 
        /* 0008 */    0x08, 0x00, 0x00, 0x00, 0x09, 0x0A, 0x00, 0x0B
    })
    Name (BMNT, Package (0x0C)
    {
        "CP279074", 
        "CP293530", 
        "CP293546", 
        "CP293562", 
        "CP293578", 
        "CP293594", 
        "CP293610", 
        "CP293626", 
        "CP293642", 
        "CP245360", 
        "CP186215 / CP186216", 
        "CP144820 / CP144821"
    })
    Name (BMST, Package (0x0C)
    {
        "CP279074", 
        "CP293530", 
        "CP293546", 
        "CP293562", 
        "CP293578", 
        "CP293594", 
        "CP293610", 
        "CP293626", 
        "CP293642", 
        "CP245360", 
        "CP245376", 
        "CP245408"
    })
    Scope (\_PR)
    {
        Processor (CPU0, 0x00, 0x00001010, 0x06) {}
        Processor (CPU1, 0x01, 0x00001010, 0x06) {}
    }

    Scope (\_SB)
    {
        Name (OSTB, Ones)
        OperationRegion (OSTY, SystemMemory, 0x7F650EF6, 0x00000001)
        Field (OSTY, AnyAcc, NoLock, Preserve)
        {
            TPOS,   8
        }

        Method (OSTP, 0, NotSerialized)
        {
            If (LEqual (^OSTB, Ones))
            {
                If (CondRefOf (\_OSI, Local0))
                {
                    If (\_OSI ("Windows 2006"))
                    {
                        Store (0x40, ^OSTB)
                        Store (0x40, ^TPOS)
                    }
                    Else
                    {
                        If (\_OSI ("Windows 2001.1"))
                        {
                            Store (0x20, ^OSTB)
                            Store (0x20, ^TPOS)
                        }
                        Else
                        {
                            If (\_OSI ("Windows 2001 SP1"))
                            {
                                Store (0x10, ^OSTB)
                                Store (0x10, ^TPOS)
                            }
                            Else
                            {
                                If (\_OSI ("Windows 2001"))
                                {
                                    Store (0x08, ^OSTB)
                                    Store (0x08, ^TPOS)
                                }
                                Else
                                {
                                    Store (0x00, ^OSTB)
                                    Store (0x00, ^TPOS)
                                }
                            }
                        }
                    }
                }
                Else
                {
                    If (CondRefOf (\_OS, Local0))
                    {
                        If (^SEQL (\_OS, "Microsoft Windows"))
                        {
                            Store (0x01, ^OSTB)
                            Store (0x01, ^TPOS)
                        }
                        Else
                        {
                            If (^SEQL (\_OS, "Microsoft WindowsME: Millennium Edition"))
                            {
                                Store (0x02, ^OSTB)
                                Store (0x02, ^TPOS)
                            }
                            Else
                            {
                                If (^SEQL (\_OS, "Microsoft Windows NT"))
                                {
                                    Store (0x04, ^OSTB)
                                    Store (0x04, ^TPOS)
                                }
                                Else
                                {
                                    Store (0x00, ^OSTB)
                                    Store (0x00, ^TPOS)
                                }
                            }
                        }
                    }
                    Else
                    {
                        Store (0x00, ^OSTB)
                        Store (0x00, ^TPOS)
                    }
                }
            }

            Return (^OSTB)
        }

        Method (SEQL, 2, Serialized)
        {
            Store (SizeOf (Arg0), Local0)
            Store (SizeOf (Arg1), Local1)
            If (LNotEqual (Local0, Local1))
            {
                Return (Zero)
            }

            Name (BUF0, Buffer (Local0) {})
            Store (Arg0, BUF0)
            Name (BUF1, Buffer (Local0) {})
            Store (Arg1, BUF1)
            Store (Zero, Local2)
            While (LLess (Local2, Local0))
            {
                Store (DerefOf (Index (BUF0, Local2)), Local3)
                Store (DerefOf (Index (BUF1, Local2)), Local4)
                If (LNotEqual (Local3, Local4))
                {
                    Return (Zero)
                }

                Increment (Local2)
            }

            Return (One)
        }
    }

    Name (FWSO, Zero)
    Name (RPEN, Zero)
    Name (RPDS, Zero)
    Name (BYIS, 0xFF)
    Name (EXIS, 0xFF)
    Name (PLWM, Zero)
    Name (PTAL, Zero)
    Name (LEDI, Zero)
    Name (BTNI, Zero)
    Name (NGTI, 0x06)
    Name (ECCI, 0x03)
    Name (GINT, Zero)
    Name (DPCI, One)
    Name (DPCS, Zero)
    Name (LIDS, Zero)
    Name (VSTH, Zero)
    Name (HDWA, Zero)
    Name (\GPIC, 0x00)
    Method (\_PIC, 1, NotSerialized)
    {
        Store (Arg0, GPIC)
    }

    Scope (\_SB)
    {
        OperationRegion (PSIO, SystemIO, 0x00000F40, 0x00000002)
        OperationRegion (PSBF, SystemMemory, 0x7F650E66, 0x00000090)
        OperationRegion (OEMT, SystemMemory, 0x7F650F9C, 0x00000020)
        OperationRegion (SYSC, SystemMemory, 0x7F650F92, 0x0000000A)
        OperationRegion (VDEX, SystemMemory, 0x7F650E56, 0x00000010)
        OperationRegion (THZN, SystemMemory, 0x7F650F82, 0x00000010)
        OperationRegion (BTNC, SystemMemory, 0x7F650F72, 0x00000010)
        OperationRegion (VIST, SystemMemory, 0x7F6505C3, 0x00000893)
        OperationRegion (QBC, SystemMemory, 0x7F650F66, 0x0000000C)
        OperationRegion (TCG1, SystemMemory, 0x7F6505BF, 0x00000004)
        OperationRegion (IO80, SystemIO, 0x80, 0x01)
        Scope (\)
        {
            Field (\_SB.PSIO, ByteAcc, NoLock, Preserve)
            {
                SSMI,   8
            }

            Field (\_SB.PSBF, ByteAcc, NoLock, Preserve)
            {
                CMD,    8, 
                DVID,   32, 
                PSDT,   32
            }

            Field (\_SB.PSBF, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x05), 
                INF,    8
            }

            Field (\_SB.PSBF, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x05), 
                PIID,   320
            }

            Field (\_SB.OEMT, ByteAcc, NoLock, Preserve)
            {
                SPAF,   2, 
                SPBF,   2, 
                PPF,    3, 
                FDCF,   1, 
                SIDF,   2, 
                IMTF,   1, 
                BLEN,   1, 
                WLEN,   1, 
                BTEX,   1, 
                        Offset (0x04), 
                WAPB,   1, 
                        Offset (0x08), 
                FWHM,   1, 
                    ,   1, 
                TPMF,   2, 
                HWPM,   1, 
                RRCP,   1, 
                INTV,   1, 
                FSCM,   1, 
                    ,   1, 
                CPBL,   1, 
                AS34,   1, 
                        Offset (0x0A), 
                BIFL,   8, 
                DCLW,   7, 
                        Offset (0x10), 
                FDS0,   4, 
                FDS1,   4, 
                        Offset (0x18), 
                UMST,   32, 
                UMSZ,   32
            }

            Field (\_SB.SYSC, ByteAcc, NoLock, Preserve)
            {
                BHKF,   1, 
                    ,   2, 
                MHKF,   1, 
                        Offset (0x01), 
                BLLM,   8, 
                BLLT,   64
            }

            Field (\_SB.SYSC, ByteAcc, NoLock, Preserve)
            {
                AHKF,   8
            }

            Field (\_SB.VDEX, ByteAcc, NoLock, Preserve)
            {
                ADOS,   3, 
                CLCD,   1, 
                ALCD,   1, 
                CCRT,   1, 
                ACRT,   1, 
                CTV,    1, 
                ATV,    1, 
                CDVI,   1, 
                ADVI,   1, 
                DSWF,   2, 
                BSWF,   2
            }

            Field (\_SB.THZN, ByteAcc, NoLock, Preserve)
            {
                DTS1,   8, 
                DTS2,   8, 
                CRTT,   8, 
                PSVT,   8, 
                TC1V,   4, 
                TC2V,   4, 
                TSPV,   4, 
                MPEN,   1, 
                DTSE,   1
            }

            Field (\_SB.BTNC, ByteAcc, NoLock, Preserve)
            {
                IRBF,   1, 
                VLBF,   3, 
                    ,   3, 
                NGTF,   1, 
                        Offset (0x04), 
                IRBC,   16
            }

            Field (\_SB.QBC, ByteAcc, NoLock, Preserve)
            {
                QAG1,   32, 
                QAG2,   32, 
                QAG3,   32
            }

            Field (\_SB.TCG1, AnyAcc, NoLock, Preserve)
            {
                PPRQ,   8, 
                PPLO,   8, 
                PPRP,   8, 
                PPOR,   8
            }

            Field (\_SB.IO80, ByteAcc, NoLock, Preserve)
            {
                PO80,   8
            }
        }

        Method (_INI, 0, NotSerialized)
        {
            If (LGreaterEqual (\_SB.OSTP (), 0x40))
            {
                Load (VIST, VSTH)
            }

            And (G3P1, 0xC0, Local0)
            If (LEqual (Local0, 0xC0))
            {
                Store (Zero, LEDI)
                Store (Zero, BTNI)
            }
            Else
            {
                If (Local0)
                {
                    Store (Zero, LEDI)
                    Store (0x00FF0101, BTNI)
                }
                Else
                {
                    Store (Zero, LEDI)
                    Store (0x000F0001, BTNI)
                }
            }
        }

        Device (MCFG)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_CRS, ResourceTemplate ()
            {
                DWordMemory (ResourceConsumer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xF8000000,         // Range Minimum
                    0xFBFFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x04000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
        }

        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08"))
            Name (_CID, 0x030AD041)
            Name (_ADR, 0x00)
            Name (_BBN, 0x00)
            OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
            Field (HBUS, DWordAcc, NoLock, Preserve)
            {
                        Offset (0x50), 
                    ,   4, 
                PM0H,   2, 
                        Offset (0x51), 
                PM1L,   2, 
                    ,   2, 
                PM1H,   2, 
                        Offset (0x52), 
                PM2L,   2, 
                    ,   2, 
                PM2H,   2, 
                        Offset (0x53), 
                PM3L,   2, 
                    ,   2, 
                PM3H,   2, 
                        Offset (0x54), 
                PM4L,   2, 
                    ,   2, 
                PM4H,   2, 
                        Offset (0x55), 
                PM5L,   2, 
                    ,   2, 
                PM5H,   2, 
                        Offset (0x56), 
                PM6L,   2, 
                    ,   2, 
                PM6H,   2, 
                        Offset (0x57), 
                    ,   7, 
                HENA,   1, 
                        Offset (0x5C), 
                    ,   3, 
                TOUD,   5
            }

            Name (BUF0, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0100,             // Length
                    ,, )
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000CF7,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000CF8,         // Length
                    ,, , TypeStatic)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000D00,         // Range Minimum
                    0x0000FFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x0000F300,         // Length
                    ,, , TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000C3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C4000,         // Range Minimum
                    0x000C7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C8000,         // Range Minimum
                    0x000CBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CC000,         // Range Minimum
                    0x000CFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D0000,         // Range Minimum
                    0x000D3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D4000,         // Range Minimum
                    0x000D7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000DBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DC000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E0000,         // Range Minimum
                    0x000E3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E4000,         // Range Minimum
                    0x000E7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E8000,         // Range Minimum
                    0x000EBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EC000,         // Range Minimum
                    0x000EFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000F0000,         // Range Minimum
                    0x000FFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00010000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0xFEBFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED40000,         // Range Minimum
                    0xFED44FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00005000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
            Method (_CRS, 0, Serialized)
            {
                If (PM1L)
                {
                    CreateDWordField (BUF0, 0x7C, C0LN)
                    Store (Zero, C0LN)
                }

                If (LEqual (PM1L, 0x01))
                {
                    CreateBitField (BUF0, 0x0358, C0RW)
                    Store (Zero, C0RW)
                }

                If (PM1H)
                {
                    CreateDWordField (BUF0, 0x96, C4LN)
                    Store (Zero, C4LN)
                }

                If (LEqual (PM1H, 0x01))
                {
                    CreateBitField (BUF0, 0x0428, C4RW)
                    Store (Zero, C4RW)
                }

                If (PM2L)
                {
                    CreateDWordField (BUF0, 0xB0, C8LN)
                    Store (Zero, C8LN)
                }

                If (LEqual (PM2L, 0x01))
                {
                    CreateBitField (BUF0, 0x04F8, C8RW)
                    Store (Zero, C8RW)
                }

                If (PM2H)
                {
                    CreateDWordField (BUF0, 0xCA, CCLN)
                    Store (Zero, CCLN)
                }

                If (LEqual (PM2H, 0x01))
                {
                    CreateBitField (BUF0, 0x05C8, CCRW)
                    Store (Zero, CCRW)
                }

                If (PM3L)
                {
                    CreateDWordField (BUF0, 0xE4, D0LN)
                    Store (Zero, D0LN)
                }

                If (LEqual (PM3L, 0x01))
                {
                    CreateBitField (BUF0, 0x0698, D0RW)
                    Store (Zero, D0RW)
                }

                If (PM3H)
                {
                    CreateDWordField (BUF0, 0xFE, D4LN)
                    Store (Zero, D4LN)
                }

                If (LEqual (PM3H, 0x01))
                {
                    CreateBitField (BUF0, 0x0768, D4RW)
                    Store (Zero, D4RW)
                }

                If (PM4L)
                {
                    CreateDWordField (BUF0, 0x0118, D8LN)
                    Store (Zero, D8LN)
                }

                If (LEqual (PM4L, 0x01))
                {
                    CreateBitField (BUF0, 0x0838, D8RW)
                    Store (Zero, D8RW)
                }

                If (PM4H)
                {
                    CreateDWordField (BUF0, 0x0132, DCLN)
                    Store (Zero, DCLN)
                }

                If (LEqual (PM4H, 0x01))
                {
                    CreateBitField (BUF0, 0x0908, DCRW)
                    Store (Zero, DCRW)
                }

                If (PM5L)
                {
                    CreateDWordField (BUF0, 0x014C, E0LN)
                    Store (Zero, E0LN)
                }

                If (LEqual (PM5L, 0x01))
                {
                    CreateBitField (BUF0, 0x09D8, E0RW)
                    Store (Zero, E0RW)
                }

                If (PM5H)
                {
                    CreateDWordField (BUF0, 0x0166, E4LN)
                    Store (Zero, E4LN)
                }

                If (LEqual (PM5H, 0x01))
                {
                    CreateBitField (BUF0, 0x0AA8, E4RW)
                    Store (Zero, E4RW)
                }

                If (PM6L)
                {
                    CreateDWordField (BUF0, 0x0180, E8LN)
                    Store (Zero, E8LN)
                }

                If (LEqual (PM6L, 0x01))
                {
                    CreateBitField (BUF0, 0x0B78, E8RW)
                    Store (Zero, E8RW)
                }

                If (PM6H)
                {
                    CreateDWordField (BUF0, 0x019A, ECLN)
                    Store (Zero, ECLN)
                }

                If (LEqual (PM6H, 0x01))
                {
                    CreateBitField (BUF0, 0x0C48, ECRW)
                    Store (Zero, ECRW)
                }

                If (PM0H)
                {
                    CreateDWordField (BUF0, 0x01B4, F0LN)
                    Store (Zero, F0LN)
                }

                If (LEqual (PM0H, 0x01))
                {
                    CreateBitField (BUF0, 0x0D18, F0RW)
                    Store (Zero, F0RW)
                }

                CreateDWordField (BUF0, 0x01C2, M1MN)
                CreateDWordField (BUF0, 0x01C6, M1MX)
                CreateDWordField (BUF0, 0x01CE, M1LN)
                ShiftLeft (TOUD, 0x1B, M1MN)
                Add (Subtract (M1MX, M1MN), 0x01, M1LN)
                CreateDWordField (BUF0, 0x01DC, TPMN)
                CreateDWordField (BUF0, 0x01E0, TPMX)
                CreateDWordField (BUF0, 0x01E8, TPML)
                If (LNotEqual (TPMF, 0x02))
                {
                    Store (Zero, TPMN)
                    Store (Zero, TPMX)
                    Store (Zero, TPML)
                }

                Return (BUF0)
            }

            Method (_PRT, 0, NotSerialized)
            {
                If (GPIC)
                {
                    Return (Package (0x10)
                    {
                        Package (0x04)
                        {
                            0x0001FFFF, 
                            0x00, 
                            0x00, 
                            0x10
                        }, 

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

                        Package (0x04)
                        {
                            0x0007FFFF, 
                            0x03, 
                            0x00, 
                            0x10
                        }, 

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

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

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

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

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

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

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

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

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

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

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

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

                        Package (0x04)
                        {
                            0x001FFFFF, 
                            0x01, 
                            0x00, 
                            0x13
                        }
                    })
                }
                Else
                {
                    Return (Package (0x10)
                    {
                        Package (0x04)
                        {
                            0x0001FFFF, 
                            0x00, 
                            \_SB.PCI0.LPCB.LNKA, 
                            0x00
                        }, 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            Device (MBIO)
            {
                Name (_HID, EisaId ("PNP0C02"))
                Method (_STA, 0, NotSerialized)
                {
                    Return (0x0F)
                }

                Name (RSRC, ResourceTemplate ()
                {
                    IO (Decode16,
                        0x0010,             // Range Minimum
                        0x0010,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IO (Decode16,
                        0x0024,             // Range Minimum
                        0x0024,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0028,             // Range Minimum
                        0x0028,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x002C,             // Range Minimum
                        0x002C,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x002E,             // Range Minimum
                        0x002E,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0030,             // Range Minimum
                        0x0030,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0034,             // Range Minimum
                        0x0034,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0038,             // Range Minimum
                        0x0038,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x003C,             // Range Minimum
                        0x003C,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0050,             // Range Minimum
                        0x0050,             // Range Maximum
                        0x01,               // Alignment
                        0x04,               // Length
                        )
                    IO (Decode16,
                        0x0072,             // Range Minimum
                        0x0072,             // Range Maximum
                        0x01,               // Alignment
                        0x06,               // Length
                        )
                    IO (Decode16,
                        0x0080,             // Range Minimum
                        0x0080,             // Range Maximum
                        0x01,               // Alignment
                        0x01,               // Length
                        )
                    IO (Decode16,
                        0x0090,             // Range Minimum
                        0x0090,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IO (Decode16,
                        0x00A4,             // Range Minimum
                        0x00A4,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00A8,             // Range Minimum
                        0x00A8,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00AC,             // Range Minimum
                        0x00AC,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00B0,             // Range Minimum
                        0x00B0,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00B2,             // Range Minimum
                        0x00B2,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00B4,             // Range Minimum
                        0x00B4,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00B8,             // Range Minimum
                        0x00B8,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x00BC,             // Range Minimum
                        0x00BC,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x04D0,             // Range Minimum
                        0x04D0,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    IO (Decode16,
                        0x0800,             // Range Minimum
                        0x0800,             // Range Maximum
                        0x01,               // Alignment
                        0x10,               // Length
                        )
                    IO (Decode16,
                        0x1000,             // Range Minimum
                        0x1000,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                    IO (Decode16,
                        0x1080,             // Range Minimum
                        0x1080,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                    IO (Decode16,
                        0x1100,             // Range Minimum
                        0x1100,             // Range Maximum
                        0x01,               // Alignment
                        0x20,               // Length
                        )
                    IO (Decode16,
                        0x1180,             // Range Minimum
                        0x1180,             // Range Maximum
                        0x01,               // Alignment
                        0x40,               // Length
                        )
                    IO (Decode16,
                        0xF800,             // Range Minimum
                        0xF800,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                    IO (Decode16,
                        0xF880,             // Range Minimum
                        0xF880,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                    IO (Decode16,
                        0xFC00,             // Range Minimum
                        0xFC00,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                    IO (Decode16,
                        0xFC80,             // Range Minimum
                        0xFC80,             // Range Maximum
                        0x01,               // Alignment
                        0x80,               // Length
                        )
                    IO (Decode16,
                        0xFD0C,             // Range Minimum
                        0xFD0C,             // Range Maximum
                        0x01,               // Alignment
                        0x74,               // Length
                        )
                    IO (Decode16,
                        0xFE00,             // Range Minimum
                        0xFE00,             // Range Maximum
                        0x01,               // Alignment
                        0x02,               // Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xF8000000,         // Address Base
                        0x04000000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED14000,         // Address Base
                        0x00004000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED18000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED19000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED1C000,         // Address Base
                        0x00004000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED20000,         // Address Base
                        0x00020000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED45000,         // Address Base
                        0x0004B000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEC00000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEE00000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFEF00000,         // Address Base
                        0x00100000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0x000CF000,         // Address Base
                        0x00001000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFFB00000,         // Address Base
                        0x00100000,         // Address Length
                        )
                    Memory32Fixed (ReadWrite,
                        0xFED40000,         // Address Base
                        0x00005000,         // Address Length
                        )
                })
                Method (_CRS, 0, Serialized)
                {
                    CreateDWordField (RSRC, 0x0184, MBBS)
                    CreateDWordField (RSRC, 0x0188, MBLN)
                    CreateDWordField (RSRC, 0x0190, FWBS)
                    CreateDWordField (RSRC, 0x0194, FWLN)
                    CreateDWordField (RSRC, 0x019C, TPMB)
                    CreateDWordField (RSRC, 0x01A0, TPML)
                    Store (UMST, MBBS)
                    Store (UMSZ, MBLN)
                    If (FWHM)
                    {
                        Store (Zero, FWBS)
                        Store (Zero, FWLN)
                    }

                    If (LEqual (TPMF, 0x02))
                    {
                        Store (Zero, TPMB)
                        Store (Zero, TPML)
                    }

                    Return (RSRC)
                }
            }

            Device (GFX0)
            {
                Name (_ADR, 0x00020000)
                Method (XLCD, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (XCRT, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (XTV, 0, NotSerialized)
                {
                    Return (XOr (SOUT, One))
                }

                Method (XDVI, 0, NotSerialized)
                {
                    Return (BY2O)
                }

                Scope (\)
                {
                    Name (WLCD, Zero)
                    Name (WCRT, Zero)
                    Name (WTV, Zero)
                    Name (WDVI, Zero)
                }

                Method (PHTK, 0, NotSerialized)
                {
                    Store (Zero, DSWF)
                }

                Name (F10T, Package (0x0A)
                {
                    0x01, 
                    0x02, 
                    0x03, 
                    0x04, 
                    0x05, 
                    0x01, 
                    0x02, 
                    0x03, 
                    0x04, 
                    0x05
                })
                Method (AHTK, 0, NotSerialized)
                {
                    If (LAnd (LEqual (And (ADOS, 0x03), Zero), DSWF))
                    {
                        UPDD ()
                        If (LEqual (DSWF, 0x01))
                        {
                            Or (ShiftLeft (CDVI, 0x02), Or (ShiftLeft (CCRT, 0x01), 
                                CLCD), Local0)
                            Or (ShiftLeft (ADVI, 0x02), Or (ShiftLeft (ACRT, 0x01), 
                                ALCD), Local1)
                            Store (Zero, Local2)
                            Store (0xFF, Local3)
                            While (LAnd (LLess (Local2, 0x0A), LEqual (Local3, 0xFF)))
                            {
                                If (LEqual (DerefOf (Index (F10T, Local2)), Local0))
                                {
                                    If (LAnd (CTV, ATV))
                                    {
                                        Store (Local2, Local3)
                                    }
                                    Else
                                    {
                                        Add (Local2, 0x01, Local3)
                                    }
                                }

                                Increment (Local2)
                            }

                            Store (0xFF, Local2)
                            If (LNotEqual (Local3, 0xFF))
                            {
                                While (LAnd (LLess (Local3, 0x0A), LEqual (Local2, 0xFF)))
                                {
                                    If (LEqual (And (DerefOf (Index (F10T, Local3)), Local1), 
                                        DerefOf (Index (F10T, Local3))))
                                    {
                                        Store (DerefOf (Index (F10T, Local3)), Local2)
                                    }

                                    Increment (Local3)
                                }
                            }

                            If (LEqual (Local2, 0xFF))
                            {
                                If (ALCD)
                                {
                                    Store (0x01, Local2)
                                }
                                Else
                                {
                                    If (ACRT)
                                    {
                                        Store (0x02, Local2)
                                    }
                                    Else
                                    {
                                        If (ADVI)
                                        {
                                            Store (0x04, Local2)
                                        }
                                        Else
                                        {
                                            Store (0x02, Local2)
                                        }
                                    }
                                }
                            }

                            And (Local2, 0x01, WLCD)
                            ShiftRight (And (Local2, 0x02), 0x01, WCRT)
                            ShiftRight (And (Local2, 0x04), 0x02, WDVI)
                            Store (Zero, WTV)
                            Notify (\_SB.PCI0.GFX0, 0x80)
                        }
                        Else
                        {
                            If (LEqual (DSWF, 0x02))
                            {
                                And (CLCD, ALCD, WLCD)
                                And (CCRT, ACRT, WCRT)
                                And (CDVI, ADVI, WDVI)
                                And (XOr (CTV, 0x01), ATV, WTV)
                                If (LOr (LOr (WTV, WDVI), LOr (WCRT, WLCD)))
                                {
                                    If (LAnd (LAnd (WLCD, WCRT), WTV))
                                    {
                                        Store (Zero, WCRT)
                                    }

                                    If (LAnd (LAnd (WLCD, WDVI), WTV))
                                    {
                                        Store (Zero, WDVI)
                                    }

                                    If (LAnd (LAnd (WCRT, WDVI), WTV))
                                    {
                                        Store (Zero, WDVI)
                                    }

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

                Method (UPDD, 0, NotSerialized)
                {
                    If (LGreaterEqual (\_SB.OSTP (), 0x08))
                    {
                        Notify (\_SB.PCI0, 0x00)
                    }
                    Else
                    {
                        Notify (\_SB.PCI0.GFX0, 0x00)
                    }

                    Sleep (0x02EE)
                    Store (0xFF, DVID)
                    Store (0x8E, CMD)
                    Store (Zero, SSMI)
                }

                Method (_DOS, 1, NotSerialized)
                {
                    And (Arg0, 0x07, ADOS)
                }

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

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

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (XCRT ())
                        {
                            UPDD ()
                            Return (Or (0x0D, Or (ShiftLeft (ACRT, 0x04), ShiftLeft (CCRT, 
                                0x01))))
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (WCRT)
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        Noop
                    }
                }

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

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (XLCD ())
                        {
                            UPDD ()
                            Return (Or (0x0D, Or (ShiftLeft (ALCD, 0x04), ShiftLeft (CLCD, 
                                0x01))))
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (WLCD)
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        Noop
                    }
                }

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

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (XTV ())
                        {
                            UPDD ()
                            Return (Or (0x0D, Or (ShiftLeft (ATV, 0x04), ShiftLeft (CTV, 
                                0x01))))
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (WTV)
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        Noop
                    }
                }

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

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (XDVI ())
                        {
                            UPDD ()
                            Return (Or (0x0D, Or (ShiftLeft (ADVI, 0x04), ShiftLeft (CDVI, 
                                0x01))))
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (WDVI)
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        Noop
                    }
                }

                Scope (LCD)
                {
                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0x00, LIDS)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0x01, LIDS)
                    }
                }
            }

            Device (PCIB)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRT, 0, NotSerialized)
                {
                    If (GPIC)
                    {
                        Return (Package (0x02)
                        {
                            Package (0x04)
                            {
                                0x0003FFFF, 
                                0x00, 
                                0x00, 
                                0x10
                            }, 

                            Package (0x04)
                            {
                                0x0006FFFF, 
                                0x00, 
                                0x00, 
                                0x11
                            }
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            Package (0x04)
                            {
                                0x0003FFFF, 
                                0x00, 
                                \_SB.PCI0.LPCB.LNKA, 
                                0x00
                            }, 

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

                Method (_INI, 0, NotSerialized)
                {
                }

                Name (_PRW, Package (0x02)
                {
                    0x0B, 
                    0x04
                })
            }

            Device (LPCB)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (LPC0, PCI_Config, 0x40, 0xC0)
                Field (LPC0, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x20), 
                    PARC,   8, 
                    PBRC,   8, 
                    PCRC,   8, 
                    PDRC,   8, 
                            Offset (0x28), 
                    PERC,   8, 
                    PFRC,   8, 
                    PGRC,   8, 
                    PHRC,   8, 
                            Offset (0x40), 
                    IOD0,   8, 
                    IOD1,   8, 
                            Offset (0x60), 
                        ,   2, 
                    CLKR,   1
                }

                OperationRegion (SIO, SystemIO, 0x2E, 0x02)
                OperationRegion (FJIO, SystemIO, 0xFD60, 0x15)
                Scope (\)
                {
                    Field (\_SB.PCI0.LPCB.FJIO, ByteAcc, NoLock, Preserve)
                    {
                        AIDC,   8, 
                        ADTC,   8, 
                        AIDB,   8, 
                        ADTB,   8, 
                        AIDA,   8, 
                        ADTA,   8, 
                        AIDD,   8, 
                        ADTD,   8, 
                                Offset (0x10), 
                        PMID,   8, 
                                Offset (0x14), 
                        PMDT,   8
                    }
                }

                OperationRegion (PMIO, SystemIO, 0x1000, 0x80)
                OperationRegion (OGIO, SystemIO, 0x1180, 0x3C)
                Scope (\)
                {
                    Field (\_SB.PCI0.LPCB.PMIO, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x42), 
                            ,   1, 
                        GPEC,   1
                    }

                    Field (\_SB.PCI0.LPCB.OGIO, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x2C), 
                                Offset (0x2D), 
                        LPOL,   1, 
                            ,   4, 
                        EXPL,   1, 
                                Offset (0x38), 
                            ,   1, 
                        PXRS,   1, 
                        PXCL,   1
                    }
                }

                OperationRegion (OPIO, SystemIO, 0x1000, 0x67)
                Scope (\)
                {
                    Field (\_SB.PCI0.LPCB.OPIO, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x10), 
                                Offset (0x11), 
                        FOCT,   1
                    }
                }

                Method (_INI, 0, NotSerialized)
                {
                    \_SB.OSTP ()
                    \_SB.PCI0.LPCB.CMBT.SWCF ()
                    AINI ()
                    PRCF ()
                    If (RRCP)
                    {
                        Store (One, RPEN)
                        Store (B2TC, RPDS)
                    }
                }

                Scope (\)
                {
                    IndexField (AIDA, ADTA, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x09), 
                        RI1M,   1, 
                        RI2M,   1, 
                        RI3M,   1, 
                        RI4M,   1, 
                        RI1,    1, 
                        RI2,    1, 
                        RI3,    1, 
                        RI4,    1, 
                            ,   2, 
                        CVCL,   1, 
                            ,   3, 
                        BLCT,   2, 
                                Offset (0x20), 
                        G5P0,   8, 
                        G5C0,   8, 
                        G3P0,   8, 
                        G3C0,   8, 
                                Offset (0x40), 
                        SSF0,   8, 
                        SSF1,   8, 
                        SSM0,   8, 
                        SSM1,   8, 
                        SSI0,   8, 
                        SSTM,   8, 
                        SSF2,   8, 
                        SSM2,   8, 
                        SSI1,   8, 
                                Offset (0x52), 
                        G3P1,   8, 
                        G3C1,   8, 
                        G3P2,   8, 
                        G3C2,   8, 
                        QSWC,   8, 
                                Offset (0x60), 
                        SSS0,   8, 
                        SSS1,   8
                    }

                    IndexField (AIDB, ADTB, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x29), 
                        BRCL,   8, 
                        LCDB,   8, 
                                Offset (0x30), 
                        LCDC,   8
                    }

                    IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve)
                    {
                        TASF,   1, 
                        TBSF,   1, 
                        B1SU,   1, 
                        B1SD,   1, 
                        B2SU,   1, 
                        B2SD,   1, 
                                Offset (0x02), 
                            ,   4, 
                        VSTB,   1, 
                                Offset (0x05), 
                            ,   6, 
                        ACPW,   1, 
                                Offset (0x20), 
                        BCTL,   8, 
                                Offset (0x23), 
                        TAF,    1, 
                        TASM,   1, 
                            ,   2, 
                        TBF,    1, 
                        TBSM,   1, 
                                Offset (0x24), 
                        TIMA,   8, 
                        TIMB,   8, 
                                Offset (0x28), 
                        CDLP,   8, 
                        HDLP,   8, 
                        FDLP,   8, 
                                Offset (0x4E), 
                        B1UM,   1, 
                        B1DM,   1, 
                            ,   1, 
                        B1TC,   1, 
                        B2UM,   1, 
                        B2DM,   1, 
                            ,   1, 
                        B2TC,   1, 
                        BAPC,   6
                    }

                    IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve)
                    {
                        STAE,   8
                    }

                    IndexField (AIDD, ADTD, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x80), 
                        GIDI,   8, 
                        GIDC,   8, 
                        GIDO,   8, 
                                Offset (0x90), 
                        G3SI,   8, 
                        G3SC,   8, 
                        G3SO,   8, 
                        G3SM,   8, 
                                Offset (0xA0), 
                        WOXF,   8, 
                        WOXE,   8, 
                        WOXD,   8, 
                        WOXS,   8, 
                                Offset (0xB0), 
                        AMPV,   6
                    }
                }

                Scope (\)
                {
                    IndexField (PMID, PMDT, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0xA0), 
                        UPPR,   1, 
                        ERRO,   1, 
                        PASS,   1, 
                        PSOK,   1, 
                        PSNG,   1, 
                        TOUT,   1, 
                        SIRN,   1, 
                        STSC,   1, 
                        OVFL,   1, 
                        LWMD,   1, 
                        TALM,   1, 
                        EMGC,   1, 
                        OCNT,   4, 
                        TDTC,   1, 
                            ,   4, 
                        AERR,   1, 
                        PERR,   1, 
                        ABSY,   1, 
                                Offset (0xA4), 
                        PDAT,   8, 
                                Offset (0xC0), 
                                Offset (0xC1), 
                        B1P,    1, 
                        B2P,    1, 
                        B1C,    1, 
                        B2C,    1, 
                        B1ER,   1, 
                        B2ER,   1, 
                        PKSH,   1, 
                        CMB,    1, 
                        B1CP,   8, 
                        B2CP,   8, 
                        BAVG,   8, 
                        B1VH,   8, 
                        B1VL,   8, 
                        B2VH,   8, 
                        B2VL,   8, 
                        B1TM,   8, 
                        B2TM,   8, 
                        B1CH,   8, 
                        B1CL,   8, 
                        B2CH,   8, 
                        B2CL,   8, 
                        BTMH,   8, 
                        BTML,   8, 
                        B1LH,   8, 
                        B1LL,   8, 
                        B2LH,   8, 
                        B2LL,   8, 
                        B1ID,   4, 
                        B1NO,   4, 
                        B2ID,   4, 
                        B2NO,   4, 
                        B1DV,   8, 
                        B2DV,   8, 
                        B1DH,   8, 
                        B1DL,   8, 
                        B2DH,   8, 
                        B2DL,   8, 
                        TBSI,   8, 
                        TBSH,   8, 
                        TBSL,   8, 
                        BHDD,   1, 
                        BOPT,   1, 
                            ,   5, 
                        ABLC,   1, 
                                Offset (0xE8), 
                        TBCM,   8, 
                        TBMD,   8, 
                        TBIN,   8, 
                        DCOL,   7, 
                        S3EN,   1
                    }

                    IndexField (PMID, PMDT, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0xA2), 
                        TCST,   8
                    }
                }

                Scope (\)
                {
                    IndexField (AIDA, ADTA, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x22), 
                            ,   4, 
                        SOUT,   1, 
                                Offset (0x52), 
                        BRST,   1, 
                            ,   1, 
                        BY1C,   2
                    }

                    IndexField (AIDC, ADTC, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x4F), 
                        BY1O,   1, 
                        BY2O,   1
                    }

                    IndexField (AIDD, ADTD, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x80), 
                        BY1I,   4
                    }
                }

                Method (AINI, 0, NotSerialized)
                {
                    And (SSM1, 0xCF, SSM1)
                    Store (Zero, TBSM)
                    Store (LWMD, PLWM)
                    Store (TALM, PTAL)
                    Store (0x95, CMD)
                    Or (PLWM, ShiftLeft (PTAL, 0x01), DVID)
                    Store (Zero, SSMI)
                    If (LAnd (TALM, LNot (ACPW)))
                    {
                        Store (One, FOCT)
                    }
                    Else
                    {
                        Store (Zero, FOCT)
                    }

                    If (LGreaterEqual (\_SB.OSTP (), 0x40))
                    {
                        If (AS34)
                        {
                            Store (0x01, S3EN)
                        }

                        If (LEqual (DCLW, 0x7F))
                        {
                            Store (0x08, DCOL)
                        }
                        Else
                        {
                            Store (DCLW, DCOL)
                        }
                    }
                }

                Device (TPM)
                {
                    Name (_HID, EisaId ("IFX0102"))
                    Name (_CID, 0x310CD041)
                    Name (_UID, 0x01)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x004E,             // Range Minimum
                            0x004E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0xFD00,             // Range Minimum
                            0xFD00,             // Range Maximum
                            0x01,               // Alignment
                            0x0C,               // Length
                            )
                        Memory32Fixed (ReadWrite,
                            0xFED40000,         // Address Base
                            0x00005000,         // Address Length
                            )
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (TPMF)
                        {
                            If (LEqual (TPMF, 0x02))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

                Name (RGSI, 0x19)
                Device (FJEX)
                {
                    Name (_HID, "FUJ02B1")
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Method (RBLL, 0, NotSerialized)
                    {
                        Return (BLLM)
                    }

                    Scope (\)
                    {
                        Name (LBLL, 0x00)
                        Name (LLCD, Ones)
                    }

                    Method (GBLL, 0, NotSerialized)
                    {
                        Store (LBLL, Local2)
                        Store (LCDB, Local1)
                        If (LNotEqual (LLCD, Local1))
                        {
                            Store (Local1, LLCD)
                            Name (BBCT, Buffer (BLLM) {})
                            Store (BLLT, BBCT)
                            Store (BLLM, Local0)
                            While (Local0)
                            {
                                Decrement (Local0)
                                If (LEqual (GBUF (BBCT, Local0), Local1))
                                {
                                    Store (Local0, Local2)
                                    Store (Local0, LBLL)
                                    Store (Zero, Local0)
                                }
                            }
                        }

                        If (BHKF)
                        {
                            Store (Zero, BHKF)
                            Or (Local2, 0x80000000, Local2)
                        }

                        Return (Local2)
                    }

                    Method (GBLS, 0, NotSerialized)
                    {
                        Store (LBLL, Local2)
                        Store (LCDB, Local1)
                        If (LNotEqual (LLCD, Local1))
                        {
                            Store (Local1, LLCD)
                            Name (BBCT, Buffer (BLLM) {})
                            Store (BLLT, BBCT)
                            Store (BLLM, Local0)
                            While (Local0)
                            {
                                Decrement (Local0)
                                If (LEqual (GBUF (BBCT, Local0), Local1))
                                {
                                    Store (Local0, Local2)
                                    Store (Local0, LBLL)
                                    Store (Zero, Local0)
                                }
                            }
                        }

                        If (BHKF)
                        {
                            Or (Local2, 0x80000000, Local2)
                        }

                        Return (Local2)
                    }

                    Method (SBLL, 1, NotSerialized)
                    {
                        If (NGTF)
                        {
                            Store (Arg0, LSBL)
                            Return (Zero)
                        }

                        If (LLess (Arg0, BLLM))
                        {
                            Name (BBCT, Buffer (BLLM) {})
                            Store (BLLT, BBCT)
                            CreateByteField (BBCT, Arg0, BLL0)
                            Store (BLL0, LCDB)
                            Store (Arg0, DVID)
                            Store (0x82, CMD)
                            Store (Zero, SSMI)
                        }
                    }

                    Method (GBUF, 2, NotSerialized)
                    {
                        CreateByteField (Arg0, Arg1, BLL0)
                        Return (BLL0)
                    }

                    Method (GMOU, 0, NotSerialized)
                    {
                        Store (0x02, DVID)
                        Store (0x91, CMD)
                        Store (Zero, SSMI)
                        Store (DVID, Local0)
                        If (MHKF)
                        {
                            Store (Zero, MHKF)
                            Or (Local0, 0x80000000, Local0)
                        }

                        Return (Local0)
                    }

                    Method (SMOU, 1, NotSerialized)
                    {
                        If (LLessEqual (Arg0, One))
                        {
                            Store (Arg0, DVID)
                            Store (0x91, CMD)
                            Store (Zero, SSMI)
                        }
                    }

                    Method (GHKS, 0, NotSerialized)
                    {
                        If (INTV)
                        {
                            ShiftLeft (VLBF, 0x04, Local0)
                            Store (Zero, VLBF)
                            Return (Or (Local0, AHKF))
                        }
                        Else
                        {
                            Return (AHKF)
                        }
                    }

                    Method (GSIF, 0, NotSerialized)
                    {
                        If (IMTF)
                        {
                            Or (RGSI, 0x08, RGSI)
                        }
                        Else
                        {
                            And (RGSI, 0xFFFFFFF7, RGSI)
                        }

                        If (INTV)
                        {
                            And (RGSI, 0xFFFFFFD1, RGSI)
                            Or (RGSI, 0x41, RGSI)
                        }

                        Return (RGSI)
                    }
                }

                Name (BTF1, 0x9A)
                Name (BTF2, 0x98)
                Scope (\)
                {
                    Name (BTBL, Zero)
                    Name (BTST, Zero)
                    IndexField (AIDA, ADTA, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x20), 
                            ,   5, 
                        ABEX,   1, 
                                Offset (0x44), 
                            ,   2, 
                        WLSW,   1
                    }

                    IndexField (AIDD, ADTD, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0x92), 
                            ,   2, 
                        WLRF,   1, 
                        ABON,   1
                    }
                }

                Device (CMBT)
                {
                    Name (_HID, "FUJ02E1")
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (\_SB.OSTP (), 0x40))
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            If (LNot (BTEX))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                If (BLEN)
                                {
                                    Return (0x0F)
                                }
                                Else
                                {
                                    Return (0x0D)
                                }
                            }
                        }
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        Store (Zero, BTBL)
                    }

                    Method (INFO, 0, NotSerialized)
                    {
                        If (LEqual (_STA (), 0x0F))
                        {
                            Store (BTF1, Local0)
                        }
                        Else
                        {
                            Store (BTF2, Local0)
                        }

                        Or (Local0, 0x08, Local0)
                        Return (Local0)
                    }

                    Method (STAT, 0, NotSerialized)
                    {
                        Store (0x00, Local0)
                        If (ABON)
                        {
                            Or (Local0, 0x02, Local0)
                        }

                        If (WLRF)
                        {
                            Or (Local0, 0x08, Local0)
                        }

                        If (ABON)
                        {
                            Or (Local0, 0x10, Local0)
                        }

                        If (BTBL)
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        Return (Local0)
                    }

                    Method (CNTL, 2, NotSerialized)
                    {
                        If (And (Arg0, 0x02))
                        {
                            If (LEqual (_STA (), 0x0F))
                            {
                                If (And (Arg1, 0x02))
                                {
                                    Store (One, ABON)
                                }
                                Else
                                {
                                    Store (Zero, ABON)
                                }
                            }
                        }

                        If (LAnd (And (Arg0, 0x08), WLEN))
                        {
                            ShiftRight (And (Arg1, 0x08), 0x03, WLRF)
                        }

                        If (And (Arg0, 0x80))
                        {
                            ShiftRight (And (Arg1, 0x80), 0x07, BTBL)
                            If (BTBL)
                            {
                                If (WLSW)
                                {
                                    Notify (CMBT, 0x81)
                                }
                                Else
                                {
                                    Notify (CMBT, 0x82)
                                }
                            }
                        }
                    }

                    Method (SWCF, 0, NotSerialized)
                    {
                        If (BTBL)
                        {
                            If (WLSW)
                            {
                                Notify (CMBT, 0x81)
                            }
                            Else
                            {
                                Notify (CMBT, 0x82)
                            }
                        }
                        Else
                        {
                            If (WLSW)
                            {
                                If (BLEN)
                                {
                                    Store (One, ABON)
                                    Store (One, ABLC)
                                    If (WLEN)
                                    {
                                        Store (One, WLRF)
                                    }
                                    Else
                                    {
                                        Store (Zero, WLRF)
                                    }
                                }
                                Else
                                {
                                    Store (Zero, ABON)
                                    If (WLEN)
                                    {
                                        Store (One, WLRF)
                                        Store (One, ABLC)
                                    }
                                    Else
                                    {
                                        Store (Zero, WLRF)
                                        Store (Zero, ABLC)
                                    }
                                }
                            }
                            Else
                            {
                                Store (Zero, ABON)
                                Store (Zero, WLRF)
                                Store (Zero, ABLC)
                            }
                        }
                    }

                    Method (BPTS, 1, NotSerialized)
                    {
                        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
                        {
                            Store (WLRF, BTST)
                            Or (ShiftLeft (WLSW, 0x01), BTST, BTST)
                            Or (ShiftLeft (ABON, 0x02), BTST, BTST)
                        }

                        Store (Zero, ABLC)
                        Store (Zero, ABON)
                    }

                    Method (BWAK, 1, NotSerialized)
                    {
                        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
                        {
                            Store (And (BTST, 0x01), WLRF)
                            ShiftRight (And (BTST, 0x04), 0x02, ABON)
                            If (LAnd (WLSW, LOr (WLRF, ABON)))
                            {
                                Store (One, ABLC)
                            }

                            If (LNotEqual (ShiftRight (And (BTST, 0x02), 0x01), 
                                WLSW))
                            {
                                SWCF ()
                            }
                        }
                    }
                }

                Device (EC)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0066,             // Range Minimum
                            0x0066,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                    })
                    Name (_GPE, 0x17)
                    Scope (\)
                    {
                        Name (ECOK, Zero)
                    }

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, ECOK)
                        }
                    }

                    OperationRegion (SMB, EmbeddedControl, 0x00, 0xFF)
                    Scope (\)
                    {
                        Field (\_SB.PCI0.LPCB.EC.SMB, ByteAcc, Lock, Preserve)
                        {
                                    Offset (0x04), 
                            ECCM,   8, 
                            ECD1,   8, 
                            ECD2,   8, 
                            ECD3,   8, 
                                    Offset (0xF8), 
                            ECGM,   8, 
                            ECG1,   8, 
                            ECG2,   8, 
                            ECG3,   8
                        }
                    }
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer16, )
                            {4}
                    })
                }

                Device (TIME)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

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

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

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

                Device (MATH)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x0F,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (KBC)
                {
                    Name (R101, 0x0303D041)
                    Name (R106, 0x2003D041)
                    Method (_HID, 0, NotSerialized)
                    {
                        If (SIDF)
                        {
                            Return (R101)
                        }
                        Else
                        {
                            Return (R106)
                        }
                    }

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

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

                Device (PS2M)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {12}
                    })
                }

                Device (FWH)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (FWHM)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0xFFB00000,         // Address Base
                            0x00100000,         // Address Length
                            )
                    })
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (_CID, 0x010CD041)
                    Name (BUF0, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            )
                    })
                    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
                    Field (RCRB, DWordAcc, Lock, Preserve)
                    {
                                Offset (0x3404), 
                        HPAS,   2, 
                            ,   5, 
                        HPAE,   1
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (\_SB.OSTP (), 0x08))
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPAE)
                            {
                                Return (0x0B)
                            }
                        }

                        Return (0x00)
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            CreateDWordField (BUF0, 0x04, HPT0)
                            If (LEqual (HPAS, 0x01))
                            {
                                Store (0xFED01000, HPT0)
                            }

                            If (LEqual (HPAS, 0x02))
                            {
                                Store (0xFED02000, HPT0)
                            }

                            If (LEqual (HPAS, 0x03))
                            {
                                Store (0xFED03000, HPT0)
                            }
                        }

                        Return (BUF0)
                    }
                }

                Scope (\_SB.PCI0.LPCB)
                {
                    OperationRegion (LIOD, PCI_Config, 0x80, 0x0A)
                    OperationRegion (MBAR, SystemMemory, 0xFED14000, 0x4000)
                    Field (MBAR, DWordAcc, Lock, Preserve)
                    {
                                Offset (0xF08), 
                            ,   4, 
                        C2SL,   1
                    }
                }

                Field (LIOD, AnyAcc, NoLock, Preserve)
                {
                    CADR,   3, 
                        ,   1, 
                    CBDR,   3, 
                            Offset (0x01), 
                    LPDR,   2, 
                        ,   2, 
                    FDDR,   1, 
                            Offset (0x02), 
                    CALE,   1, 
                    CBLE,   1, 
                    LPLE,   1, 
                    FDLE,   1, 
                            Offset (0x08), 
                    GD2E,   1, 
                        ,   3, 
                    GD2B,   12
                }

                Name (TCOM, Package (0x08)
                {
                    0x03F8, 
                    0x02F8, 
                    0x0220, 
                    0x0228, 
                    0x0238, 
                    0x02E8, 
                    0x0338, 
                    0x03E8
                })
                Name (TLPT, Package (0x03)
                {
                    0x0378, 
                    0x0278, 
                    0x03BC
                })
                Name (TFDD, Package (0x02)
                {
                    0x03F0, 
                    0x0370
                })
                Method (DENA, 3, Serialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (Match (TCOM, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                        If (LNotEqual (Local0, Ones))
                        {
                            Store (Local0, CADR)
                            Store (One, CALE)
                        }
                    }
                    Else
                    {
                        If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x02)))
                        {
                            Store (Match (TCOM, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                            If (LNotEqual (Local0, Ones))
                            {
                                Store (Local0, CBDR)
                                Store (One, CBLE)
                            }
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                Store (Match (TCOM, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                                If (LNotEqual (Local0, Ones))
                                {
                                    Store (Local0, CBDR)
                                    Store (One, CBLE)
                                    ShiftRight (Arg2, 0x04, GD2B)
                                    Store (One, GD2E)
                                }
                            }
                            Else
                            {
                                If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x05)))
                                {
                                    Store (Match (TLPT, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                                    If (LNotEqual (Local0, Ones))
                                    {
                                        Store (Local0, LPDR)
                                        Store (One, LPLE)
                                    }
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x07))
                                    {
                                        Store (Match (TFDD, MEQ, Arg1, MTR, 0x00, 0x00), Local0)
                                        If (LNotEqual (Local0, Ones))
                                        {
                                            Store (Local0, FDDR)
                                            Store (One, FDLE)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Method (DDIS, 1, Serialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (Zero, CALE)
                    }
                    Else
                    {
                        If (LOr (LEqual (Arg0, 0x01), LEqual (Arg0, 0x02)))
                        {
                            Store (Zero, CBLE)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                Store (Zero, CBLE)
                                Store (Zero, GD2E)
                            }
                            Else
                            {
                                If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x05)))
                                {
                                    Store (Zero, LPLE)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x07))
                                    {
                                        Store (Zero, FDLE)
                                    }
                                }
                            }
                        }
                    }
                }

                Field (SIO, ByteAcc, NoLock, Preserve)
                {
                    SIID,   8, 
                    SIDT,   8
                }

                IndexField (SIID, SIDT, ByteAcc, NoLock, Preserve)
                {
                        ,   3, 
                    FDCP,   1, 
                            Offset (0x01), 
                        ,   2, 
                    PPP,    1, 
                    PPM,    1, 
                            Offset (0x02), 
                        ,   3, 
                    U1P,    1, 
                        ,   3, 
                    U2P,    1, 
                            Offset (0x04), 
                    PPEM,   2, 
                            Offset (0x0A), 
                    EFTM,   8, 
                            Offset (0x0C), 
                    U2MD,   6, 
                            Offset (0x20), 
                    FDA,    8, 
                        ,   2, 
                    ETOS,   1, 
                            Offset (0x23), 
                    PPA,    8, 
                    U1A,    8, 
                    U2A,    8, 
                    PPD,    4, 
                    FDD,    4, 
                    PPI,    4, 
                    FDI,    4, 
                    U2I,    4, 
                    U1I,    4, 
                            Offset (0x2B), 
                    IRA,    8, 
                    IRD,    4
                }

                Mutex (MTXS, 0x00)
                Method (ENTR, 0, NotSerialized)
                {
                    Acquire (MTXS, 0xFFFF)
                    Store (0x55, SIID)
                }

                Method (EXIT, 0, NotSerialized)
                {
                    Store (0xAA, SIID)
                    Release (MTXS)
                }

                Method (SETR, 5, NotSerialized)
                {
                    ENTR ()
                    If (Arg3)
                    {
                        Subtract (FindSetRightBit (Arg3), One, Local0)
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }

                    If (Arg4)
                    {
                        Subtract (FindSetRightBit (Arg4), One, Local1)
                    }
                    Else
                    {
                        Store (0x0F, Local1)
                    }

                    If (LEqual (Arg0, 0x00))
                    {
                        ShiftRight (Arg1, 0x02, U1A)
                        Store (Local0, U1I)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            ShiftRight (Arg1, 0x02, U2A)
                            Store (Local0, U2I)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                ShiftRight (Arg1, 0x02, U2A)
                                Store (Local0, U2I)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    ShiftRight (Arg1, 0x02, U2A)
                                    ShiftRight (Arg2, 0x03, IRA)
                                    Store (Local0, U2I)
                                    Store (Local1, IRD)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        ShiftRight (Arg1, 0x02, PPA)
                                        Store (Local0, PPI)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x05))
                                        {
                                            ShiftRight (Arg1, 0x02, PPA)
                                            Store (Local0, PPI)
                                            Store (Local1, PPD)
                                        }
                                        Else
                                        {
                                            If (LEqual (Arg0, 0x07))
                                            {
                                                ShiftRight (Arg1, 0x02, FDA)
                                                Store (Local0, FDI)
                                                Store (Local1, FDD)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    EXIT ()
                    If (Arg1)
                    {
                        If (CondRefOf (DENA, Local0))
                        {
                            DENA (Arg0, Arg1, Arg2)
                        }

                        SETM (Arg0)
                    }
                    Else
                    {
                        If (CondRefOf (DDIS, Local0))
                        {
                            DDIS (Arg0)
                        }
                    }
                }

                Method (GETR, 5, NotSerialized)
                {
                    ENTR ()
                    Store (Zero, Local0)
                    Store (0x0F, Local1)
                    If (LEqual (Arg0, 0x00))
                    {
                        ShiftLeft (U1A, 0x02, Arg1)
                        Store (U1I, Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            ShiftLeft (U2A, 0x02, Arg1)
                            Store (U2I, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                ShiftLeft (U2A, 0x02, Arg1)
                                Store (U2I, Local0)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    ShiftLeft (U2A, 0x02, Arg1)
                                    ShiftLeft (IRA, 0x03, Arg2)
                                    Store (U2I, Local0)
                                    Store (IRD, Local1)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        ShiftLeft (PPA, 0x02, Arg1)
                                        Store (PPI, Local0)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x05))
                                        {
                                            ShiftLeft (PPA, 0x02, Arg1)
                                            Store (PPI, Local0)
                                            Store (PPD, Local1)
                                        }
                                        Else
                                        {
                                            If (LEqual (Arg0, 0x07))
                                            {
                                                ShiftLeft (FDA, 0x02, Arg1)
                                                Store (FDI, Local0)
                                                Store (FDD, Local1)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    If (Local0)
                    {
                        ShiftLeft (One, Local0, Arg3)
                    }
                    Else
                    {
                        Store (Zero, Arg3)
                    }

                    If (LNotEqual (Local1, 0x0F))
                    {
                        ShiftLeft (One, Local1, Arg4)
                    }
                    Else
                    {
                        Store (Zero, Arg4)
                    }

                    EXIT ()
                }

                Method (SETM, 1, NotSerialized)
                {
                    ENTR ()
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (One, U1P)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (0x06, U2MD)
                            Store (One, U2P)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                Store (0x0E, U2MD)
                                Store (One, U2P)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    Store (0x0E, U2MD)
                                    Store (One, U2P)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        If (LEqual (PPF, One))
                                        {
                                            Store (One, PPM)
                                        }
                                        Else
                                        {
                                            Store (Zero, PPM)
                                            Store (Zero, PPEM)
                                        }

                                        Store (One, PPP)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x05))
                                        {
                                            Store (Zero, PPM)
                                            Store (0x02, PPEM)
                                            Store (One, PPP)
                                        }
                                    }
                                }
                            }
                        }
                    }

                    EXIT ()
                }

                Method (SETP, 2, NotSerialized)
                {
                    ENTR ()
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (Arg1, U1P)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (Arg1, U2P)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                Store (Arg1, U2P)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    Store (Arg1, U2P)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        Store (Arg1, PPP)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x05))
                                        {
                                            Store (Arg1, PPP)
                                        }
                                    }
                                }
                            }
                        }
                    }

                    EXIT ()
                }

                Method (GETP, 1, NotSerialized)
                {
                    Store (Zero, Local0)
                    ENTR ()
                    If (LEqual (Arg0, 0x00))
                    {
                        Store (U1P, Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (U2P, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                Store (U2P, Local0)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    Store (U2P, Local0)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        Store (PPP, Local0)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x05))
                                        {
                                            Store (PPP, Local0)
                                        }
                                    }
                                }
                            }
                        }
                    }

                    EXIT ()
                    Return (Local0)
                }

                Method (CHKM, 1, NotSerialized)
                {
                    If (LEqual (Arg0, 0x00))
                    {
                        If (SPAF)
                        {
                            Return (One)
                        }
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            If (LEqual (SPBF, 0x03))
                            {
                                Return (One)
                            }
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                If (LEqual (SPBF, One))
                                {
                                    Return (One)
                                }
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    If (LEqual (SPBF, 0x02))
                                    {
                                        Return (One)
                                    }
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        If (LOr (LEqual (PPF, One), LEqual (PPF, 0x02)))
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x05))
                                        {
                                            If (LEqual (PPF, 0x03))
                                            {
                                                Return (One)
                                            }
                                        }
                                        Else
                                        {
                                            If (LEqual (Arg0, 0x07))
                                            {
                                                If (FDCF)
                                                {
                                                    Return (One)
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    Return (Zero)
                }

                Device (UAR1)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, 0x01)
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x03F8,             // Range Minimum
                            0x03F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {4}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        EndDependentFn ()
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x00))
                        {
                            GETR (0x00, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateWordField (RSRC, 0x09, IRQ1)
                        GETR (0x00, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        Store (Local2, IRQ1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x09, IRQ1)
                        SETR (0x00, IO11, Zero, IRQ1, Zero)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        SETR (0x00, Zero, Zero, Zero, Zero)
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (CHKM (0x00))
                        {
                            SETM (0x00)
                        }
                    }
                }

                Device (UAR2)
                {
                    Name (_HID, EisaId ("PNP0501"))
                    Name (_UID, 0x02)
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x02F8,             // Range Minimum
                            0x02F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        EndDependentFn ()
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x01))
                        {
                            GETR (0x01, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateWordField (RSRC, 0x09, IRQ1)
                        GETR (0x01, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        Store (Local2, IRQ1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x09, IRQ1)
                        SETR (0x01, IO11, Zero, IRQ1, Zero)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        SETR (0x01, Zero, Zero, Zero, Zero)
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (CHKM (0x01))
                        {
                            SETM (0x01)
                        }
                    }
                }

                Device (IRDA)
                {
                    Name (_HID, EisaId ("PNP0510"))
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x02F8,             // Range Minimum
                            0x02F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        EndDependentFn ()
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x02))
                        {
                            GETR (0x02, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateWordField (RSRC, 0x09, IRQ1)
                        GETR (0x02, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        Store (Local2, IRQ1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x09, IRQ1)
                        SETR (0x02, IO11, Zero, IRQ1, Zero)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        SETR (0x02, Zero, Zero, Zero, Zero)
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (CHKM (0x02))
                        {
                            SETM (0x02)
                        }
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        If (GETP (0x02))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        SETP (0x02, One)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        SETR (0x02, Zero, Zero, Zero, Zero)
                        SETP (0x02, Zero)
                    }
                }

                Device (FIR)
                {
                    Name (_HID, EisaId ("SMCF010"))
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x02F8,             // Range Minimum
                            0x02F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IO (Decode16,
                            0x06F8,             // Range Minimum
                            0x06F8,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {3}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03F8,             // Range Minimum
                                0x03F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x07F8,             // Range Minimum
                                0x07F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x02F8,             // Range Minimum
                                0x02F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x06F8,             // Range Minimum
                                0x06F8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03E8,             // Range Minimum
                                0x03E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x07E8,             // Range Minimum
                                0x07E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x02E8,             // Range Minimum
                                0x02E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x06E8,             // Range Minimum
                                0x06E8,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IRQNoFlags ()
                                {3}
                        }
                        EndDependentFn ()
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {1,3}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x03))
                        {
                            GETR (0x03, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateWordField (RSRC, 0x0A, IO21)
                        CreateWordField (RSRC, 0x0C, IO22)
                        CreateWordField (RSRC, 0x11, IRQ1)
                        CreateByteField (RSRC, 0x14, DMA1)
                        GETR (0x03, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        Store (Local1, IO21)
                        Store (Local1, IO22)
                        Store (Local2, IRQ1)
                        Store (Local3, DMA1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x0C, IO21)
                        CreateWordField (Arg0, 0x11, IRQ1)
                        CreateByteField (Arg0, 0x14, DMA1)
                        SETR (0x03, IO11, IO21, IRQ1, DMA1)
                    }

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

                    Method (_INI, 0, NotSerialized)
                    {
                        If (CHKM (0x03))
                        {
                            SETM (0x03)
                        }
                    }

                    Method (_PSC, 0, NotSerialized)
                    {
                        If (GETP (0x03))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x03)
                        }
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        SETP (0x03, One)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        SETR (0x03, Zero, Zero, Zero, Zero)
                        SETP (0x03, Zero)
                    }
                }

                Device (LPT)
                {
                    Name (_HID, EisaId ("PNP0400"))
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0378,             // Range Minimum
                            0x0378,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IO (Decode16,
                            0x0778,             // Range Minimum
                            0x0778,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {7}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0778,             // Range Minimum
                                0x0778,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0278,             // Range Minimum
                                0x0278,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0678,             // Range Minimum
                                0x0678,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03BC,             // Range Minimum
                                0x03BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IO (Decode16,
                                0x07BC,             // Range Minimum
                                0x07BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        }
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0778,             // Range Minimum
                                0x0778,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0278,             // Range Minimum
                                0x0278,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0678,             // Range Minimum
                                0x0678,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03BC,             // Range Minimum
                                0x03BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IO (Decode16,
                                0x07BC,             // Range Minimum
                                0x07BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {5}
                        }
                        EndDependentFn ()
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x04))
                        {
                            GETR (0x04, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateByteField (RSRC, 0x07, IO1L)
                        CreateWordField (RSRC, 0x0A, IO21)
                        CreateWordField (RSRC, 0x0C, IO22)
                        CreateWordField (RSRC, 0x11, IRQ1)
                        GETR (0x04, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        If (LEqual (Local0, 0x03BC))
                        {
                            Store (0x04, IO1L)
                        }
                        Else
                        {
                            Store (0x08, IO1L)
                        }

                        Add (Local0, 0x0400, IO21)
                        Store (IO21, IO22)
                        Store (Local2, IRQ1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x11, IRQ1)
                        SETR (0x04, IO11, Zero, IRQ1, Zero)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        SETR (0x04, Zero, Zero, Zero, Zero)
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (CHKM (0x04))
                        {
                            SETM (0x04)
                        }
                    }
                }

                Device (ECP)
                {
                    Name (_HID, EisaId ("PNP0401"))
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0378,             // Range Minimum
                            0x0378,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IO (Decode16,
                            0x0778,             // Range Minimum
                            0x0778,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {7}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0778,             // Range Minimum
                                0x0778,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0278,             // Range Minimum
                                0x0278,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0678,             // Range Minimum
                                0x0678,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03BC,             // Range Minimum
                                0x03BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IO (Decode16,
                                0x07BC,             // Range Minimum
                                0x07BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        }
                        StartDependentFn (0x00, 0x01)
                        {
                            IO (Decode16,
                                0x0378,             // Range Minimum
                                0x0378,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0778,             // Range Minimum
                                0x0778,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x0278,             // Range Minimum
                                0x0278,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0678,             // Range Minimum
                                0x0678,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {5}
                        }
                        StartDependentFnNoPri ()
                        {
                            IO (Decode16,
                                0x03BC,             // Range Minimum
                                0x03BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IO (Decode16,
                                0x07BC,             // Range Minimum
                                0x07BC,             // Range Maximum
                                0x01,               // Alignment
                                0x04,               // Length
                                )
                            IRQNoFlags ()
                                {5}
                        }
                        EndDependentFn ()
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {1,3}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x05))
                        {
                            GETR (0x05, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateByteField (RSRC, 0x07, IO1L)
                        CreateWordField (RSRC, 0x0A, IO21)
                        CreateWordField (RSRC, 0x0C, IO22)
                        CreateWordField (RSRC, 0x11, IRQ1)
                        CreateByteField (RSRC, 0x14, DMA1)
                        GETR (0x05, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        If (LEqual (Local0, 0x03BC))
                        {
                            Store (0x04, IO1L)
                        }
                        Else
                        {
                            Store (0x08, IO1L)
                        }

                        Add (Local0, 0x0400, IO21)
                        Store (IO21, IO22)
                        Store (Local2, IRQ1)
                        Store (Local3, DMA1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x11, IRQ1)
                        CreateByteField (Arg0, 0x14, DMA1)
                        SETR (0x05, IO11, Zero, IRQ1, DMA1)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        SETR (0x05, Zero, Zero, Zero, Zero)
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        If (CHKM (0x05))
                        {
                            SETM (0x05)
                        }
                    }
                }

                Device (FDC)
                {
                    Name (_HID, EisaId ("PNP0700"))
                    Name (RSRC, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x03F0,             // Range Minimum
                            0x03F0,             // Range Maximum
                            0x01,               // Alignment
                            0x06,               // Length
                            )
                        IO (Decode16,
                            0x03F7,             // Range Minimum
                            0x03F7,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {6}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {2}
                    })
                    Name (_PRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x03F0,             // Range Minimum
                            0x03F0,             // Range Maximum
                            0x01,               // Alignment
                            0x06,               // Length
                            )
                        IO (Decode16,
                            0x03F7,             // Range Minimum
                            0x03F7,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {6}
                        DMA (Compatibility, NotBusMaster, Transfer8, )
                            {2}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CHKM (0x07))
                        {
                            GETR (0x07, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                            If (Local0)
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x0D)
                            }
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (RSRC, 0x02, IO11)
                        CreateWordField (RSRC, 0x04, IO12)
                        CreateWordField (RSRC, 0x0A, IO21)
                        CreateWordField (RSRC, 0x0C, IO22)
                        CreateWordField (RSRC, 0x11, IRQ1)
                        CreateByteField (RSRC, 0x14, DMA1)
                        GETR (0x07, RefOf (Local0), RefOf (Local1), RefOf (Local2), RefOf (Local3))
                        Store (Local0, IO11)
                        Store (Local0, IO12)
                        Add (Local0, 0x07, IO21)
                        Store (IO21, IO22)
                        Store (Local2, IRQ1)
                        Store (Local3, DMA1)
                        Return (RSRC)
                    }

                    Method (_SRS, 1, NotSerialized)
                    {
                        CreateWordField (Arg0, 0x04, IO11)
                        CreateWordField (Arg0, 0x11, IRQ1)
                        CreateByteField (Arg0, 0x14, DMA1)
                        SETR (0x07, IO11, Zero, IRQ1, DMA1)
                    }

                    Method (_DIS, 0, NotSerialized)
                    {
                        SETR (0x07, Zero, Zero, Zero, Zero)
                    }

                    Method (_FDE, 0, NotSerialized)
                    {
                        If (FDS0)
                        {
                            Store (0x01, Index (FDEB, 0x00))
                        }

                        If (FDS1)
                        {
                            Store (0x01, Index (FDEB, 0x04))
                        }

                        Return (FDEB)
                    }

                    Name (FDEB, Buffer (0x14)
                    {
                        /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0010 */    0x00, 0x00, 0x00, 0x00
                    })
                    Device (DRV0)
                    {
                        Name (_ADR, 0x00)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (FDS0)
                            {
                                Store (0x0F, Local7)
                            }
                            Else
                            {
                                Store (0x00, Local7)
                            }

                            Return (Local7)
                        }

                        Method (_FDI, 0, NotSerialized)
                        {
                            If (LOr (FDS1, LNotEqual (FDS0, 0x04)))
                            {
                                MKFP (FDS0)
                            }

                            Return (FPPK)
                        }
                    }

                    Device (DRV1)
                    {
                        Name (_ADR, 0x01)
                        Method (_STA, 0, NotSerialized)
                        {
                            If (FDS1)
                            {
                                Store (0x0F, Local7)
                            }
                            Else
                            {
                                Store (0x00, Local7)
                            }

                            Return (Local7)
                        }

                        Method (_FDI, 0, NotSerialized)
                        {
                            MKFP (FDS1)
                            Return (FPPK)
                        }
                    }

                    Method (MKFP, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (FP5D, FPBF)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x02))
                            {
                                Store (FP5H, FPBF)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x03))
                                {
                                    Store (FP3D, FPBF)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x04))
                                    {
                                        Store (FP3H, FPBF)
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x06))
                                        {
                                            Store (FP3E, FPBF)
                                        }
                                    }
                                }
                            }
                        }

                        If (FDS1)
                        {
                            Store (0x02, Index (FPBF, 0x00))
                        }

                        Store (0x00, Local0)
                        While (LGreater (0x10, Local0))
                        {
                            Store (DerefOf (Index (FPBF, Local0)), Index (FPPK, Local0))
                            Increment (Local0)
                        }
                    }

                    Name (FPPK, Package (0x10)
                    {
                        0x01, 
                        0x04, 
                        0x4F, 
                        0x12, 
                        0x01, 
                        0xDF, 
                        0x02, 
                        0x25, 
                        0x02, 
                        0x12, 
                        0x1B, 
                        0xFF, 
                        0x6C, 
                        0xF6, 
                        0x0F, 
                        0x05
                    })
                    Name (FPBF, Buffer (0x10) {})
                    Name (FP5D, Buffer (0x10)
                    {
                        /* 0000 */    0x01, 0x01, 0x27, 0x09, 0x01, 0xDF, 0x02, 0x25, 
                        /* 0008 */    0x02, 0x09, 0x2A, 0xFF, 0x50, 0xF6, 0x0F, 0x06
                    })
                    Name (FP5H, Buffer (0x10)
                    {
                        /* 0000 */    0x01, 0x02, 0x4F, 0x0F, 0x01, 0xDF, 0x04, 0x25, 
                        /* 0008 */    0x02, 0x0F, 0x1B, 0xFF, 0x54, 0xF6, 0x0F, 0x06
                    })
                    Name (FP3D, Buffer (0x10)
                    {
                        /* 0000 */    0x01, 0x03, 0x4F, 0x09, 0x01, 0xEF, 0x02, 0x25, 
                        /* 0008 */    0x02, 0x09, 0x1B, 0xFF, 0x50, 0xF6, 0x0F, 0x05
                    })
                    Name (FP3H, Buffer (0x10)
                    {
                        /* 0000 */    0x01, 0x04, 0x4F, 0x12, 0x01, 0xDF, 0x02, 0x25, 
                        /* 0008 */    0x02, 0x12, 0x1B, 0xFF, 0x6C, 0xF6, 0x0F, 0x05
                    })
                    Name (FP3E, Buffer (0x10)
                    {
                        /* 0000 */    0x01, 0x06, 0x4F, 0x24, 0x01, 0xAA, 0x08, 0x25, 
                        /* 0008 */    0x02, 0x24, 0x1B, 0xFF, 0x54, 0xF6, 0x0F, 0x05
                    })
                }

                Scope (\_SB.PCI0.LPCB.UAR1)
                {
                    Name (_PRW, Package (0x02)
                    {
                        0x08, 
                        0x03
                    })
                    Method (_PSW, 1, NotSerialized)
                    {
                        If (Arg0)
                        {
                            Store (Zero, RI1M)
                        }
                        Else
                        {
                            Store (One, RI1M)
                        }
                    }
                }

                Device (LNKA)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x01)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PARC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,10,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLA, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLA, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PARC, 0x0F), IRQ0)
                        Return (RTLA)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PARC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PARC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKB)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x02)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PBRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,11,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLB, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLB, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PBRC, 0x0F), IRQ0)
                        Return (RTLB)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PBRC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PBRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKC)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x03)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PCRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,10,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLC, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLC, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PCRC, 0x0F), IRQ0)
                        Return (RTLC)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PCRC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PCRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKD)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x04)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PDRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,11,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLD, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLD, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PDRC, 0x0F), IRQ0)
                        Return (RTLD)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PDRC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PDRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKE)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x05)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PERC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,10,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLE, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLE, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PERC, 0x0F), IRQ0)
                        Return (RTLE)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PERC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PERC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKF)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x06)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PFRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,11,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLF, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLF, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PFRC, 0x0F), IRQ0)
                        Return (RTLF)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PFRC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PFRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKG)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x07)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PGRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {1,3,4,5,6,7,10,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLG, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLG, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PGRC, 0x0F), IRQ0)
                        Return (RTLG)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PGRC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PGRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Device (LNKH)
                {
                    Name (_HID, EisaId ("PNP0C0F"))
                    Name (_UID, 0x08)
                    Method (_DIS, 0, Serialized)
                    {
                        Store (0x80, PHRC)
                    }

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared, )
                            {3,4,5,6,7,11,12,14,15}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        Name (RTLH, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {}
                        })
                        CreateWordField (RTLH, 0x01, IRQ0)
                        Store (Zero, IRQ0)
                        ShiftLeft (0x01, And (PHRC, 0x0F), IRQ0)
                        Return (RTLH)
                    }

                    Method (_SRS, 1, Serialized)
                    {
                        CreateWordField (Arg0, 0x01, IRQ0)
                        FindSetRightBit (IRQ0, Local0)
                        Decrement (Local0)
                        Store (Local0, PHRC)
                    }

                    Method (_STA, 0, Serialized)
                    {
                        If (And (PHRC, 0x80))
                        {
                            Return (0x09)
                        }
                        Else
                        {
                            Return (0x0B)
                        }
                    }
                }

                Method (PRCF, 0, NotSerialized)
                {
                    If (B2TC)
                    {
                        Store (One, BY2O)
                    }
                    Else
                    {
                        Store (Zero, BY2O)
                    }
                }
            }

            Device (PATA)
            {
                Name (_ADR, 0x001F0001)
                Name (PMMN, Buffer (0x28) {})
                Name (PSMN, Buffer (0x28) {})
                OperationRegion (ATIO, SystemIO, 0x01F7, 0x01)
                Field (ATIO, ByteAcc, NoLock, Preserve)
                {
                    STSR,   8
                }

                OperationRegion (PCI, PCI_Config, 0x40, 0x18)
                Field (PCI, ByteAcc, NoLock, Preserve)
                {
                    PTI0,   1, 
                    PIE0,   1, 
                    PPP0,   1, 
                    PDT0,   1, 
                    PTI1,   1, 
                    PIE1,   1, 
                    PPP1,   1, 
                    PDT1,   1, 
                    PRCT,   2, 
                        ,   2, 
                    PISP,   2, 
                    PSIT,   1, 
                    PIDE,   1, 
                            Offset (0x04), 
                    PRC1,   2, 
                    PIS1,   2, 
                            Offset (0x08), 
                    PSD0,   1, 
                    PSD1,   1, 
                            Offset (0x0A), 
                    PCT0,   2, 
                        ,   2, 
                    PCT1,   2, 
                            Offset (0x14), 
                    PCB0,   1, 
                    PCB1,   1, 
                        ,   2, 
                    PMCC,   1, 
                    PSCC,   1, 
                        ,   6, 
                    FPC0,   1, 
                    FPC1,   1, 
                            Offset (0x16), 
                    PSMD,   2
                }

                Device (PRIM)
                {
                    Name (_ADR, 0x00)
                    Device (MAST)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (GTFB, Buffer (0x15)
                            {
                                /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x00, 0xA0, 0xF5
                            })
                            CreateByteField (GTFB, 0x01, SPIO)
                            CreateByteField (GTFB, 0x08, SDMA)
                            CreateByteField (GTFB, 0x14, SCMD)
                            If (LNot (SSUP ()))
                            {
                                Store (0x00, SCMD)
                            }

                            If (LNot (PIE0))
                            {
                                Store (0x01, SPIO)
                            }
                            Else
                            {
                                If (LOr (PDT0, LNot (PTI0)))
                                {
                                    Store (0x08, SPIO)
                                }
                                Else
                                {
                                    If (LLess (Add (PISP, PRCT), 0x03))
                                    {
                                        Store (0x0A, SPIO)
                                    }
                                    Else
                                    {
                                        If (LLess (Add (PISP, PRCT), 0x05))
                                        {
                                            Store (0x0B, SPIO)
                                        }
                                        Else
                                        {
                                            Store (0x0C, SPIO)
                                        }
                                    }
                                }
                            }

                            If (PSD0)
                            {
                                If (And (FPC0, PMCC))
                                {
                                    Store (0x45, SDMA)
                                }
                                Else
                                {
                                    If (And (PCB0, PMCC))
                                    {
                                        If (LEqual (PCT0, 0x02))
                                        {
                                            Store (0x44, SDMA)
                                        }
                                        Else
                                        {
                                            Store (0x43, SDMA)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (PCT0, 0x02))
                                        {
                                            Store (0x42, SDMA)
                                        }
                                        Else
                                        {
                                            If (LEqual (PCT0, 0x01))
                                            {
                                                Store (0x41, SDMA)
                                            }
                                            Else
                                            {
                                                Store (0x40, SDMA)
                                            }
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                If (LLess (Add (PISP, PRCT), 0x05))
                                {
                                    Store (0x21, SDMA)
                                }
                                Else
                                {
                                    Store (0x22, SDMA)
                                }
                            }

                            Return (GTFB)
                        }
                    }

                    Device (SLAV)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (GTFB, Buffer (0x15)
                            {
                                /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x00, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x00, 0xB0, 0xF5
                            })
                            CreateByteField (GTFB, 0x01, SPIO)
                            CreateByteField (GTFB, 0x08, SDMA)
                            CreateByteField (GTFB, 0x14, SCMD)
                            If (LNot (SSUP ()))
                            {
                                Store (0x00, SCMD)
                            }

                            If (LNot (PIE1))
                            {
                                Store (0x01, SPIO)
                            }
                            Else
                            {
                                If (LOr (PDT1, LNot (PTI1)))
                                {
                                    Store (0x08, SPIO)
                                }
                                Else
                                {
                                    If (PSIT)
                                    {
                                        If (LLess (Add (PIS1, PRC1), 0x03))
                                        {
                                            Store (0x0A, SPIO)
                                        }
                                        Else
                                        {
                                            If (LLess (Add (PIS1, PRC1), 0x05))
                                            {
                                                Store (0x0B, SPIO)
                                            }
                                            Else
                                            {
                                                Store (0x0C, SPIO)
                                            }
                                        }
                                    }
                                    Else
                                    {
                                        If (LLess (Add (PISP, PRCT), 0x03))
                                        {
                                            Store (0x0A, SPIO)
                                        }
                                        Else
                                        {
                                            If (LLess (Add (PISP, PRCT), 0x05))
                                            {
                                                Store (0x0B, SPIO)
                                            }
                                            Else
                                            {
                                                Store (0x0C, SPIO)
                                            }
                                        }
                                    }
                                }
                            }

                            If (PSD1)
                            {
                                If (And (FPC1, PSCC))
                                {
                                    Store (0x45, SDMA)
                                }
                                Else
                                {
                                    If (And (PCB1, PSCC))
                                    {
                                        If (LEqual (PCT1, 0x02))
                                        {
                                            Store (0x44, SDMA)
                                        }
                                        Else
                                        {
                                            Store (0x43, SDMA)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (PCT1, 0x02))
                                        {
                                            Store (0x42, SDMA)
                                        }
                                        Else
                                        {
                                            If (LEqual (PCT1, 0x01))
                                            {
                                                Store (0x41, SDMA)
                                            }
                                            Else
                                            {
                                                Store (0x40, SDMA)
                                            }
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                If (PSIT)
                                {
                                    If (LLess (Add (PIS1, PRC1), 0x05))
                                    {
                                        Store (0x21, SDMA)
                                    }
                                    Else
                                    {
                                        Store (0x22, SDMA)
                                    }
                                }
                                Else
                                {
                                    If (LLess (Add (PISP, PRCT), 0x05))
                                    {
                                        Store (0x21, SDMA)
                                    }
                                    Else
                                    {
                                        Store (0x22, SDMA)
                                    }
                                }
                            }

                            Return (GTFB)
                        }
                    }

                    Method (_GTM, 0, NotSerialized)
                    {
                        Name (GTMB, Buffer (0x14) {})
                        CreateDWordField (GTMB, 0x00, PIO0)
                        CreateDWordField (GTMB, 0x04, DMA0)
                        CreateDWordField (GTMB, 0x08, PIO1)
                        CreateDWordField (GTMB, 0x0C, DMA1)
                        CreateDWordField (GTMB, 0x10, FLAG)
                        Store (0x10, FLAG)
                        Or (FLAG, Or (ShiftLeft (PIE1, 0x03), ShiftLeft (PIE0, 0x01
                            )), FLAG)
                        If (LOr (PDT0, LNot (PTI0)))
                        {
                            Store (0x0384, PIO0)
                        }
                        Else
                        {
                            Multiply (Subtract (0x09, Add (PRCT, PISP)), 0x1E, PIO0)
                        }

                        If (LNot (PSD0))
                        {
                            Store (PIO0, DMA0)
                        }
                        Else
                        {
                            Or (FLAG, 0x01, FLAG)
                            If (And (FPC0, PMCC))
                            {
                                Store (0x14, DMA0)
                            }
                            Else
                            {
                                If (And (PCB0, PMCC))
                                {
                                    Multiply (Subtract (0x04, PCT0), 0x0F, DMA0)
                                }
                                Else
                                {
                                    Multiply (Subtract (0x04, PCT0), 0x1E, DMA0)
                                }
                            }
                        }

                        If (LOr (PDT1, LNot (PTI1)))
                        {
                            Store (0x0384, PIO1)
                        }
                        Else
                        {
                            If (LNot (PSIT))
                            {
                                Store (PIO0, PIO1)
                            }
                            Else
                            {
                                Multiply (Subtract (0x09, Add (PRC1, PIS1)), 0x1E, PIO1)
                            }
                        }

                        If (LNot (PSD1))
                        {
                            Store (PIO1, DMA1)
                        }
                        Else
                        {
                            Or (FLAG, 0x04, FLAG)
                            If (And (FPC1, PSCC))
                            {
                                Store (0x14, DMA1)
                            }
                            Else
                            {
                                If (And (PCB1, PSCC))
                                {
                                    Multiply (Subtract (0x04, PCT1), 0x0F, DMA1)
                                }
                                Else
                                {
                                    Multiply (Subtract (0x04, PCT1), 0x1E, DMA1)
                                }
                            }
                        }

                        Return (GTMB)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        CreateDWordField (Arg0, 0x00, PIO0)
                        CreateDWordField (Arg0, 0x04, DMA0)
                        CreateDWordField (Arg0, 0x08, PIO1)
                        CreateDWordField (Arg0, 0x0C, DMA1)
                        CreateDWordField (Arg0, 0x10, FLAG)
                        Store (0x00, PSIT)
                        If (LAnd (MSMF (), LEqual (SizeOf (Arg1), 0x0200)))
                        {
                            CreateField (Arg1, 0x01B0, 0x0140, MBUF)
                            Store (MBUF, PMMN)
                            CreateWordField (Arg1, 0x62, W490)
                            CreateWordField (Arg1, 0x66, W510)
                            CreateWordField (Arg1, 0x6A, W530)
                            CreateWordField (Arg1, 0x7C, W620)
                            CreateWordField (Arg1, 0x7E, W630)
                            CreateWordField (Arg1, 0x80, W640)
                            CreateWordField (Arg1, 0xB0, W880)
                            Store (0x00, PISP)
                            Store (0x00, PRCT)
                            Store (0x00, PDT0)
                            Store (0x00, PIE0)
                            Store (0x00, PTI0)
                            Store (0x00, PSD0)
                            Store (0x00, PCT0)
                            Store (0x00, PCB0)
                            Store (0x00, PMCC)
                            Store (0x00, FPC0)
                            If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                            {
                                Store (0x01, PIE0)
                            }

                            If (LAnd (LLessEqual (PIO0, 0x78), LAnd (And (W530, 0x02
                                ), And (W640, 0x02))))
                            {
                                Store (0x02, PISP)
                                Store (0x03, PRCT)
                                Store (0x01, PTI0)
                            }
                            Else
                            {
                                If (LAnd (LLessEqual (PIO0, 0xB4), LAnd (And (W530, 0x02
                                    ), And (W640, 0x01))))
                                {
                                    Store (0x02, PISP)
                                    Store (0x01, PRCT)
                                    Store (0x01, PTI0)
                                }
                                Else
                                {
                                    If (LAnd (LLessEqual (PIO0, 0xF0), LGreaterEqual (W510, 0x0200)))
                                    {
                                        Store (0x01, PISP)
                                        Store (0x01, PTI0)
                                    }
                                    Else
                                    {
                                        Noop
                                    }
                                }
                            }

                            If (LNotEqual (DMA0, 0xFFFFFFFF))
                            {
                                If (LAnd (And (FLAG, 0x01), LAnd (And (W530, 0x04
                                    ), And (W880, 0x3F))))
                                {
                                    Store (0x01, PSD0)
                                    If (LAnd (LLessEqual (DMA0, 0x14), And (W880, 0x20)))
                                    {
                                        Store (0x01, PCT0)
                                        Store (0x01, PMCC)
                                        Store (0x01, FPC0)
                                    }
                                    Else
                                    {
                                        If (LAnd (LLessEqual (DMA0, 0x1E), And (W880, 0x10)))
                                        {
                                            Store (0x02, PCT0)
                                            Store (0x01, PMCC)
                                            Store (0x01, PCB0)
                                        }
                                        Else
                                        {
                                            If (LAnd (LLessEqual (DMA0, 0x2D), And (W880, 0x08)))
                                            {
                                                Store (0x01, PCT0)
                                                Store (0x01, PMCC)
                                                Store (0x01, PCB0)
                                            }
                                            Else
                                            {
                                                If (LAnd (LLessEqual (DMA0, 0x3C), And (W880, 0x04)))
                                                {
                                                    Store (0x02, PCT0)
                                                }
                                                Else
                                                {
                                                    If (LAnd (LLessEqual (DMA0, 0x5A), And (W880, 0x02)))
                                                    {
                                                        Store (0x01, PCT0)
                                                    }
                                                    Else
                                                    {
                                                        Noop
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    If (LAnd (LLessEqual (DMA0, 0x78), And (W630, 0x04)))
                                    {
                                        Store (0x02, PISP)
                                        Store (0x03, PRCT)
                                        Store (0x01, PTI0)
                                    }
                                    Else
                                    {
                                        If (LAnd (LLessEqual (DMA0, 0xB4), And (W630, 0x02)))
                                        {
                                            Store (0x02, PISP)
                                            Store (0x01, PRCT)
                                            Store (0x01, PTI0)
                                        }
                                        Else
                                        {
                                            Noop
                                        }
                                    }
                                }
                            }
                        }

                        If (LAnd (SSMF (), LEqual (SizeOf (Arg2), 0x0200)))
                        {
                            CreateField (Arg2, 0x01B0, 0x0140, SBUF)
                            Store (SBUF, PSMN)
                            CreateWordField (Arg2, 0x62, W491)
                            CreateWordField (Arg2, 0x66, W511)
                            CreateWordField (Arg2, 0x6A, W531)
                            CreateWordField (Arg2, 0x7C, W621)
                            CreateWordField (Arg2, 0x7E, W631)
                            CreateWordField (Arg2, 0x80, W641)
                            CreateWordField (Arg2, 0xB0, W881)
                            Store (0x00, PIS1)
                            Store (0x00, PRC1)
                            Store (0x00, PDT1)
                            Store (0x00, PIE1)
                            Store (0x00, PTI1)
                            Store (0x00, PSD1)
                            Store (0x00, PCT1)
                            Store (0x00, PCB1)
                            Store (0x00, PSCC)
                            Store (0x00, FPC1)
                            If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                            {
                                Store (0x01, PIE1)
                            }

                            If (LAnd (And (FLAG, 0x10), LAnd (LNotEqual (PIO1, 
                                0xFFFFFFFF), LNotEqual (PIO1, PIO0))))
                            {
                                Store (0x01, PSIT)
                                If (LAnd (LLessEqual (PIO1, 0x78), LAnd (And (W531, 0x02
                                    ), And (W641, 0x02))))
                                {
                                    Store (0x02, PIS1)
                                    Store (0x03, PRC1)
                                    Store (0x01, PTI1)
                                }
                                Else
                                {
                                    If (LAnd (LLessEqual (PIO1, 0xB4), LAnd (And (W531, 0x02
                                        ), And (W641, 0x01))))
                                    {
                                        Store (0x02, PIS1)
                                        Store (0x01, PRC1)
                                        Store (0x01, PTI1)
                                    }
                                    Else
                                    {
                                        If (LAnd (LLessEqual (PIO1, 0xF0), LGreaterEqual (W511, 0x0200)))
                                        {
                                            Store (0x01, PIS1)
                                            Store (0x01, PTI1)
                                        }
                                        Else
                                        {
                                            Noop
                                        }
                                    }
                                }
                            }

                            If (LNotEqual (DMA1, 0xFFFFFFFF))
                            {
                                If (LAnd (And (FLAG, 0x04), LAnd (And (W531, 0x04
                                    ), And (W881, 0x3F))))
                                {
                                    Store (0x01, PSD1)
                                    If (LAnd (LLessEqual (DMA1, 0x14), And (W881, 0x20)))
                                    {
                                        Store (0x01, PCT1)
                                        Store (0x01, PSCC)
                                        Store (0x01, FPC1)
                                    }
                                    Else
                                    {
                                        If (LAnd (LLessEqual (DMA1, 0x1E), And (W881, 0x10)))
                                        {
                                            Store (0x02, PCT1)
                                            Store (0x01, PSCC)
                                            Store (0x01, PCB1)
                                        }
                                        Else
                                        {
                                            If (LAnd (LLessEqual (DMA1, 0x2D), And (W881, 0x08)))
                                            {
                                                Store (0x01, PCT1)
                                                Store (0x01, PSCC)
                                                Store (0x01, PCB1)
                                            }
                                            Else
                                            {
                                                If (LAnd (LLessEqual (DMA1, 0x3C), And (W881, 0x04)))
                                                {
                                                    Store (0x02, PCT1)
                                                }
                                                Else
                                                {
                                                    If (LAnd (LLessEqual (DMA1, 0x5A), And (W881, 0x02)))
                                                    {
                                                        Store (0x01, PCT1)
                                                    }
                                                    Else
                                                    {
                                                        Noop
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                Else
                                {
                                    If (LAnd (And (FLAG, 0x10), LNotEqual (DMA1, DMA0)))
                                    {
                                        Store (0x01, PSIT)
                                        If (LAnd (LLessEqual (DMA1, 0x78), And (W631, 0x04)))
                                        {
                                            Store (0x02, PIS1)
                                            Store (0x03, PRC1)
                                            Store (0x01, PTI1)
                                        }
                                        Else
                                        {
                                            If (LAnd (LLessEqual (DMA1, 0xB4), And (W631, 0x02)))
                                            {
                                                Store (0x02, PIS1)
                                                Store (0x01, PRC1)
                                                Store (0x01, PTI1)
                                            }
                                            Else
                                            {
                                                Noop
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        Store (0x01, PIDE)
                    }
                }

                Scope (\_SB.PCI0.PATA.PRIM)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CPBL)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Method (MSMF, 0, NotSerialized)
                    {
                        Return (\_SB.PCI0.PATA.PRIM.MAST._STA ())
                    }

                    Method (SSMF, 0, NotSerialized)
                    {
                        Return (0x00)
                    }
                }

                Scope (\_SB.PCI0.PATA.PRIM.MAST)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        If (CPBL)
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            If (LAnd (\_SB.PCI0.PATA.PRIM.MAST.BIDE (), LAnd (BRST, BY1O)))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                    }

                    Method (SSUP, 0, NotSerialized)
                    {
                        Return (LEqual (BY1I, 0x0A))
                    }

                    Method (BIDE, 0, NotSerialized)
                    {
                        Store (BY1I, Local0)
                        Store (LEqual (Local0, 0x08), Local1)
                        Or (LEqual (Local0, 0x0A), Local1, Local1)
                        Or (LEqual (Local0, 0x0B), Local1, Local1)
                        Or (LEqual (Local0, 0x0D), Local1, Local1)
                        Return (Local1)
                    }

                    Method (_EJ0, 1, NotSerialized)
                    {
                        BOFF ()
                        Return (Zero)
                    }

                    Method (BON, 0, NotSerialized)
                    {
                        Store (Zero, BRST)
                        Store (Zero, PIE0)
                        Store (0x02, PSMD)
                        If (LEqual (BY1C, Zero))
                        {
                            Sleep (0x64)
                            Store (BY1I, Local0)
                            If (LNotEqual (Local0, 0x01))
                            {
                                Store (One, BY1O)
                                If (LEqual (BY1I, 0x0A))
                                {
                                    Sleep (0x32)
                                }

                                Sleep (0x46)
                                Store (Zero, PSMD)
                                Store (0x01, PIDE)
                                Store (0x01, PSD0)
                                Store (0x01, PMCC)
                                Store (0x01, FPC0)
                                And (BOPT, 0xFE, BOPT)
                                And (BHDD, 0xFE, BHDD)
                                If (LEqual (Local0, 0x08))
                                {
                                    Or (BOPT, One, BOPT)
                                }

                                If (LEqual (Local0, 0x0A))
                                {
                                    Or (BHDD, One, BHDD)
                                }

                                If (LEqual (Local0, 0x0B))
                                {
                                    Or (BOPT, One, BOPT)
                                }

                                If (LEqual (Local0, 0x0D))
                                {
                                    Or (BOPT, One, BOPT)
                                }

                                Sleep (0x1E)
                                Store (One, BRST)
                                Sleep (0x64)
                                Store (Zero, Local1)
                                While (LAnd (LAnd (And (STSR, 0x80), B1TC), LLess (Local1, 
                                    0x015E)))
                                {
                                    Sleep (0x64)
                                    Add (Local1, 0x01, Local1)
                                }
                            }
                        }
                    }

                    Method (BOFF, 0, NotSerialized)
                    {
                        Store (Zero, BRST)
                        And (BOPT, 0xFE, BOPT)
                        And (BHDD, 0xFE, BHDD)
                        Sleep (0x1E)
                        TMCL ()
                        Store (0x02, PSMD)
                        Sleep (0x46)
                        Store (Zero, BY1O)
                        Sleep (0x64)
                    }

                    Method (TMCL, 0, NotSerialized)
                    {
                        Store (0x00, PIDE)
                        Store (0x00, PISP)
                        Store (0x00, PRCT)
                        Store (0x00, PDT0)
                        Store (0x00, PIE0)
                        Store (0x00, PTI0)
                        Store (0x00, PSD0)
                        Store (0x00, PCT0)
                        Store (0x00, PCB0)
                        Store (0x00, PMCC)
                        Store (0x00, FPC0)
                        Store (0x01, PIDE)
                    }
                }

                Scope (\_SB.PCI0.PATA.PRIM.SLAV)
                {
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x00)
                    }

                    Method (SSUP, 0, NotSerialized)
                    {
                        Return (0x00)
                    }
                }
            }

            Device (SATA)
            {
                Name (_ADR, 0x001F0002)
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0000)
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0001)
            }

            Device (USB3)
            {
                Name (_ADR, 0x001D0002)
                Device (HUB3)
                {
                    Name (_ADR, 0x00)
                    Device (PRT1)
                    {
                        Name (_EJD, "\\_SB.PCI0.RP02.PXS2")
                        Name (_ADR, 0x01)
                    }
                }
            }

            Device (USB4)
            {
                Name (_ADR, 0x001D0003)
            }

            Device (USB7)
            {
                Name (_ADR, 0x001D0007)
                Device (HUB7)
                {
                    Name (_ADR, 0x00)
                    Device (PRT5)
                    {
                        Name (_ADR, 0x05)
                        Name (_EJD, "\\_SB.PCI0.RP02.PXS2")
                    }
                }
            }

            Device (SBUS)
            {
                Name (_ADR, 0x001F0003)
            }

            Device (AUD0)
            {
                Name (_ADR, 0x001E0002)
            }

            Device (MODM)
            {
                Name (_ADR, 0x001E0003)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
            }

            Device (HDEF)
            {
                Name (_ADR, 0x001B0000)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
                Name (_PSC, 0x00)
                Method (_PS0, 0, NotSerialized)
                {
                    Store (0x00, _PSC)
                    If (LAnd (HDWA, LGreaterEqual (\_SB.OSTP (), 0x40)))
                    {
                        Store (Zero, HDWA)
                        Sleep (0x01F4)
                    }
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (0x03, _PSC)
                }
            }

            Device (RP01)
            {
                Name (_ADR, 0x001C0000)
                OperationRegion (P1CS, PCI_Config, 0x40, 0x0100)
                Field (P1CS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x1A), 
                    ABP1,   1, 
                        ,   2, 
                    PDC1,   1, 
                        ,   2, 
                    PDS1,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSP1,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

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

                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.LPCB.LNKA, 
                                0x00
                            }, 

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

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

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

            Device (RP02)
            {
                Name (_ADR, 0x001C0001)
                OperationRegion (P2CS, PCI_Config, 0x40, 0x0100)
                Field (P2CS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x1A), 
                    ABP2,   1, 
                        ,   2, 
                    PDC2,   1, 
                        ,   2, 
                    PDS2,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSP2,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

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

                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.LPCB.LNKB, 
                                0x00
                            }, 

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

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

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

            Device (RP03)
            {
                Name (_ADR, 0x001C0002)
                OperationRegion (P3CS, PCI_Config, 0x40, 0x0100)
                Field (P3CS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x1A), 
                    ABP3,   1, 
                        ,   2, 
                    PDC3,   1, 
                        ,   2, 
                    PDS3,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSP3,   1, 
                            Offset (0x9C), 
                        ,   30, 
                    HPCS,   1, 
                    PMCS,   1
                }

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

                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.LPCB.LNKC, 
                                0x00
                            }, 

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

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

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

            Scope (\_SB.PCI0.RP01.PXS1)
            {
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
            }

            Scope (\_SB.PCI0.RP02.PXS2)
            {
                Name (_EJD, "\\_SB.PCI0.USB7.HUB7.PRT5")
                Method (_STA, 0, NotSerialized)
                {
                    If (PXRS)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }

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

                Method (EXIN, 0, NotSerialized)
                {
                    Sleep (0x64)
                    Store (Zero, PXCL)
                    Sleep (0x01)
                    Store (One, PXRS)
                    Store (Zero, EXPL)
                }

                Method (EXRM, 0, NotSerialized)
                {
                    Store (Zero, PXRS)
                    Store (One, PXCL)
                    Store (One, EXPL)
                }
            }
        }

        Scope (\)
        {
            Name (WBTN, Zero)
            Name (NGTM, Zero)
            Name (LSBL, Zero)
            Name (BNBF, Buffer (0x20) {})
            Name (BNSP, Zero)
            Name (BNGP, Zero)
            Name (BNCT, Zero)
        }

        Device (FEXT)
        {
            Name (_HID, "FUJ02E3")
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            Method (_INI, 0, NotSerialized)
            {
                Store (Zero, BNSP)
                Store (Zero, BNGP)
                Store (Zero, BNCT)
                Store (Zero, IRBC)
                Store (Zero, IRBF)
            }

            Method (FUNC, 4, Serialized)
            {
                Store (0x80000000, Local0)
                If (LEqual (Arg0, 0x1001))
                {
                    Store (S001 (Arg1, Arg2, Arg3), Local0)
                }
                Else
                {
                    If (LEqual (Arg0, 0x1002))
                    {
                        Store (S002 (Arg1, Arg2, Arg3), Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x1004))
                        {
                            Store (S004 (Arg1, Arg2, Arg3), Local0)
                        }
                    }
                }

                If (LEqual (Arg0, 0x1005))
                {
                    Store (S005 (Arg1, Arg2, Arg3), Local0)
                }

                If (LEqual (Arg0, 0x1006))
                {
                    Store (S006 (Arg1, Arg2, Arg3), Local0)
                }

                If (LEqual (Arg0, 0x1008))
                {
                    Store (S008 (Arg1, Arg2, Arg3), Local0)
                }

                Return (Local0)
            }

            Method (S001, 3, NotSerialized)
            {
                Store (0x80000000, Local0)
                If (LEqual (Arg0, Zero))
                {
                    Store (LEDI, Local0)
                }
                Else
                {
                    If (LEqual (Arg0, One))
                    {
                        And (Arg2, 0x03, Local1)
                        If (LAnd (And (Arg1, LEDI), Local1))
                        {
                            Store (0x9B, CMD)
                            ShiftRight (And (Arg2, 0x00030000), 0x08, DVID)
                            Store (Zero, SSMI)
                        }

                        Store (Zero, Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            If (And (Arg1, LEDI))
                            {
                                Store (0x9B, CMD)
                                Store (One, DVID)
                                Store (Zero, SSMI)
                                Or (ShiftLeft (DVID, 0x10), One, Local0)
                            }
                            Else
                            {
                                Store (Zero, Local0)
                            }
                        }
                    }
                }

                Return (Local0)
            }

            Method (S002, 3, NotSerialized)
            {
                Store (0x80000000, Local0)
                If (LEqual (Arg0, Zero))
                {
                    Store (BTNI, Local0)
                }
                Else
                {
                    If (LEqual (Arg0, One))
                    {
                        Store (GIRB (), Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            Store (0x9B, CMD)
                            Store (0x02, DVID)
                            Store (Zero, SSMI)
                            Store (DVID, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                If (Arg1)
                                {
                                    Not (Arg1, Local1)
                                    And (Arg2, Arg1, Local2)
                                    Or (And (WBTN, Local1), Local2, WBTN)
                                    Store (0x9B, CMD)
                                    Or (ShiftLeft (WBTN, 0x08), 0x03, DVID)
                                    Store (Zero, SSMI)
                                }

                                Store (WBTN, Local0)
                            }
                        }
                    }
                }

                Return (Local0)
            }

            Method (SIRB, 1, NotSerialized)
            {
                If (LLess (BNCT, 0x10))
                {
                    CreateWordField (BNBF, BNSP, BNP1)
                    Store (Arg0, BNP1)
                    Increment (BNCT)
                    Add (BNSP, 0x02, BNSP)
                    If (LGreaterEqual (BNSP, 0x20))
                    {
                        Store (Zero, BNSP)
                    }
                }
            }

            Method (GIRB, 0, NotSerialized)
            {
                If (BNCT)
                {
                    CreateWordField (BNBF, BNGP, BNP2)
                    Store (BNP2, Local0)
                    Or (Local0, 0x40000000, Local0)
                    Decrement (BNCT)
                    Add (BNGP, 0x02, BNGP)
                    If (LGreaterEqual (BNGP, 0x20))
                    {
                        Store (Zero, BNGP)
                    }
                }
                Else
                {
                    Store (Zero, Local0)
                }

                Return (Local0)
            }

            Method (S004, 3, NotSerialized)
            {
                Store (0x80000000, Local0)
                If (LEqual (Arg0, Zero))
                {
                    Store (NGTI, Local0)
                }
                Else
                {
                    If (LEqual (Arg0, One))
                    {
                        If (LAnd (LEqual (Arg1, 0x04), And (NGTI, 0x04)))
                        {
                            And (Arg2, 0x03, Local1)
                            If (LOr (LEqual (Local1, 0x03), LEqual (Local1, 0x02)))
                            {
                                If (LNot (NGTF))
                                {
                                    SVBL ()
                                    Store (One, NGTF)
                                }

                                SBLC (Local1)
                                Store (Local1, NGTM)
                                Store (Zero, Local0)
                            }

                            If (LNot (Local1))
                            {
                                If (NGTF)
                                {
                                    Store (Zero, NGTF)
                                    RSBL ()
                                    SBLC (Zero)
                                }

                                Store (Zero, NGTM)
                                Store (Zero, Local0)
                            }
                        }
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            If (LAnd (LEqual (Arg1, 0x04), And (NGTI, 0x04)))
                            {
                                Store (NGTM, Local0)
                            }
                        }
                    }
                }

                Return (Local0)
            }

            Method (S008, 3, NotSerialized)
            {
                Store (0x80000000, Local0)
                If (LEqual (Arg0, 0x00))
                {
                    If (LAnd (LGreaterEqual (Arg1, 0x00), LLessEqual (Arg1, 0x05)))
                    {
                        If (LEqual (Arg1, Zero))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg1, One))
                            {
                                If (LGreaterEqual (\_SB.OSTP (), 0x40))
                                {
                                    Store (0x02, Local0)
                                }
                                Else
                                {
                                    Store (Zero, Local0)
                                }
                            }
                            Else
                            {
                                Store (0xA4, CMD)
                                Store (Arg0, QAG1)
                                Store (Arg1, QAG2)
                                Store (Arg2, QAG3)
                                Store (Zero, DVID)
                                Store (Zero, SSMI)
                                Store (DVID, Local0)
                            }
                        }
                    }
                }
                Else
                {
                    If (LEqual (Arg0, 0x01))
                    {
                        If (LAnd (LGreaterEqual (Arg1, 0x00), LLessEqual (Arg1, 0x01)))
                        {
                            Store (0xA4, CMD)
                            Store (Arg0, QAG1)
                            Store (Arg1, QAG2)
                            Store (Arg2, QAG3)
                            Store (Zero, DVID)
                            Store (Zero, SSMI)
                            Store (DVID, Local0)
                        }
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            If (LAnd (LGreaterEqual (Arg1, 0x00), LLessEqual (Arg1, 0x01)))
                            {
                                Store (0xA4, CMD)
                                Store (Arg0, QAG1)
                                Store (Arg1, QAG2)
                                Store (Arg2, QAG3)
                                Store (Zero, DVID)
                                Store (Zero, SSMI)
                                Store (DVID, Local0)
                            }
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x03))
                            {
                                If (LEqual (Arg1, 0x00))
                                {
                                    Store (0xA4, CMD)
                                    Store (Arg0, QAG1)
                                    Store (Arg1, QAG2)
                                    Store (Arg2, QAG3)
                                    Store (Zero, DVID)
                                    Store (Zero, SSMI)
                                    Store (DVID, Local0)
                                }
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x04))
                                {
                                    If (LAnd (LGreaterEqual (Arg1, 0x00), LLessEqual (Arg1, 0x01)))
                                    {
                                        Store (0xA4, CMD)
                                        Store (Arg0, QAG1)
                                        Store (Arg1, QAG2)
                                        Store (Arg2, QAG3)
                                        Store (Zero, DVID)
                                        Store (Zero, SSMI)
                                        Store (DVID, Local0)
                                    }
                                }
                            }
                        }
                    }
                }

                Return (Local0)
            }
        }

        Scope (\_SB.FEXT)
        {
            Method (SBLC, 1, NotSerialized)
            {
                If (LNot (Arg0))
                {
                    Store (Zero, BLCT)
                }
                Else
                {
                    If (LEqual (Arg0, 0x03))
                    {
                        Store (One, BLCT)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x02))
                        {
                            Name (BBCT, Buffer (BLLM) {})
                            Store (BLLT, BBCT)
                            CreateByteField (BBCT, Zero, BLL0)
                            Store (BLL0, LCDB)
                            Store (0x01000000, DVID)
                            Or (DVID, BLL0, DVID)
                            Store (0x82, CMD)
                            Store (Zero, SSMI)
                            Store (Zero, BLCT)
                        }
                    }
                }
            }

            Method (SVBL, 0, NotSerialized)
            {
                And (\_SB.PCI0.LPCB.FJEX.GBLL (), 0x7FFFFFFF, LSBL)
            }

            Method (RSBL, 0, NotSerialized)
            {
                \_SB.PCI0.LPCB.FJEX.SBLL (LSBL)
            }

            Method (S005, 3, NotSerialized)
            {
                Store (0x80000000, Local0)
                If (LEqual (Arg0, Zero))
                {
                    If (CPBL)
                    {
                        Store (And (DPCI, Not (One)), Local0)
                    }
                    Else
                    {
                        Store (DPCI, Local0)
                    }
                }
                Else
                {
                    If (LEqual (Arg0, One))
                    {
                        If (And (Arg1, One))
                        {
                            If (And (Arg2, One))
                            {
                                If (\_SB.PCI0.PATA.PRIM.MAST.BIDE ())
                                {
                                    \_SB.PCI0.PATA.PRIM.MAST.BOFF ()
                                }

                                Or (DPCS, One, DPCS)
                            }
                            Else
                            {
                                If (\_SB.PCI0.PATA.PRIM.MAST.BIDE ())
                                {
                                    \_SB.PCI0.PATA.PRIM.MAST.BON ()
                                }

                                And (DPCS, 0xFFFFFFFE, DPCS)
                            }

                            Notify (\_SB.PCI0.PATA.PRIM.MAST, One)
                        }

                        And (DPCS, DPCI, Local0)
                    }
                }

                Return (Local0)
            }

            Method (S006, 3, NotSerialized)
            {
                Store (0x80000000, Local0)
                If (ECOK)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Store (ECCI, Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x10))
                        {
                            If (Arg1)
                            {
                                And (Arg1, 0xFF, ECG1)
                                Store (0x23, ECGM)
                                Store (Zero, Local1)
                                While (LAnd (ECGM, LLess (Local1, 0x64)))
                                {
                                    Sleep (0x01)
                                    Increment (Local1)
                                }

                                If (LGreaterEqual (Local1, 0x64))
                                {
                                    Store (0x80000001, Local0)
                                }
                                Else
                                {
                                    Or (ShiftLeft (ECG2, 0x08), ECG3, Local0)
                                }
                            }
                            Else
                            {
                                Store (0xFD70, Local0)
                            }
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x11))
                            {
                                And (Arg1, 0xFF, ECG1)
                                ShiftRight (And (Arg2, 0xFF00), 0x08, ECG2)
                                And (Arg2, 0xFF, ECG3)
                                Store (0x22, ECGM)
                                Store (Zero, Local1)
                                While (LAnd (ECGM, LLess (Local1, 0x64)))
                                {
                                    Sleep (0x01)
                                    Increment (Local1)
                                }

                                If (LGreaterEqual (Local1, 0x64))
                                {
                                    Store (0x80000001, Local0)
                                }
                                Else
                                {
                                    Store (Zero, Local0)
                                }
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x12))
                                {
                                    Store (GINT, Local0)
                                    Store (Zero, GINT)
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x20))
                                    {
                                        ShiftRight (And (Arg1, 0xFF000000), 0x18, ECD3)
                                        ShiftRight (And (Arg1, 0x00FF0000), 0x10, ECD2)
                                        ShiftRight (And (Arg1, 0xFF00), 0x08, ECD1)
                                        And (Arg1, 0xFF, ECCM)
                                        Store (Zero, Local1)
                                        While (LAnd (ECCM, LLess (Local1, 0x64)))
                                        {
                                            Sleep (0x01)
                                            Increment (Local1)
                                        }

                                        If (LGreaterEqual (Local1, 0x64))
                                        {
                                            Store (0x80000001, Local0)
                                        }
                                        Else
                                        {
                                            Or (Or (ShiftLeft (ECD3, 0x10), ShiftLeft (ECD2, 0x08)
                                                ), ECD1, Local0)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Return (Local0)
            }
        }

        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Method (_LID, 0, NotSerialized)
            {
                If (CVCL)
                {
                    Return (Zero)
                }
                Else
                {
                    Return (One)
                }
            }

            Name (_PRW, Package (0x02)
            {
                0x18, 
                0x04
            })
            Method (_PSW, 1, NotSerialized)
            {
                Noop
            }
        }

        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }
        }

        Device (AC)
        {
            Name (_HID, "ACPI0003")
            Scope (\)
            {
                Name (ACPS, Ones)
            }

            Method (_INI, 0, NotSerialized)
            {
                Store (ACPW, ACPS)
            }

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

            Method (_PSR, 0, NotSerialized)
            {
                _INI ()
                If (ACPW)
                {
                    Return (One)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (ACHK, 0, NotSerialized)
            {
                Store (ACPW, Local0)
                If (LNotEqual (Local0, ACPS))
                {
                    Sleep (0x28)
                    Notify (\_SB.AC, 0x80)
                    Store (Zero, DVID)
                    Store (0x8D, CMD)
                    Store (Zero, SSMI)
                    Notify (\_PR.CPU0, 0x80)
                    Store (Local0, ACPS)
                }
            }
        }

        Device (CMB1)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, One)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Scope (\)
            {
                Name (B1PS, Ones)
                Name (B1RS, Ones)
                Name (B1CS, Ones)
                Name (B1LS, Ones)
                Name (BIF1, Package (0x0D)
                {
                    0x01, 
                    0x00, 
                    0x00, 
                    0x01, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x01, 
                    0x01, 
                    "", 
                    "1", 
                    "LION", 
                    "Fujitsu"
                })
                Name (BST1, Package (0x04) {})
            }

            Method (MKWD, 2, NotSerialized)
            {
                If (And (Arg1, 0x80))
                {
                    Or (0xFFFF0000, Arg0, Local0)
                    Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
                    Subtract (Zero, Local0, Local0)
                }
                Else
                {
                    Store (Arg0, Local0)
                    Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
                }

                Return (Local0)
            }

            Method (_INI, 0, NotSerialized)
            {
                Store (B1P, B1PS)
                Store (B1CP, B1RS)
                Store (B1C, B1CS)
                Store (MKWD (B1LL, B1LH), B1LS)
            }

            Method (_BIF, 0, NotSerialized)
            {
                Name (BUFF, Buffer (0x0C) {})
                Store (B1NO, Local5)
                CreateByteField (BIDT, B1ID, B1IX)
                Store (MKWD (B1DL, B1DH), Index (BIF1, 0x01))
                Store (MKWD (B1LL, B1LH), Index (BIF1, 0x02))
                Store (Multiply (Add (And (B1DV, 0xEF), 0x02), 0x0E10
                    ), Index (BIF1, 0x04))
                If (LGreaterEqual (\_SB.OSTP (), 0x40))
                {
                    Divide (Multiply (Add (Multiply (0x0C, 0x0A), 0x04), DerefOf (
                        Index (BIF1, 0x01))), 0x03E8, Local0, Index (BIF1, 0x05))
                }

                If (LGreaterEqual (\_SB.OSTP (), 0x40))
                {
                    If (LEqual (BIFL, 0xFF))
                    {
                        Store (0x0A, Local1)
                    }
                    Else
                    {
                        Store (BIFL, Local1)
                    }

                    Divide (Multiply (Add (Multiply (Local1, 0x0A), 0x04), DerefOf (
                        Index (BIF1, 0x01))), 0x03E8, Local0, Index (BIF1, 0x06))
                }

                If (Local5)
                {
                    Store (DerefOf (Index (BMST, B1IX)), BUFF)
                    Store (0x07, Local0)
                    Store (Local5, Local2)
                    While (LAnd (Local2, LGreaterEqual (Local0, 0x02)))
                    {
                        Store (Subtract (DerefOf (Index (BUFF, Local0)), 0x30), Local1)
                        Divide (Add (Local1, Local2), 0x0A, Local1, Local2)
                        Store (Add (Local1, 0x30), Index (BUFF, Local0))
                        Decrement (Local0)
                    }

                    Store (BUFF, Index (BIF1, 0x09))
                }
                Else
                {
                    Store (DerefOf (Index (BMNT, B1IX)), Index (BIF1, 0x09))
                }

                Return (BIF1)
            }

            Method (_BST, 0, NotSerialized)
            {
                _INI ()
                Store (Zero, Local0)
                If (B1P)
                {
                    If (B1C)
                    {
                        Or (Local0, 0x02, Local0)
                    }
                    Else
                    {
                        If (LNot (ACPS))
                        {
                            Or (Local0, One, Local0)
                        }
                    }

                    If (LLessEqual (B1CP, One))
                    {
                        Or (Local0, 0x04, Local0)
                    }
                }

                Store (MKWD (B1CL, B1CH), Local1)
                Divide (Multiply (B1CP, MKWD (B1LL, B1LH)), 0x03E8, Local4, Local2)
                If (Local4)
                {
                    Increment (Local2)
                }

                Multiply (Local2, 0x0A, Local2)
                Store (MKWD (B1VL, B1VH), Local3)
                Store (Local0, Index (BST1, Zero))
                Store (Local1, Index (BST1, One))
                Store (Local2, Index (BST1, 0x02))
                Store (Local3, Index (BST1, 0x03))
                Return (BST1)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (B1P)
                {
                    Return (0x1F)
                }

                Return (0x0F)
            }

            Method (BCHK, 0, NotSerialized)
            {
                If (LNotEqual (B1P, B1PS))
                {
                    Notify (\_SB.CMB1, 0x81)
                    Store (B1P, B1PS)
                }

                If (B1PS)
                {
                    Store (MKWD (B1LL, B1LH), Local0)
                    If (LNotEqual (Local0, B1LS))
                    {
                        Notify (\_SB.CMB1, 0x81)
                    }

                    If (LOr (LNotEqual (B1C, B1CS), LNotEqual (B1CP, B1RS)))
                    {
                        Notify (\_SB.CMB1, 0x80)
                    }

                    Store (Local0, B1LS)
                    Store (B1C, B1CS)
                    Store (B1CP, B1RS)
                }
            }
        }

        Device (CMB2)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x02)
            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Scope (\)
            {
                Name (B2PS, Ones)
                Name (B2RS, Ones)
                Name (B2CS, Ones)
                Name (B2LS, Ones)
                Name (BIF2, Package (0x0D)
                {
                    0x01, 
                    0x00, 
                    0x00, 
                    0x01, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x01, 
                    0x01, 
                    "", 
                    "2", 
                    "LION", 
                    "Fujitsu"
                })
                Name (BST2, Package (0x04) {})
            }

            Method (MKWD, 2, NotSerialized)
            {
                If (And (Arg1, 0x80))
                {
                    Or (0xFFFF0000, Arg0, Local0)
                    Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
                    Subtract (Zero, Local0, Local0)
                }
                Else
                {
                    Store (Arg0, Local0)
                    Or (Local0, ShiftLeft (Arg1, 0x08), Local0)
                }

                Return (Local0)
            }

            Method (_INI, 0, NotSerialized)
            {
                Store (B2P, B2PS)
                Store (B2CP, B2RS)
                Store (B2C, B2CS)
                Store (MKWD (B2LL, B2LH), B2LS)
            }

            Method (_BIF, 0, NotSerialized)
            {
                Name (BUFF, Buffer (0x0C) {})
                Store (B2NO, Local5)
                CreateByteField (BIDT, B2ID, B2IX)
                Store (MKWD (B2DL, B2DH), Index (BIF2, 0x01))
                Store (MKWD (B2LL, B2LH), Index (BIF2, 0x02))
                Store (Multiply (Add (And (B2DV, 0xEF), 0x02), 0x0E10
                    ), Index (BIF2, 0x04))
                If (LGreaterEqual (\_SB.OSTP (), 0x40))
                {
                    Divide (Multiply (Add (Multiply (0x0C, 0x0A), 0x04), DerefOf (
                        Index (BIF2, 0x01))), 0x03E8, Local0, Index (BIF2, 0x05))
                }

                If (LGreaterEqual (\_SB.OSTP (), 0x40))
                {
                    If (LEqual (BIFL, 0xFF))
                    {
                        Store (0x0A, Local1)
                    }
                    Else
                    {
                        Store (BIFL, Local1)
                    }

                    Divide (Multiply (Add (Multiply (Local1, 0x0A), 0x04), DerefOf (
                        Index (BIF2, 0x01))), 0x03E8, Local0, Index (BIF2, 0x06))
                }

                If (Local5)
                {
                    Store (DerefOf (Index (BMST, B2IX)), BUFF)
                    Store (0x07, Local0)
                    Store (Local5, Local2)
                    While (LAnd (Local2, LGreaterEqual (Local0, 0x02)))
                    {
                        Store (Subtract (DerefOf (Index (BUFF, Local0)), 0x30), Local1)
                        Divide (Add (Local1, Local2), 0x0A, Local1, Local2)
                        Store (Add (Local1, 0x30), Index (BUFF, Local0))
                        Decrement (Local0)
                    }

                    Store (BUFF, Index (BIF2, 0x09))
                }
                Else
                {
                    Store (DerefOf (Index (BMNT, B2IX)), Index (BIF2, 0x09))
                }

                Return (BIF2)
            }

            Method (_BST, 0, NotSerialized)
            {
                _INI ()
                Store (Zero, Local0)
                If (B2P)
                {
                    If (B2C)
                    {
                        Or (Local0, 0x02, Local0)
                    }
                    Else
                    {
                        If (LNot (ACPS))
                        {
                            Or (Local0, One, Local0)
                        }
                    }

                    If (LLessEqual (B2CP, One))
                    {
                        Or (Local0, 0x04, Local0)
                    }
                }

                Store (MKWD (B2CL, B2CH), Local1)
                Divide (Multiply (B2CP, MKWD (B2LL, B2LH)), 0x03E8, Local4, Local2)
                If (Local4)
                {
                    Increment (Local2)
                }

                Multiply (Local2, 0x0A, Local2)
                Store (MKWD (B2VL, B2VH), Local3)
                Store (Local0, Index (BST2, Zero))
                Store (Local1, Index (BST2, One))
                Store (Local2, Index (BST2, 0x02))
                Store (Local3, Index (BST2, 0x03))
                Return (BST2)
            }

            Method (_STA, 0, NotSerialized)
            {
                If (B2P)
                {
                    Return (0x1F)
                }

                Return (0x0F)
            }

            Method (BCHK, 0, NotSerialized)
            {
                If (LNotEqual (B2P, B2PS))
                {
                    Notify (\_SB.CMB2, 0x81)
                    Store (B2P, B2PS)
                }

                If (B2PS)
                {
                    Store (MKWD (B2LL, B2LH), Local0)
                    If (LNotEqual (Local0, B2LS))
                    {
                        Notify (\_SB.CMB2, 0x81)
                    }

                    If (LOr (LNotEqual (B2C, B2CS), LNotEqual (B2CP, B2RS)))
                    {
                        Notify (\_SB.CMB2, 0x80)
                    }

                    Store (Local0, B2LS)
                    Store (B2C, B2CS)
                    Store (B2CP, B2RS)
                }
            }
        }

        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))
            Method (_STA, 0, NotSerialized)
            {
                If (FSCM)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }
        }
    }

    Scope (_TZ)
    {
        ThermalZone (TZ00)
        {
            Method (_CRT, 0, Serialized)
            {
                Return (Add (0x0AAC, Multiply (CRTT, 0x0A)))
            }

            Method (_TMP, 0, Serialized)
            {
                If (DTSE)
                {
                    Store (0x9C, CMD)
                    Store (0x00, DVID)
                    Store (Zero, SSMI)
                    Return (Add (0x0AAC, Multiply (DTS1, 0x0A)))
                }
                Else
                {
                    Return (0x0BB8)
                }
            }

            Method (_PSL, 0, Serialized)
            {
                If (MPEN)
                {
                    Return (Package (0x02)
                    {
                        \_PR.CPU0, 
                        \_PR.CPU1
                    })
                }
                Else
                {
                    Return (Package (0x01)
                    {
                        \_PR.CPU0
                    })
                }
            }

            Method (_PSV, 0, Serialized)
            {
                Return (Add (0x0AAC, Multiply (PSVT, 0x0A)))
            }

            Method (_TC1, 0, Serialized)
            {
                Return (TC1V)
            }

            Method (_TC2, 0, Serialized)
            {
                Return (TC2V)
            }

            Method (_TSP, 0, Serialized)
            {
                Return (TSPV)
            }
        }

        ThermalZone (TZ01)
        {
            Method (_CRT, 0, Serialized)
            {
                Return (Add (0x0AAC, Multiply (CRTT, 0x0A)))
            }

            Method (_TMP, 0, Serialized)
            {
                If (DTSE)
                {
                    Store (0x9C, CMD)
                    Store (0x01, DVID)
                    Store (Zero, SSMI)
                    Return (Add (0x0AAC, Multiply (DTS2, 0x0A)))
                }
                Else
                {
                    Return (0x0BB8)
                }
            }

            Method (_PSL, 0, Serialized)
            {
                If (MPEN)
                {
                    Return (Package (0x02)
                    {
                        \_PR.CPU0, 
                        \_PR.CPU1
                    })
                }
                Else
                {
                    Return (Package (0x01)
                    {
                        \_PR.CPU0
                    })
                }
            }

            Method (_PSV, 0, Serialized)
            {
                Return (Add (0x0AAC, Multiply (PSVT, 0x0A)))
            }

            Method (_TC1, 0, Serialized)
            {
                Return (TC1V)
            }

            Method (_TC2, 0, Serialized)
            {
                Return (TC2V)
            }

            Method (_TSP, 0, Serialized)
            {
                Return (TSPV)
            }
        }
    }

    Scope (\)
    {
        Method (TZSM, 1, NotSerialized)
        {
            Store (0x9C, CMD)
            Store (Arg0, DVID)
            Store (Zero, SSMI)
        }
    }

    Scope (\_GPE)
    {
        Method (_L02, 0, NotSerialized)
        {
            Store (0x00, GPEC)
            Notify (\_TZ.TZ00, 0x80)
            Notify (\_TZ.TZ01, 0x80)
        }

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

        Method (_L08, 0, NotSerialized)
        {
        }

        Method (_L09, 0, NotSerialized)
        {
            If (\_SB.PCI0.RP01.PSP1)
            {
                Store (0x01, \_SB.PCI0.RP01.PSP1)
                Store (0x01, \_SB.PCI0.RP01.PMCS)
                Notify (\_SB.PCI0.RP01, 0x02)
            }

            If (\_SB.PCI0.RP02.PSP2)
            {
                Store (0x01, \_SB.PCI0.RP02.PSP2)
                Store (0x01, \_SB.PCI0.RP02.PMCS)
                Notify (\_SB.PCI0.RP02, 0x02)
            }

            If (\_SB.PCI0.RP03.PSP3)
            {
                Store (0x01, \_SB.PCI0.RP03.PSP3)
                Store (0x01, \_SB.PCI0.RP03.PMCS)
                Notify (\_SB.PCI0.RP03, 0x02)
            }
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.PCIB, 0x02)
        }

        Method (_L18, 0, NotSerialized)
        {
            Sleep (0xFA)
            If (LNot (LIDS))
            {
                Store (0x97, CMD)
                Store (Zero, SSMI)
            }

            Not (LPOL, LPOL)
            Notify (\_SB.LID, 0x80)
        }

        Method (_L19, 0, NotSerialized)
        {
            Store (SSF0, Local0)
            Store (Local0, SSF0)
            And (Local0, Not (SSM0), Local0)
            Store (SSF1, Local1)
            Store (Local1, SSF1)
            And (Local1, Not (SSM1), Local1)
            Store (SSF2, Local2)
            Store (Local2, SSF2)
            And (Local2, Not (SSM2), Local2)
            If (And (Local2, 0x10))
            {
                \_SB.AC.ACHK ()
                \_SB.CMB1.BCHK ()
                \_SB.CMB2.BCHK ()
                If (LOr (LNotEqual (LWMD, PLWM), LNotEqual (TALM, PTAL)))
                {
                    Store (LWMD, PLWM)
                    Store (TALM, PTAL)
                    Store (0x95, CMD)
                    Or (PLWM, ShiftLeft (PTAL, 0x01), DVID)
                    Store (Zero, SSMI)
                }

                If (LAnd (TALM, LNot (ACPW)))
                {
                    Store (One, FOCT)
                }
                Else
                {
                    Store (Zero, FOCT)
                }
            }

            If (And (Local0, 0x01))
            {
                \_SB.PCI0.GFX0.PHTK ()
                Store (0x80, CMD)
                Store (Zero, SSMI)
                \_SB.PCI0.GFX0.AHTK ()
                If (BSWF)
                {
                    If (LGreaterEqual (\_SB.OSTP (), 0x40))
                    {
                        \_SB.PCI0.GFX0.LCD.BLNF ()
                    }
                }

                If (LOr (AHKF, VLBF))
                {
                    Notify (\_SB.PCI0.LPCB.FJEX, 0x80)
                }

                If (IRBF)
                {
                    If (LEqual (IRBC, 0xFD00))
                    {
                        Store (One, GINT)
                    }
                    Else
                    {
                        \_SB.FEXT.SIRB (IRBC)
                    }

                    Notify (\_SB.FEXT, 0x80)
                    Store (Zero, IRBF)
                }
            }

            If (And (Local1, 0x30))
            {
                \_SB.PCI0.LPCB.CMBT.SWCF ()
            }

            If (And (Local2, 0x08))
            {
                Store (B1SU, Local3)
                Store (B1SD, Local4)
                Store (TBSF, Local5)
                Store (B2SU, Local6)
                Store (B2SD, Local7)
                Store (Zero, STAE)
                If (LAnd (Local3, LNot (B1TC)))
                {
                    If (LNot (CPBL))
                    {
                        \_SB.PCI0.PATA.PRIM.MAST.BOFF ()
                        Notify (\_SB.PCI0.PATA.PRIM.MAST, One)
                    }
                }

                If (Local5)
                {
                    Store (0x00, TBSM)
                }

                If (LOr (LAnd (Local4, B1TC), Local5))
                {
                    If (LEqual (BY1I, 0x0C))
                    {
                        Store (One, BY1O)
                    }
                    Else
                    {
                        If (LNot (Or (DPCS, CPBL)))
                        {
                            \_SB.PCI0.PATA.PRIM.MAST.BON ()
                            If (LAnd (LAnd (BRST, BY1O), B1TC))
                            {
                                Notify (\_SB.PCI0.PATA.PRIM.MAST, One)
                            }
                        }
                    }
                }

                If (LOr (Local6, Local7))
                {
                    Sleep (0x03E8)
                    Store (Zero, B2SU)
                    Store (Zero, B2SD)
                    \_SB.PCI0.LPCB.PRCF ()
                    If (RPEN)
                    {
                        If (LNotEqual (B2TC, RPDS))
                        {
                            Store (B2TC, RPDS)
                            If (RPDS)
                            {
                                Notify (\_SB.REPL, Zero)
                            }
                            Else
                            {
                                Sleep (0x0FA0)
                                Notify (\_SB.REPL, One)
                            }
                        }
                    }
                }
            }
        }

        Method (_L1D, 0, NotSerialized)
        {
            If (EXPL)
            {
                \_SB.PCI0.RP02.PXS2.EXIN ()
            }
            Else
            {
                \_SB.PCI0.RP02.PXS2.EXRM ()
            }

            Sleep (0x64)
            Notify (\_SB.PCI0.RP02, Zero)
        }
    }

    Name (_S0, Package (0x04)
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (_S3, Package (0x04)
    {
        0x05, 
        0x05, 
        0x00, 
        0x00
    })
    Name (_S4, Package (0x04)
    {
        0x06, 
        0x06, 
        0x00, 
        0x00
    })
    Name (_S5, Package (0x04)
    {
        0x07, 
        0x07, 
        0x00, 
        0x00
    })
    Method (_PTS, 1, NotSerialized)
    {
        Add (0xDD, Arg0, PO80)
        If (LAnd (LGreaterEqual (Arg0, One), LLessEqual (Arg0, 0x04)))
        {
            If (LNot (CPBL))
            {
                If (\_SB.PCI0.PATA.PRIM.MAST._STA ())
                {
                    Store (Zero, BYIS)
                }
                Else
                {
                    Store (0xFF, BYIS)
                }
            }

            If (RPEN)
            {
                Store (RPDS, DC1S)
            }

            If (\_SB.PCI0.RP02.PXS2._STA ())
            {
                Store (Zero, EXIS)
            }
            Else
            {
                Store (0xFF, EXIS)
            }
        }

        \_SB.PCI0.LPCB.CMBT.BPTS (Arg0)
        Store (Zero, WAPB)
        Store (One, HDWA)
        Add (0xE0, Arg0, PO80)
    }

    Method (_WAK, 1, NotSerialized)
    {
        Add (0xEE, Arg0, PO80)
        \_SB.PCI0.LPCB.AINI ()
        \_SB.PCI0.PCIB._INI ()
        \_SB.FEXT._INI ()
        If (LEqual (Arg0, 0x03))
        {
            Store (0xA3, CMD)
            Store (0x00, INF)
            Store (Zero, SSMI)
        }

        If (LEqual (Arg0, 0x03))
        {
            Store (0x9B, CMD)
            Store (0x04, DVID)
            Store (Zero, SSMI)
        }

        If (WAPB)
        {
            Notify (\_SB.PWRB, 0x02)
        }

        If (LEqual (Arg0, 0x04))
        {
            \_SB.FEXT.FUNC (0x1002, 0x03, Ones, WBTN)
        }

        \_SB.PCI0.LPCB.CMBT.BWAK (Arg0)
        If (LAnd (LGreaterEqual (Arg0, One), LLessEqual (Arg0, 0x04)))
        {
            If (LNot (CPBL))
            {
                If (LEqual (BYIS, 0xFF))
                {
                    If (\_SB.PCI0.PATA.PRIM.MAST.BIDE ())
                    {
                        If (DPCS)
                        {
                            \_SB.PCI0.PATA.PRIM.MAST.BOFF ()
                        }
                        Else
                        {
                            If (LNot (\_SB.PCI0.PATA.PRIM.MAST._STA ()))
                            {
                                \_SB.PCI0.PATA.PRIM.MAST.BON ()
                            }

                            If (LAnd (LAnd (BRST, BY1O), B1TC))
                            {
                                Notify (\_SB.PCI0.PATA.PRIM.MAST, One)
                            }
                        }
                    }
                }
                Else
                {
                    If (LNot (\_SB.PCI0.PATA.PRIM.MAST._STA ()))
                    {
                        \_SB.PCI0.PATA.PRIM.MAST.TMCL ()
                        Notify (\_SB.PCI0.PATA.PRIM.MAST, One)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x04))
                        {
                            Store (0x87, CMD)
                            Store (Zero, DVID)
                            Store (Zero, SSMI)
                            Name (BFMN, Buffer (0x28) {})
                            Store (PIID, BFMN)
                            Store (Zero, Local0)
                            Store (Zero, Local1)
                            While (LAnd (LNot (Local0), LLess (Local1, 0x28)))
                            {
                                If (LEqual (DerefOf (Index (\_SB.PCI0.PATA.PMMN, Local1)), DerefOf (Index (BFMN, 
                                    Local1))))
                                {
                                    Increment (Local1)
                                }
                                Else
                                {
                                    Store (0x01, Local0)
                                }
                            }

                            If (Local0)
                            {
                                \_SB.PCI0.PATA.PRIM.MAST.BOFF ()
                                Notify (\_SB.PCI0.PATA.PRIM.MAST, One)
                            }
                        }
                    }

                    If (LAnd (\_SB.PCI0.PATA.PRIM.MAST.BIDE (), LNot (\_SB.PCI0.PATA.PRIM.MAST._STA ())))
                    {
                        Store (0x01, TBSM)
                        Store (0x00, TBSF)
                        Store (0x1E, TIMB)
                    }
                }
            }

            \_SB.PCI0.LPCB.PRCF ()
            If (RPEN)
            {
                If (LNotEqual (B2TC, DC1S))
                {
                    Store (B2TC, RPDS)
                    If (RPDS)
                    {
                        Notify (\_SB.REPL, Zero)
                    }
                    Else
                    {
                        Notify (\_SB.REPL, One)
                    }
                }
            }

            If (\_SB.PCI0.RP02.PXS2._STA ())
            {
                If (EXIS)
                {
                    Notify (\_SB.PCI0.RP02, Zero)
                }
            }
            Else
            {
                If (LNot (EXIS))
                {
                    Notify (\_SB.PCI0.RP02, Zero)
                }
            }

            If (NGTM)
            {
                \_SB.FEXT.FUNC (0x1004, 0x01, 0x04, 0x00)
            }
        }

        Add (0xF0, Arg0, PO80)
        Return (Zero)
    }

    Name (DC1S, Zero)
    Scope (_SB)
    {
        Device (REPL)
        {
            Name (_HID, EisaId ("PNP0C15"))
            Name (_BDN, 0x01)
            Name (_UID, 0x01)
            Method (_STA, 0, NotSerialized)
            {
                If (RPDS)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (0x00)
                }
            }

            Method (_DCK, 1, NotSerialized)
            {
                Return (One)
            }

            Method (_EJ0, 1, NotSerialized)
            {
                Store (Zero, Local0)
                While (LAnd (RPDS, LLess (Local0, 0x012C)))
                {
                    Sleep (0x64)
                    Add (Local0, 0x01, Local0)
                }
            }
        }
    }

    Scope (\_SB.PCI0.USB1)
    {
        Device (HUB1)
        {
            Name (_ADR, 0x00)
            Device (PRT1)
            {
                Name (_ADR, 0x01)
            }

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

    Scope (\_SB.PCI0.USB2)
    {
        Device (HUB2)
        {
            Name (_ADR, 0x00)
            Device (PRT1)
            {
                Name (_ADR, 0x01)
            }

            Device (PRT2)
            {
                Name (_ADR, 0x02)
                Name (_EJD, "_SB.REPL")
            }
        }
    }

    Scope (\_SB.PCI0.USB3.HUB3)
    {
        Device (PRT2)
        {
            Name (_ADR, 0x02)
        }
    }

    Scope (\_SB.PCI0.USB4)
    {
        Device (HUB4)
        {
            Name (_ADR, 0x00)
            Device (PRT1)
            {
                Name (_ADR, 0x01)
            }

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

    Scope (\_SB.PCI0.USB7.HUB7)
    {
        Device (PRT1)
        {
            Name (_ADR, 0x01)
        }

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

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

        Device (PRT4)
        {
            Name (_ADR, 0x04)
            Name (_EJD, "_SB.REPL")
        }

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

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

        Device (PRT8)
        {
            Name (_ADR, 0x08)
        }
    }

    Scope (\_SB.PCI0.LPCB.UAR1)
    {
        Name (_EJD, "_SB.REPL")
    }

    Scope (\_SB.PCI0.LPCB.LPT)
    {
        Name (_EJD, "_SB.REPL")
    }

    Scope (\_SB.PCI0.LPCB.ECP)
    {
        Name (_EJD, "_SB.REPL")
    }

    Scope (\)
    {
        Name (SSDT, Package (0x0C)
        {
            "CPU0IST ", 
            0x7F64EF21, 
            0x000001E8, 
            "CPU1IST ", 
            0x7F64F319, 
            0x00000087, 
            "CPU0CST ", 
            0x7F64F3A0, 
            0x000001D0, 
            "CPU1CST ", 
            0x7F64F570, 
            0x00000085
        })
        Name (CFGD, 0x011B6971)
        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, 0x47, 
                /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            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, 0x47, 
                /* 0008 */    0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
            })
            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)
        }
    }

    Scope (\_SB.PCI0.SATA)
    {
        Name (PMMN, Buffer (0x28) {})
        OperationRegion (PCI, PCI_Config, 0x40, 0x18)
        Field (PCI, ByteAcc, NoLock, Preserve)
        {
            PTI0,   1, 
            PIE0,   1, 
            PPP0,   1, 
            PDT0,   1, 
            PTI1,   1, 
            PIE1,   1, 
            PPP1,   1, 
            PDT1,   1, 
            PRCT,   2, 
                ,   2, 
            PISP,   2, 
            PSIT,   1, 
            PIDE,   1, 
                    Offset (0x04), 
            PRC1,   2, 
            PIS1,   2, 
                    Offset (0x08), 
            PSD0,   1, 
            PSD1,   1, 
                    Offset (0x0A), 
            PCT0,   2, 
                ,   2, 
            PCT1,   2, 
                    Offset (0x14), 
            PCB0,   1, 
            PCB1,   1, 
                ,   2, 
            PMCC,   1, 
            PSCC,   1, 
                ,   6, 
            FPC0,   1, 
            FPC1,   1, 
                    Offset (0x16), 
            PSMD,   2
        }

        Device (PRID)
        {
            Name (_ADR, 0x00)
            Device (P_D0)
            {
                Name (_ADR, 0x00)
                Method (_GTF, 0, NotSerialized)
                {
                    Name (GTFB, Buffer (0x15)
                    {
                        /* 0000 */    0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                        /* 0008 */    0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, 
                        /* 0010 */    0x00, 0x00, 0x00, 0xA0, 0xF5
                    })
                    CreateByteField (GTFB, 0x01, SPIO)
                    CreateByteField (GTFB, 0x08, SDMA)
                    If (LNot (PIE0))
                    {
                        Store (0x01, SPIO)
                    }
                    Else
                    {
                        If (LOr (PDT0, LNot (PTI0)))
                        {
                            Store (0x08, SPIO)
                        }
                        Else
                        {
                            If (LLess (Add (PISP, PRCT), 0x03))
                            {
                                Store (0x0A, SPIO)
                            }
                            Else
                            {
                                If (LLess (Add (PISP, PRCT), 0x05))
                                {
                                    Store (0x0B, SPIO)
                                }
                                Else
                                {
                                    Store (0x0C, SPIO)
                                }
                            }
                        }
                    }

                    If (PSD0)
                    {
                        If (And (FPC0, PMCC))
                        {
                            Store (0x45, SDMA)
                        }
                        Else
                        {
                            If (And (PCB0, PMCC))
                            {
                                If (LEqual (PCT0, 0x02))
                                {
                                    Store (0x44, SDMA)
                                }
                                Else
                                {
                                    Store (0x43, SDMA)
                                }
                            }
                            Else
                            {
                                If (LEqual (PCT0, 0x02))
                                {
                                    Store (0x42, SDMA)
                                }
                                Else
                                {
                                    If (LEqual (PCT0, 0x01))
                                    {
                                        Store (0x41, SDMA)
                                    }
                                    Else
                                    {
                                        Store (0x40, SDMA)
                                    }
                                }
                            }
                        }
                    }
                    Else
                    {
                        If (LLess (Add (PISP, PRCT), 0x05))
                        {
                            Store (0x21, SDMA)
                        }
                        Else
                        {
                            Store (0x22, SDMA)
                        }
                    }

                    Return (GTFB)
                }

                Name (_PSC, 0x00)
                Method (_PS0, 0, NotSerialized)
                {
                    Store (_PSC, Local0)
                    Store (0x00, _PSC)
                    If (LEqual (Local0, 0x03))
                    {
                        Store (0x01, INF)
                        While (INF)
                        {
                            Store (0x20, CMD)
                            Store (Zero, SSMI)
                            If (LAnd (LEqual (INF, 0x01), LGreaterEqual (\_SB.OSTP (), 0x04)))
                            {
                                Sleep (0x01F4)
                            }
                        }
                    }
                }

                Method (_PS3, 0, NotSerialized)
                {
                    Store (0x03, _PSC)
                }
            }

            Device (P_D1)
            {
                Name (_ADR, 0x01)
                Name (_GTF, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
                })
            }

            Method (_GTM, 0, NotSerialized)
            {
                Name (GTMB, Buffer (0x14) {})
                CreateDWordField (GTMB, 0x00, PIO0)
                CreateDWordField (GTMB, 0x04, DMA0)
                CreateDWordField (GTMB, 0x08, PIO1)
                CreateDWordField (GTMB, 0x0C, DMA1)
                CreateDWordField (GTMB, 0x10, FLAG)
                Store (0x10, FLAG)
                Or (FLAG, Or (ShiftLeft (PIE1, 0x03), ShiftLeft (PIE0, 0x01
                    )), FLAG)
                If (LOr (PDT0, LNot (PTI0)))
                {
                    Store (0x0384, PIO0)
                }
                Else
                {
                    Multiply (Subtract (0x09, Add (PRCT, PISP)), 0x1E, PIO0)
                }

                If (LNot (PSD0))
                {
                    Store (PIO0, DMA0)
                }
                Else
                {
                    Or (FLAG, 0x01, FLAG)
                    If (And (FPC0, PMCC))
                    {
                        Store (0x14, DMA0)
                    }
                    Else
                    {
                        If (And (PCB0, PMCC))
                        {
                            Multiply (Subtract (0x04, PCT0), 0x0F, DMA0)
                        }
                        Else
                        {
                            Multiply (Subtract (0x04, PCT0), 0x1E, DMA0)
                        }
                    }
                }

                If (LOr (PDT1, LNot (PTI1)))
                {
                    Store (0x0384, PIO1)
                }
                Else
                {
                    If (LNot (PSIT))
                    {
                        Store (PIO0, PIO1)
                    }
                    Else
                    {
                        Multiply (Subtract (0x09, Add (PRC1, PIS1)), 0x1E, PIO1)
                    }
                }

                If (LNot (PSD1))
                {
                    Store (PIO1, DMA1)
                }
                Else
                {
                    Or (FLAG, 0x04, FLAG)
                    If (And (FPC1, PSCC))
                    {
                        Store (0x14, DMA1)
                    }
                    Else
                    {
                        If (And (PCB1, PSCC))
                        {
                            Multiply (Subtract (0x04, PCT1), 0x0F, DMA1)
                        }
                        Else
                        {
                            Multiply (Subtract (0x04, PCT1), 0x1E, DMA1)
                        }
                    }
                }

                Return (GTMB)
            }

            Method (_STM, 3, NotSerialized)
            {
                CreateDWordField (Arg0, 0x00, PIO0)
                CreateDWordField (Arg0, 0x04, DMA0)
                CreateDWordField (Arg0, 0x08, PIO1)
                CreateDWordField (Arg0, 0x0C, DMA1)
                CreateDWordField (Arg0, 0x10, FLAG)
                Store (0x00, PSIT)
                If (LEqual (SizeOf (Arg1), 0x0200))
                {
                    CreateField (Arg1, 0x01B0, 0x0140, MBUF)
                    Store (MBUF, PMMN)
                    CreateWordField (Arg1, 0x62, W490)
                    CreateWordField (Arg1, 0x66, W510)
                    CreateWordField (Arg1, 0x6A, W530)
                    CreateWordField (Arg1, 0x7C, W620)
                    CreateWordField (Arg1, 0x7E, W630)
                    CreateWordField (Arg1, 0x80, W640)
                    CreateWordField (Arg1, 0xB0, W880)
                    Store (0x00, PISP)
                    Store (0x00, PRCT)
                    Store (0x00, PDT0)
                    Store (0x00, PIE0)
                    Store (0x00, PTI0)
                    Store (0x00, PSD0)
                    Store (0x00, PCT0)
                    Store (0x00, PCB0)
                    Store (0x00, PMCC)
                    Store (0x00, FPC0)
                    If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                    {
                        Store (0x01, PIE0)
                    }

                    If (LAnd (LLessEqual (PIO0, 0x78), LAnd (And (W530, 0x02
                        ), And (W640, 0x02))))
                    {
                        Store (0x02, PISP)
                        Store (0x03, PRCT)
                        Store (0x01, PTI0)
                    }
                    Else
                    {
                        If (LAnd (LLessEqual (PIO0, 0xB4), LAnd (And (W530, 0x02
                            ), And (W640, 0x01))))
                        {
                            Store (0x02, PISP)
                            Store (0x01, PRCT)
                            Store (0x01, PTI0)
                        }
                        Else
                        {
                            If (LAnd (LLessEqual (PIO0, 0xF0), LGreaterEqual (W510, 0x0200)))
                            {
                                Store (0x01, PISP)
                                Store (0x01, PTI0)
                            }
                            Else
                            {
                                Noop
                            }
                        }
                    }

                    If (LNotEqual (DMA0, 0xFFFFFFFF))
                    {
                        If (LAnd (And (FLAG, 0x01), LAnd (And (W530, 0x04
                            ), And (W880, 0x3F))))
                        {
                            Store (0x01, PSD0)
                            If (LAnd (LLessEqual (DMA0, 0x14), And (W880, 0x20)))
                            {
                                Store (0x01, PCT0)
                                Store (0x01, PMCC)
                                Store (0x01, FPC0)
                            }
                            Else
                            {
                                If (LAnd (LLessEqual (DMA0, 0x1E), And (W880, 0x10)))
                                {
                                    Store (0x02, PCT0)
                                    Store (0x01, PMCC)
                                    Store (0x01, PCB0)
                                }
                                Else
                                {
                                    If (LAnd (LLessEqual (DMA0, 0x2D), And (W880, 0x08)))
                                    {
                                        Store (0x01, PCT0)
                                        Store (0x01, PMCC)
                                        Store (0x01, PCB0)
                                    }
                                    Else
                                    {
                                        If (LAnd (LLessEqual (DMA0, 0x3C), And (W880, 0x04)))
                                        {
                                            Store (0x02, PCT0)
                                        }
                                        Else
                                        {
                                            If (LAnd (LLessEqual (DMA0, 0x5A), And (W880, 0x02)))
                                            {
                                                Store (0x01, PCT0)
                                            }
                                            Else
                                            {
                                                Noop
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        Else
                        {
                            If (LAnd (LLessEqual (DMA0, 0x78), And (W630, 0x04)))
                            {
                                Store (0x02, PISP)
                                Store (0x03, PRCT)
                                Store (0x01, PTI0)
                            }
                            Else
                            {
                                If (LAnd (LLessEqual (DMA0, 0xB4), And (W630, 0x02)))
                                {
                                    Store (0x02, PISP)
                                    Store (0x01, PRCT)
                                    Store (0x01, PTI0)
                                }
                                Else
                                {
                                    Noop
                                }
                            }
                        }
                    }
                }

                Store (0x01, PIDE)
            }
        }

        Device (SECD)
        {
            Name (_ADR, 0x01)
            Device (S_D0)
            {
                Name (_ADR, 0x00)
                Name (_GTF, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
                })
            }

            Device (S_D1)
            {
                Name (_ADR, 0x01)
                Name (_GTF, Buffer (0x07)
                {
                    0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
                })
            }
        }
    }
}


-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk_at_FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
Received on Sun Mar 16 2008 - 21:33:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:29 UTC