How do I use HPET?

Norikatsu Shigemura nork at FreeBSD.org
Tue Jun 19 17:45:53 UTC 2007


Hi.

	I'm using Panasonic Let's Note (Toughbook) CF-R4 with FreeBSD
	6-stable.  How do I use HPET?  I can't use HPET:-(.  Anyone,
	do you have any idea?
-------------- next part --------------
Copyright (c) 1992-2007 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 6.2-STABLE #65: Tue Jun 19 02:50:41 JST 2007
    nork at melfina.ninth-nine.com:/usr/obj/usr/src/sys/MELFINA
WARNING: Network stack Giant-free, but aio requires Giant.
    Consider adding 'options NET_WITH_GIANT' or setting debug.mpsafenet=0
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Pentium(R) M processor 1.20GHz (1197.01-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x6d8  Stepping = 8
  Features=0xafe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,TM,PBE>
  Features2=0x180<EST,TM2>
  AMD Features=0x100000<NX>
real memory  = 1064173568 (1014 MB)
avail memory = 1032351744 (984 MB)
ACPI APIC Table: <MATBIO CFR4-3  >
ioapic0: Changing APIC ID to 1
ioapic0 <Version 2.0> irqs 0-23 on motherboard
kbd1 at kbdmux0
kqemu version 0x00010300
kqemu: KQEMU installed, max_locked_mem=515248kB.
ichwd module loaded
acpi0: <PTLTD   RSDT> on motherboard
acpi0: Power Button (fixed)
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 0x1d> port 0x62,0x66 on acpi0
cpu0: <ACPI CPU> on acpi0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
acpi_lid0: <Control Method Lid Switch> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
acpi_acad0: <AC Adapter> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_panasonic0: <Panasonic Notebook Hotkeys> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82915GM (915GM GMCH) SVGA controller> port 0x1800-0x1807 mem 0xb0080000-0xb00fffff,0xc0000000-0xcfffffff,0xb0000000-0xb003ffff irq 16 at device 2.0 on pci0
agp0: detected 7932k stolen memory
agp0: aperture size is 256M
drmsub0: <Intel i915GM>: (child of agp_i810.c) on agp0
info: [drm] AGP at 0xb0080000 0MB
info: [drm] Initialized i915 1.5.0 20060119
pci0: <display> at device 2.1 (no driver attached)
uhci0: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-A> port 0x1820-0x183f irq 23 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82801FB/FR/FW/FRW (ICH6) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
ehci0: <Intel 82801FB (ICH6) USB 2.0 controller> mem 0xb0040000-0xb00403ff irq 23 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
usb1: EHCI version 1.0
usb1: companion controller, 2 ports each: usb0
usb1: <Intel 82801FB (ICH6) USB 2.0 controller> on ehci0
usb1: USB revision 2.0
uhub1: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pcib1: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci6: <ACPI PCI bus> on pcib1
rl0: <RealTek 8139 10/100BaseTX> port 0x3000-0x30ff mem 0xb0100000-0xb01000ff irq 19 at device 1.0 on pci6
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:0b:97:33:1c:30
iwi0: <Intel(R) PRO/Wireless 2915ABG> mem 0xb0101000-0xb0101fff irq 21 at device 4.0 on pci6
iwi0: Ethernet address: 00:16:6f:33:41:34
cbb0: <RF5C476 PCI-CardBus Bridge> mem 0xb0102000-0xb0102fff irq 22 at device 5.0 on pci6
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pci6: <base peripheral> at device 5.1 (no driver attached)
pcm0: <Intel ICH6 (82801FB)> port 0x1c00-0x1cff,0x1840-0x187f mem 0xb0040800-0xb00409ff,0xb0040400-0xb00404ff irq 17 at device 30.2 on pci0
pcm0: <SigmaTel STAC9750/51 AC97 Codec>
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH6 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1810-0x181f at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
ichsmb0: <SMBus controller> port 0x18a0-0x18bf irq 19 at device 31.3 on pci0
ichsmb0: [GIANT-LOCKED]
smbus0: <System Management Bus> on ichsmb0
smb0: <SMBus generic I/O> on smbus0
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> flags 0x2000 irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Synaptics Touchpad, device ID 0
pmtimer0 on isa0
ichwd0: <Intel ICH6M  watchdog timer> on isa0
ichwd0: Intel ICH6M  watchdog timer TCO version 2
orm0: <ISA Option ROMs> at iomem 0xcf800-0xd07ff,0xdc000-0xdffff,0xe0000-0xeffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1197010942 Hz quality 800
Timecounters tick every 1.000 msec
Fast IPsec: Initialized Security Association Processing.
ad0: 54156MB <TOSHIBA MK6034GAX AC101F> at ata0-master UDMA100
Trying to mount root from ufs:/dev/ad0s2a
ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding disabled, default to accept, logging unlimited
tap0: Ethernet address: 00:bd:51:27:00:00
-------------- next part --------------
nexus0
  legacy0
  npx0
  acpi0
      Interrupt request lines:
          0x9
      I/O ports:
          0x63
          0x65
          0x67
          0x80
          0x92
          0xb2-0xb3
          0x800-0x80f
          0x900-0x91f
          0x92c-0x97f
          0x1000-0x107f
          0x1180-0x11bf
          0xfe00-0xfe01
      I/O memory addresses:
          0xcf200-0xcf7ff
          0xd0800-0xd3fff
          0xe0000000-0xefffffff
          0xf0000000-0xf0003fff
          0xf0004000-0xf0004fff
          0xf0005000-0xf0005fff
          0xf0008000-0xf000bfff
          0xfed20000-0xfed8ffff
    cpu0 pnpinfo _HID=none _UID=0 at handle=\_PR_.CPU0
        ACPI I/O ports:
            0x1014
            0x1015
      est0
      p4tcc0
      acpi_perf0
      acpi_throttle0
      cpufreq0
    unknown pnpinfo _HID=none _UID=0 at handle=\_PR_.CPU1
    acpi_lid0 pnpinfo _HID=PNP0C0D _UID=0 at handle=\_SB_.LID_
    battery0 pnpinfo _HID=PNP0C0A _UID=0 at handle=\_SB_.BATA
    acpi_acad0 pnpinfo _HID=ACPI0003 _UID=0 at handle=\_SB_.AC__
    acpi_button0 pnpinfo _HID=PNP0C0C _UID=0 at handle=\_SB_.PWRB
    acpi_panasonic0 pnpinfo _HID=MAT0019 _UID=0 at handle=\_SB_.HKEY
    pcib0 pnpinfo _HID=PNP0A08 _UID=0 at handle=\_SB_.PCI0
      pci0
        hostb0 pnpinfo vendor=0x8086 device=0x2590 subvendor=0x10f7 subdevice=0x8338 class=0x060000 at slot=0 function=0
        agp0 pnpinfo vendor=0x8086 device=0x2592 subvendor=0x10f7 subdevice=0x8338 class=0x030000 at slot=2 function=0 handle=\_SB_.PCI0.GFX0
            Interrupt request lines:
                0x10
            I/O ports:
                0x1800-0x1807
            I/O memory addresses:
                0xb0000000-0xb003ffff
                0xb0080000-0xb00fffff
                0xc0000000-0xcfffffff
          drmsub0
        unknown pnpinfo vendor=0x8086 device=0x2792 subvendor=0x10f7 subdevice=0x8338 class=0x038000 at slot=2 function=1
        uhci0 pnpinfo vendor=0x8086 device=0x2658 subvendor=0x10f7 subdevice=0x8338 class=0x0c0300 at slot=29 function=0 handle=\_SB_.PCI0.USB1
            Interrupt request lines:
                0x17
            I/O ports:
                0x1820-0x183f
          usb0
            uhub0
        ehci0 pnpinfo vendor=0x8086 device=0x265c subvendor=0x10f7 subdevice=0x8338 class=0x0c0320 at slot=29 function=7 handle=\_SB_.PCI0.EHCI
            I/O memory addresses:
                0xb0040000-0xb00403ff
          usb1
            uhub1
        pcib1 pnpinfo vendor=0x8086 device=0x2448 subvendor=0x10f7 subdevice=0x8338 class=0x060401 at slot=30 function=0 handle=\_SB_.PCI0.PCIB
          pci6
            rl0 pnpinfo vendor=0x10ec device=0x8139 subvendor=0x10f7 subdevice=0x8338 class=0x020000 at slot=1 function=0 handle=\_SB_.PCI0.PCIB.LAN_
                Interrupt request lines:
                    0x13
                I/O ports:
                    0x3000-0x30ff
                I/O memory addresses:
                    0xb0100000-0xb01000ff
              miibus0
                rlphy0 pnpinfo oui=0x0 model=0x0 rev=0x0 at phyno=0
            iwi0 pnpinfo vendor=0x8086 device=0x4223 subvendor=0x8086 subdevice=0x1002 class=0x028000 at slot=4 function=0
                Interrupt request lines:
                    0x15
                I/O memory addresses:
                    0xb0101000-0xb0101fff
            cbb0 pnpinfo vendor=0x1180 device=0x0476 subvendor=0x10f7 subdevice=0x8338 class=0x060700 at slot=5 function=0 handle=\_SB_.PCI0.PCIB.CDB1
                Interrupt request lines:
                    0x16
                I/O memory addresses:
                    0xb0102000-0xb0102fff
              cardbus0
              pccard0
            unknown pnpinfo vendor=0x1180 device=0x0822 subvendor=0x10f7 subdevice=0x8338 class=0x080500 at slot=5 function=1
                I/O memory addresses:
                    0xb0100400-0xb01004ff
        pcm0 pnpinfo vendor=0x8086 device=0x266e subvendor=0x10f7 subdevice=0x834c class=0x040100 at slot=30 function=2 handle=\_SB_.PCI0.AUD0
            Interrupt request lines:
                0x11
            I/O ports:
                0x1840-0x187f
                0x1c00-0x1cff
            I/O memory addresses:
                0xb0040400-0xb00404ff
                0xb0040800-0xb00409ff
        isab0 pnpinfo vendor=0x8086 device=0x2641 subvendor=0x10f7 subdevice=0x8338 class=0x060100 at slot=31 function=0 handle=\_SB_.PCI0.LPCB
            I/O memory addresses:
                0xfed1c000-0xfed1c003
          isa0
            pmtimer0
            sc0
            vga0
                I/O ports:
                    0x3c0-0x3df
                I/O memory addresses:
                    0xa0000-0xbffff
            adv0
            aha0
            aic0
            bt0
            cs0
            ed0
            fdc0
            fe0
            ie0
            lnc0
            ppc0
            sio0
            sio1
            sio2
            sio3
            sn0
            vt0
            orm0
                I/O memory addresses:
                    0xcf800-0xd07ff
                    0xdc000-0xdffff
                    0xe0000-0xeffff
            ichwd0
                ACPI I/O ports:
                    0x1030-0x1037
                    0x1060-0x1069
        atapci0 pnpinfo vendor=0x8086 device=0x266f subvendor=0x10f7 subdevice=0x8338 class=0x01018a at slot=31 function=1 handle=\_SB_.PCI0.PATA
            I/O ports:
                0x170-0x177
                0x1f0-0x1f7
                0x376
                0x3f6
                0x1810-0x181f
          ata0
              Interrupt request lines:
                  0xe
            ad0
              subdisk0
          ata1
              Interrupt request lines:
                  0xf
        ichsmb0 pnpinfo vendor=0x8086 device=0x266a subvendor=0x10f7 subdevice=0x8338 class=0x0c0500 at slot=31 function=3 handle=\_SB_.PCI0.SBUS
            I/O ports:
                0x18a0-0x18bf
          smbus0
            smb0
    acpi_sysresource0 pnpinfo _HID=PNP0C02 _UID=4096 at handle=\_SB_.PCI0.OPRM
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.GFX0.CRT1
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.GFX0.LCD1
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.USB2
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.USB3
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.USB4
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.MODM
    acpi_sysresource1 pnpinfo _HID=PNP0C02 _UID=31 at handle=\_SB_.PCI0.LPCB.MBRD
    atdma0 pnpinfo _HID=PNP0200 _UID=0 at handle=\_SB_.PCI0.LPCB.DMAC
    unknown pnpinfo _HID=INT0800 _UID=0 at handle=\_SB_.PCI0.LPCB.FWHD
    unknown pnpinfo _HID=PNP0103 _UID=0 at handle=\_SB_.PCI0.LPCB.HPET
    atpic0 pnpinfo _HID=PNP0000 _UID=0 at handle=\_SB_.PCI0.LPCB.IPIC
    npxisa0 pnpinfo _HID=PNP0C04 _UID=0 at handle=\_SB_.PCI0.LPCB.MATH
    acpi_sysresource2 pnpinfo _HID=PNP0C02 _UID=1 at handle=\_SB_.PCI0.LPCB.MBD0
    unknown pnpinfo _HID=PNP0C02 _UID=2 at handle=\_SB_.PCI0.LPCB.MBD1
    attimer0 pnpinfo _HID=PNP0B00 _UID=0 at handle=\_SB_.PCI0.LPCB.RTC_
    attimer1 pnpinfo _HID=PNP0100 _UID=0 at handle=\_SB_.PCI0.LPCB.TIMR
    unknown pnpinfo _HID=PNP0800 _UID=0 at handle=\_SB_.PCI0.LPCB.SPKR
    unknown pnpinfo _HID=IFX0101 _UID=1 at handle=\_SB_.PCI0.LPCB.TPM_
    acpi_ec0 pnpinfo _HID=PNP0C09 _UID=0 at handle=\_SB_.PCI0.LPCB.EC0_
        I/O ports:
            0x62
            0x66
    unknown pnpinfo _HID=PNP0303 _UID=0 at handle=\_SB_.PCI0.LPCB.K101
    atkbdc0 pnpinfo _HID=PNP0320 _UID=0 at handle=\_SB_.PCI0.LPCB.K106
        I/O ports:
            0x60
            0x64
      atkbd0
          Interrupt request lines:
              0x1
      psm0
          Interrupt request lines:
              0xc
    unknown pnpinfo _HID=PNP0F13 _UID=0 at handle=\_SB_.PCI0.LPCB.MOUS
    psmcpnp0 pnpinfo _HID=SYN0002 _UID=0 at handle=\_SB_.PCI0.LPCB.MOU3
    pci_link0 pnpinfo _HID=PNP0C0F _UID=1 at handle=\_SB_.PCI0.LPCB.LNKA
    pci_link1 pnpinfo _HID=PNP0C0F _UID=2 at handle=\_SB_.PCI0.LPCB.LNKB
    pci_link2 pnpinfo _HID=PNP0C0F _UID=3 at handle=\_SB_.PCI0.LPCB.LNKC
    pci_link3 pnpinfo _HID=PNP0C0F _UID=4 at handle=\_SB_.PCI0.LPCB.LNKD
    pci_link4 pnpinfo _HID=PNP0C0F _UID=5 at handle=\_SB_.PCI0.LPCB.LNKE
    pci_link5 pnpinfo _HID=PNP0C0F _UID=6 at handle=\_SB_.PCI0.LPCB.LNKF
    pci_link6 pnpinfo _HID=PNP0C0F _UID=7 at handle=\_SB_.PCI0.LPCB.LNKG
    pci_link7 pnpinfo _HID=PNP0C0F _UID=8 at handle=\_SB_.PCI0.LPCB.LNKH
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.PATA.PRID
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.PATA.PRID.P_D0
    unknown pnpinfo _HID=none _UID=0 at handle=\_SB_.PCI0.PATA.PRID.P_D1
    acpi_tz0 pnpinfo _HID=none _UID=0 at handle=\_TZ_.TZC_
    acpi_timer0 pnpinfo unknown at unknown
        ACPI I/O ports:
            0x1008-0x100b
-------------- next part --------------
/*
  RSD PTR: OEM=PTLTD, ACPI_Rev=1.0x (0)
	RSDT=0x3f6e30aa, cksum=178
 */
/*
  RSDT: Length=64, Revision=1, Checksum=245,
	OEMID=PTLTD, OEM Table ID=  RSDT, OEM Revision=0x6040000,
	Creator ID= LTP, Creator Revision=0x0
	Entries={ 0x3f6e7e78, 0x3f6e7efc, 0x3f6e7fd8, 0x3f6e7f9c, 0x3f6e34e7, 0x3f6e3309, 0x3f6e30ea }
 */
/*
  FACP: Length=132, Revision=2, Checksum=210,
	OEMID=MATBIO, OEM Table ID=CFR4-3, OEM Revision=0x6040000,
	Creator ID=MEI, Creator Revision=0x1
 	FACS=0x3f6e8fc0, DSDT=0x3f6e3930
	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
	CST_CNT=0x85
	P_LVL2_LAT=1 us, P_LVL3_LAT=85 us
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	IAPC_BOOT_ARCH={8042}
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,RESET_REG}
	RESET_REG=0xb2:0[8] (IO), RESET_VALUE=0xb4
 */
/*
  FACS:	Length=64, HwSig=0x00000000, Firm_Wake_Vec=0x00000000
	Global_Lock=
	Flags=
	Version=0
 */
/*
  DSDT: Length=17736, Revision=1, Checksum=142,
	OEMID=MATBIO, OEM Table ID=CFR4-3, OEM Revision=0x6040000,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
/*
  APIC: Length=98, Revision=1, Checksum=8,
	OEMID=MATBIO, OEM Table ID=CFR4-3, OEM Revision=0x6040000,
	Creator ID=MEI, Creator Revision=0x1
	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={DISABLED}
	APIC ID=1

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

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

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

	Type=Local NMI
	ACPI CPU=0
	LINT Pin=1
	Flags={Polarity=active-hi, Trigger=edge}
 */
/*
  BOOT: Length=40, Revision=1, Checksum=154,
	OEMID=PTLTD, OEM Table ID=$SBFTBL$, OEM Revision=0x6040000,
	Creator ID= LTP, Creator Revision=0x1
 */
/*
  MCFG: Length=60, Revision=1, Checksum=86,
	OEMID=MATBIO, OEM Table ID=CFR4-3, OEM Revision=0x6040000,
	Creator ID=MEI, Creator Revision=0x1

	Base Address= 0x00000000e0000000
	Segment Group= 0x0000
	Start Bus= 0
	End Bus= 255
 */
/*
  SSDT: Length=565, Revision=1, Checksum=12,
	OEMID=PmRef, OEM Table ID=Cpu0Ist, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20030224
 */
/*
  SSDT: Length=478, Revision=1, Checksum=128,
	OEMID=PmRef, OEM Table ID=Cpu0Cst, OEM Revision=0x3001,
	Creator ID=INTL, Creator Revision=0x20030224
 */
/*
  SSDT: Length=543, Revision=1, Checksum=35,
	OEMID=PmRef, OEM Table ID=CpuPm, OEM Revision=0x3000,
	Creator ID=INTL, Creator Revision=0x20030224
 */
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20041119
 *
 * Disassembly of /tmp/acpidump.kLOzxp, Wed Jun 20 01:43:45 2007
 */
DefinitionBlock ("DSDT.aml", "DSDT", 1, "MATBIO", "CFR4-3", 100925440)
{
    Scope (_SB)
    {
        OperationRegion (SMI0, SystemIO, 0x0000FE00, 0x00000002)
        Field (SMI0, AnyAcc, NoLock, Preserve)
        {
            SMIC,   8
        }

        OperationRegion (SMI1, SystemMemory, 0x3F6E8D4D, 0x00000200)
        Field (SMI1, AnyAcc, NoLock, Preserve)
        {
            BCMD,   8, 
            DID,    32, 
            INFO,   4056
        }

        Field (SMI1, AnyAcc, NoLock, Preserve)
        {
            Offset (0x05), 
            INF,    8
        }

        Field (SMI1, AnyAcc, NoLock, Preserve)
        {
            Offset (0x05), 
            INFD,   32
        }

        Field (SMI1, AnyAcc, NoLock, Preserve)
        {
            Offset (0x05), 
            INFP,   128
        }

        Mutex (PSMX, 0x01)
        Method (PSRV, 5, Serialized)
        {
            Acquire (PSMX, 0xFFFF)
            If (Arg2)
            {
                Store (Arg3, INFO)
            }

            Store (Arg1, DID)
            Store (Arg0, BCMD)
            Store (0x00, SMIC)
            If (LEqual (Arg4, 0x00))
            {
                Store (Zero, Local0)
            }
            Else
            {
                If (LEqual (Arg4, 0x01))
                {
                    Store (INF, Local0)
                }
                Else
                {
                    If (LEqual (Arg4, 0x03))
                    {
                        Store (INFD, Local0)
                    }
                    Else
                    {
                        If (LEqual (Arg4, 0x04))
                        {
                            Store (INFP, Local0)
                        }
                        Else
                        {
                            Store (INFO, Local0)
                        }
                    }
                }
            }

            Release (PSMX)
            Return (Local0)
        }

        Method (ECWR, 2, NotSerialized)
        {
            And (Arg0, 0xFF, Local0)
            And (Arg1, 0xFF, Local1)
            PSRV (0x99, Add (Local0, ShiftLeft (Local1, 0x10)), 0x00, 0x00, 0x00)
        }

        Method (RRTC, 1, NotSerialized)
        {
            And (Arg0, 0xFF, Local0)
            Return (PSRV (0x92, 0x05, 0x01, Local0, 0x01))
        }
    }

    Method (MIN, 2, NotSerialized)
    {
        If (LLess (Arg0, Arg1))
        {
            Return (Arg0)
        }
        Else
        {
            Return (Arg1)
        }
    }

    Method (SLEN, 1, NotSerialized)
    {
        Return (SizeOf (Arg0))
    }

    Method (S2BF, 1, Serialized)
    {
        Add (SLEN (Arg0), One, Local0)
        Name (BUFF, Buffer (Local0) {})
        Store (Arg0, BUFF)
        Return (BUFF)
    }

    Method (SCMP, 2, NotSerialized)
    {
        Store (S2BF (Arg0), Local0)
        Store (S2BF (Arg1), Local1)
        Store (Zero, Local4)
        Store (SLEN (Arg0), Local5)
        Store (SLEN (Arg1), Local6)
        Store (MIN (Local5, Local6), Local7)
        While (LLess (Local4, Local7))
        {
            Store (DerefOf (Index (Local0, Local4)), Local2)
            Store (DerefOf (Index (Local1, Local4)), Local3)
            If (LGreater (Local2, Local3))
            {
                Return (One)
            }
            Else
            {
                If (LLess (Local2, Local3))
                {
                    Return (Ones)
                }
            }

            Increment (Local4)
        }

        If (LLess (Local4, Local5))
        {
            Return (One)
        }
        Else
        {
            If (LLess (Local4, Local6))
            {
                Return (Ones)
            }
            Else
            {
                Return (Zero)
            }
        }
    }

    Name (OSID, 0x00)
    Method (CKOS, 0, NotSerialized)
    {
        If (OSID)
        {
            Return (OSID)
        }

        If (CondRefOf (\_OSI, Local0))
        {
            Store (0x82, OSID)
        }
        Else
        {
            If (LEqual (SCMP (\_OS, "Microsoft Windows NT"), Zero))
            {
                Store (0x81, OSID)
            }
            Else
            {
                If (LEqual (SCMP (\_OS, "Microsoft Windows"), Zero))
                {
                    Store (0x01, OSID)
                }
                Else
                {
                    If (LEqual (SCMP (\_OS, "Microsoft WindowsME: Millennium Edition"), Zero))
                    {
                        Store (0x02, OSID)
                    }
                    Else
                    {
                        Store (0xFF, OSID)
                    }
                }
            }
        }

        Return (OSID)
    }

    Scope (\)
    {
        Name (WTHT, Zero)
        Name (APIC, One)
        Name (GV3E, One)
        Name (HTTE, Zero)
    }

    Method (GINI, 0, NotSerialized)
    {
        Store (\_SB.PSRV (0xC9, 0x01, 0x01, 0x01, 0x03), APIC)
        Store (\_SB.PSRV (0xC9, 0x01, 0x01, 0x02, 0x03), GV3E)
        Store (\_SB.PSRV (0xC9, 0x01, 0x01, 0x03, 0x03), HTTE)
    }

    Method (PNOT, 0, Serialized)
    {
        If (HTTE)
        {
            If (LEqual (And (PDC0, 0x0A), 0x0A))
            {
                Notify (\_PR.CPU0, 0x80)
            }

            If (LEqual (And (PDC1, 0x0A), 0x0A))
            {
                Notify (\_PR.CPU1, 0x80)
            }
        }
        Else
        {
            Notify (\_PR.CPU0, 0x80)
            Sleep (0x64)
            Notify (\_PR.CPU0, 0x81)
        }

        Notify (\_SB.BATA, 0x80)
    }

    Scope (\)
    {
        Name (GTF0, Buffer (0x07) {})
        Name (GTF2, Buffer (0x07) {})
        Name (IDEM, Zero)
    }

    Method (AINI, 0, NotSerialized)
    {
        Store (\_SB.PSRV (0x94, 0x01, 0x01, 0x01, 0x03), IDEM)
    }

    Method (GETP, 1, Serialized)
    {
        If (LEqual (And (Arg0, 0x09), 0x00))
        {
            Return (0xFFFFFFFF)
        }

        If (LEqual (And (Arg0, 0x09), 0x08))
        {
            Return (0x0384)
        }

        ShiftRight (And (Arg0, 0x0300), 0x08, Local0)
        ShiftRight (And (Arg0, 0x3000), 0x0C, Local1)
        Return (Multiply (0x1E, Subtract (0x09, Add (Local0, Local1))))
    }

    Method (GDMA, 5, Serialized)
    {
        If (Arg0)
        {
            If (LAnd (Arg1, Arg4))
            {
                Return (0x14)
            }

            If (LAnd (Arg2, Arg4))
            {
                Return (Multiply (Subtract (0x04, Arg3), 0x0F))
            }

            Return (Multiply (Subtract (0x04, Arg3), 0x1E))
        }

        Return (0xFFFFFFFF)
    }

    Method (GETT, 1, Serialized)
    {
        Return (Multiply (0x1E, Subtract (0x09, Add (And (ShiftRight (Arg0, 0x02), 0x03), And (Arg0, 0x03)))))
    }

    Method (GETF, 3, Serialized)
    {
        Name (TMPF, 0x00)
        If (Arg0)
        {
            Or (TMPF, 0x01, TMPF)
        }

        If (And (Arg2, 0x02))
        {
            Or (TMPF, 0x02, TMPF)
        }

        If (Arg1)
        {
            Or (TMPF, 0x04, TMPF)
        }

        If (And (Arg2, 0x20))
        {
            Or (TMPF, 0x08, TMPF)
        }

        If (And (Arg2, 0x4000))
        {
            Or (TMPF, 0x10, TMPF)
        }

        Return (TMPF)
    }

    Method (SETP, 3, Serialized)
    {
        If (LGreater (Arg0, 0xF0))
        {
            Return (0x08)
        }
        Else
        {
            If (And (Arg1, 0x02))
            {
                If (LAnd (LNot (LGreater (Arg0, 0x78)), And (Arg2, 0x02)))
                {
                    Return (0x2301)
                }

                If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
                {
                    Return (0x2101)
                }
            }

            Return (0x1001)
        }
    }

    Method (SDMA, 1, Serialized)
    {
        If (LNot (LGreater (Arg0, 0x14)))
        {
            Return (0x01)
        }

        If (LNot (LGreater (Arg0, 0x1E)))
        {
            Return (0x02)
        }

        If (LNot (LGreater (Arg0, 0x2D)))
        {
            Return (0x01)
        }

        If (LNot (LGreater (Arg0, 0x3C)))
        {
            Return (0x02)
        }

        If (LNot (LGreater (Arg0, 0x5A)))
        {
            Return (0x01)
        }

        Return (0x00)
    }

    Method (SETT, 3, Serialized)
    {
        If (And (Arg1, 0x02))
        {
            If (LAnd (LNot (LGreater (Arg0, 0x78)), And (Arg2, 0x02)))
            {
                Return (0x0B)
            }

            If (LAnd (LNot (LGreater (Arg0, 0xB4)), And (Arg2, 0x01)))
            {
                Return (0x09)
            }
        }

        Return (0x04)
    }

    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
    Field (RCRB, DWordAcc, Lock, Preserve)
    {
        Offset (0x1000), 
        Offset (0x3000), 
        Offset (0x3404), 
        HPAS,   2, 
            ,   5, 
        HPAE,   1, 
        Offset (0x3418), 
            ,   1, 
        PATD,   1, 
        SATD,   1, 
        SMBD,   1, 
        AZAD,   1, 
        A97D,   1, 
        Offset (0x341A), 
        RP1D,   1, 
        RP2D,   1, 
        RP3D,   1, 
        RP4D,   1
    }

    Scope (\)
    {
        Name (PWRS, 0x01)
    }

    Scope (_SB)
    {
        Method (ECPF, 3, NotSerialized)
        {
            If (LEqual (Arg0, 0x0100))
            {
                Store (\_SB.PCI0.LPCB.EC0.EC01 (), PWRS)
                Return (PWRS)
            }

            If (LEqual (Arg0, 0x0101))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC02 (Arg1))
            }

            If (LEqual (Arg0, 0x0110))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC03 (Arg1, Arg2))
            }

            If (LEqual (Arg0, 0x0111))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC04 (Arg1, Arg2))
            }

            If (LEqual (Arg0, 0x0112))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC05 (Arg1, Arg2))
            }

            If (LEqual (Arg0, 0x0200))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC06 ())
            }

            If (LEqual (Arg0, 0x0201))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC07 ())
            }

            If (LEqual (Arg0, 0x0202))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC08 ())
            }

            If (LEqual (Arg0, 0x0203))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC09 ())
            }

            If (LEqual (Arg0, 0x0204))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC0A ())
            }

            If (LEqual (Arg0, 0x0205))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC0B (Arg1))
            }

            If (LEqual (Arg0, 0x0206))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC0C (Arg1))
            }

            If (LEqual (Arg0, 0x0207))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC0D (Arg1))
            }

            If (LEqual (Arg0, 0x0208))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC0E (Arg1))
            }

            If (LEqual (Arg0, 0x0209))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC0F (Arg1))
            }

            If (LEqual (Arg0, 0x020A))
            {
                Return (\_SB.PCI0.LPCB.EC0.EC10 (Arg1, Arg2))
            }

            If (LEqual (Arg0, 0x0215))
            {
                Return (\_SB.PCI0.LPCB.EC0.Z000 ())
            }

            Return (0xFFFFFFFF)
        }
    }

    Scope (\_SB)
    {
        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))
            Name (_UID, 0x00)
            Method (_LID, 0, NotSerialized)
            {
                Return (\_SB.ECPF (0x0200, 0x00, 0x00))
            }

            Name (_PRW, Package (0x02)
            {
                0x1B, 
                0x04
            })
            Method (_PSW, 1, NotSerialized)
            {
                \_SB.ECPF (0x0207, Arg0, 0x00)
            }
        }
    }

    Scope (\_SB)
    {
        Name (\_SB.BAST, 0x00)
        Device (BATA)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, 0x00)
            Name (A_PU, 0xFF)
            Method (_BIF, 0, Serialized)
            {
                Name (BIFR, Package (0x0D)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00, 
                    Buffer (0x10) {}, 
                    Buffer (0x10) {}, 
                    Buffer (0x10) {}, 
                    Buffer (0x10) {}
                })
                Store (\_SB.ECPF (0x0111, 0x00, 0x00), A_PU)
                Store (A_PU, Index (BIFR, 0x00))
                If (A_PU)
                {
                    Store (0x01, Local1)
                    While (LNot (LGreater (Local1, 0x08)))
                    {
                        Store (\_SB.ECPF (0x0111, 0x00, Local1), Index (BIFR, Local1))
                        Increment (Local1)
                    }
                }
                Else
                {
                    Store (0x01, Local1)
                    While (LNot (LGreater (Local1, 0x08)))
                    {
                        Store (\_SB.ECPF (0x0111, 0x00, Local1), Local2)
                        If (LAnd (LNot (LEqual (Local2, 0xFFFFFFFF)), LAnd (LNot (LEqual (Local1, 0x03)), LNot (LEqual (Local1, 0x04)))))
                        {
                            Multiply (Local2, 0x0A, Local2)
                        }

                        Store (Local2, Index (BIFR, Local1))
                        Increment (Local1)
                    }
                }

                Store (\_SB.ECPF (0x0111, 0x00, 0x09), Index (BIFR, 0x09))
                Store (\_SB.ECPF (0x0111, 0x00, 0x0A), Index (BIFR, 0x0A))
                Store (\_SB.ECPF (0x0111, 0x00, 0x0B), Index (BIFR, 0x0B))
                Store ("Panasonic", Index (BIFR, 0x0C))
                Return (BIFR)
            }

            Method (_BST, 0, Serialized)
            {
                Name (BSTR, Package (0x04)
                {
                    0x00, 
                    0x00, 
                    0x00, 
                    0x00
                })
                Store (\_SB.ECPF (0x0110, 0x00, 0x00), Index (BSTR, 0x00))
                If (LGreater (A_PU, 0x01))
                {
                    Store (\_SB.ECPF (0x0111, 0x00, 0x00), A_PU)
                }

                If (A_PU)
                {
                    Store (\_SB.ECPF (0x0110, 0x00, 0x01), Index (BSTR, 0x01))
                    Store (\_SB.ECPF (0x0110, 0x00, 0x02), Index (BSTR, 0x02))
                }
                Else
                {
                    Store (\_SB.ECPF (0x0110, 0x00, 0x01), Local0)
                    If (LEqual (Local0, 0xFFFFFFFF))
                    {
                        Store (Local0, Index (BSTR, 0x01))
                    }
                    Else
                    {
                        Store (Multiply (Local0, 0x0A), Index (BSTR, 0x01))
                    }

                    Store (\_SB.ECPF (0x0110, 0x00, 0x02), Local0)
                    If (LEqual (Local0, 0xFFFFFFFF))
                    {
                        Store (Local0, Index (BSTR, 0x02))
                    }
                    Else
                    {
                        Store (Multiply (Local0, 0x0A), Index (BSTR, 0x02))
                    }
                }

                Store (\_SB.ECPF (0x0110, 0x00, 0x03), Index (BSTR, 0x03))
                Return (BSTR)
            }

            Name (_PCL, Package (0x01)
            {
                \_SB
            })
            Method (_STA, 0, Serialized)
            {
                If (LEqual (\_SB.ECPF (0x0101, 0x00, 0x00), 0x01))
                {
                    Return (0x1F)
                }
                Else
                {
                    Return (0x0F)
                }
            }

            Method (_BTP, 1, NotSerialized)
            {
                If (LGreater (A_PU, 0x01))
                {
                    Store (\_SB.ECPF (0x0111, 0x00, 0x00), A_PU)
                }

                If (A_PU)
                {
                    Store (Arg0, Local1)
                }
                Else
                {
                    Store (Divide (Arg0, 0x0A, ), Local1)
                }

                If (LNot (LLess (Local1, 0x00010000)))
                {
                    Store (Zero, Local0)
                }
                Else
                {
                    Store (Local1, Local0)
                }

                \_SB.ECPF (0x0112, 0x00, Local0)
            }
        }
    }

    Scope (\_SB)
    {
        Device (AC)
        {
            Name (_HID, "ACPI0003")
            Name (_UID, 0x00)
            Method (_PSR, 0, NotSerialized)
            {
                Return (\_SB.ECPF (0x0100, 0x00, 0x00))
            }

            Name (_PCL, Package (0x01)
            {
                \_SB
            })
        }

        Method (ADAC, 0, Serialized)
        {
            Store (\_SB.ECPF (0x0100, 0x00, 0x00), Local0)
            \_SB.PSRV (0xC9, 0x03, 0x01, Local0, 0x00)
            PNOT ()
        }
    }

    Scope (\_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))
            Name (_UID, 0x00)
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }
        }
    }

    Scope (\_SB)
    {
        Device (HKEY)
        {
            Name (_HID, EisaId ("MAT0019"))
            Name (SIFR, Package (0x0E)
            {
                0x01, 
                0x00, 
                0x15, 
                0x01, 
                0xFF, 
                0x15, 
                0x01, 
                0x7F, 
                0x00, 
                0x01, 
                0x00, 
                0x00, 
                0x0A, 
                0xFF
            })
            Name (HDAT, Buffer (0x20) {})
            Name (HINP, Zero)
            Name (HOUP, Zero)
            Mutex (HDMX, 0x00)
            Method (_STA, 0, NotSerialized)
            {
                Return (0x0F)
            }

            Method (_INI, 0, NotSerialized)
            {
                HRES ()
            }

            Method (HRES, 0, Serialized)
            {
                Acquire (HDMX, 0xFFFF)
                Or (0x01000000, 0x00, Local1)
                Store (\_SB.PSRV (0x96, 0x19003434, 0x01, Local1, 0x03), Local0)
                Store (And (ShiftRight (Local0, 0x08), 0xFF), Index (SIFR, 0x07))
                Store (And (Local0, 0xFF), Index (SIFR, 0x04))
                Or (0x02000000, 0x00, Local1)
                Store (And (\_SB.PSRV (0x96, 0x19003434, 0x01, Local1, 0x01), 0x01), Index (SIFR, 0x08))
                Store (\_SB.ECPF (0x0215, 0x00, 0x00), Local0)
                Or (Local0, 0x01, Local0)
                Or (Local0, 0x02, Local0)
                Store (Local0, Index (SIFR, 0x0A))
                Release (HDMX)
            }

            Method (HSAV, 0, Serialized)
            {
                Acquire (HDMX, 0xFFFF)
                Store (DerefOf (Index (SIFR, 0x04)), Local0)
                Add (ShiftLeft (DerefOf (Index (SIFR, 0x07)), 0x08), Local0, Local0)
                Or (0x01000000, 0x00010000, Local1)
                Or (Local1, Local0, Local1)
                \_SB.PSRV (0x96, 0x19003434, 0x01, Local1, 0x03)
                Store (And (DerefOf (Index (SIFR, 0x08)), 0x01), Local0)
                Or (0x02000000, 0x00010000, Local1)
                Or (Local1, Local0, Local1)
                \_SB.PSRV (0x96, 0x19003434, 0x01, Local1, 0x01)
                Release (HDMX)
            }

            Method (HIND, 1, Serialized)
            {
                Acquire (HDMX, 0xFFFF)
                Store (Arg0, Index (HDAT, HINP))
                Increment (HINP)
                Divide (HINP, 0x20, HINP)
                If (LEqual (HINP, HOUP))
                {
                    Increment (HOUP)
                    Divide (HOUP, 0x20, HOUP)
                }

                Release (HDMX)
            }

            Method (HINF, 0, Serialized)
            {
                Acquire (HDMX, 0xFFFF)
                If (LEqual (HINP, HOUP))
                {
                    Store (Zero, Local0)
                }
                Else
                {
                    Store (DerefOf (Index (HDAT, HOUP)), Local0)
                    Increment (HOUP)
                    Divide (HOUP, 0x20, HOUP)
                }

                Store (LNot (LEqual (HINP, HOUP)), Local1)
                Release (HDMX)
                If (Local1)
                {
                    Notify (\_SB.HKEY, 0x80)
                }

                Return (Local0)
            }

            Method (SQTY, 0, NotSerialized)
            {
                Return (0x0E)
            }

            Method (SINF, 0, NotSerialized)
            {
                Store (\_SB.ECPF (0x0215, 0x00, 0x00), Local0)
                Or (Local0, 0x01, Local0)
                Or (Local0, 0x02, Local0)
                Store (Local0, Index (SIFR, 0x0A))
                Return (SIFR)
            }

            Method (SSET, 2, Serialized)
            {
                If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x07)))
                {
                    Store (Arg1, Index (SIFR, Arg0))
                    Or (0x04000000, 0x00020000, Local0)
                    Or (Local0, Arg1, Local0)
                    \_SB.PSRV (0x96, 0x19003434, 0x01, Local0, 0x03)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Store (Arg1, Index (SIFR, Arg0))
                    \_SB.ECPF (0x0209, Arg1, 0x00)
                }

                If (LEqual (Arg0, 0x80))
                {
                    If (LEqual (Arg1, 0x01))
                    {
                        Store (0xE201, Local0)
                    }
                    Else
                    {
                        Store (0xE200, Local0)
                    }

                    \_SB.ECPF (0x0208, Arg1, 0x00)
                }

                If (LEqual (Arg0, 0x0D))
                {
                    Store (Arg1, Index (SIFR, Arg0))
                    Or (0x04000000, 0x00030000, Local0)
                    Or (Local0, Arg1, Local0)
                    \_SB.PSRV (0x96, 0x19003434, 0x01, Local0, 0x03)
                }
            }

            Method (HACT, 0, NotSerialized)
            {
                Notify (PWRB, 0x80)
            }
        }
    }

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

    Scope (\_TZ)
    {
        ThermalZone (TZC)
        {
            Name (INIT, Zero)
            Name (CSCP, Zero)
            Name (PSV, 0x0DCA)
            Name (CRT, 0x0E2E)
            Method (INIP, 0, NotSerialized)
            {
                If (LEqual (INIT, Zero))
                {
                    Store (\_SB.ECPF (0x0204, Zero, Zero), CRT)
                    Store (\_SB.ECPF (0x0203, Zero, Zero), PSV)
                    Store (\_SB.ECPF (0x0202, Zero, Zero), _TC2)
                    Store (One, INIT)
                }
            }

            Name (_TC1, Zero)
            Name (_TC2, 0x0C)
            Name (_TSP, 0x28)
            Method (_TMP, 0, NotSerialized)
            {
                Store (\_SB.ECPF (0x0201, Zero, Zero), Local0)
                If (LGreater (Local0, CRT))
                {
                    \_SB.PSRV (0x9C, 0x00, 0x00, 0x00, 0x00)
                }

                Return (Local0)
            }

            Method (_PSV, 0, NotSerialized)
            {
                \_TZ.TZC.INIP ()
                Return (PSV)
            }

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

                Return (Package (0x01)
                {
                    \_PR.CPU0
                })
            }

            Method (_CRT, 0, NotSerialized)
            {
                \_TZ.TZC.INIP ()
                Return (CRT)
            }

            Method (_SCP, 1, NotSerialized)
            {
                Store (Arg0, CSCP)
                Store (Zero, INIT)
                \_TZ.TZC.INIP ()
                Notify (\_TZ.TZC, 0x81)
            }
        }
    }

    Scope (\_SI)
    {
        Method (_SST, 1, NotSerialized)
        {
            If (LAnd (LNot (LEqual (Arg0, 0x04)), LNot (LEqual (Arg0, 0x00))))
            {
                \_SB.PSRV (0x92, 0x01, 0x01, Arg0, 0x00)
            }
        }
    }

    Name (_S0, Package (0x03)
    {
        0x00, 
        0x00, 
        0x00
    })
    Name (_S3, Package (0x03)
    {
        0x05, 
        0x05, 
        0x00
    })
    Name (_S4, Package (0x03)
    {
        0x06, 
        0x06, 
        0x00
    })
    Name (_S5, Package (0x03)
    {
        0x07, 
        0x07, 
        0x00
    })
    Name (FWSO, "FWSO")
    Method (_WAK, 1, NotSerialized)
    {
        \_SB.PSRV (0x92, 0x03, 0x01, \CKOS (), 0x00)
        If (LOr (LEqual (Arg0, 0x04), LEqual (Arg0, 0x03)))
        {
            Store (\_SB.PSRV (0x93, 0x01, 0x00, 0x00, 0x03), Local0)
            If (LOr (LEqual (Local0, 0x06), LEqual (Local0, 0x01)))
            {
                Notify (\_SB.PWRB, 0x02)
            }
        }

        If (LAnd (LNot (LLess (Arg0, 0x03)), LNot (LGreater (Arg0, 0x05))))
        {
            \_SB.HKEY.HRES ()
        }

        \_SB.ECPF (0x0206, 0x00, 0x00)
        Store (\_SB.ECPF (0x0101, 0x00, 0x00), Local0)
        If (XOr (\_SB.BAST, Local0))
        {
            If (LEqual (Local0, 0x01))
            {
                Notify (\_SB.BATA, 0x00)
            }
            Else
            {
                Notify (\_SB.BATA, 0x01)
            }
        }

        \_SB.ADAC ()
        \_SB.PSRV (0xB8, 0x01, 0x00, 0x00, 0x00)
        Return (Package (0x02)
        {
            0x00, 
            0x00
        })
    }

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

        Method (_L1B, 0, NotSerialized)
        {
            Notify (\_SB.LID, 0x02)
        }
    }

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

        Device (PCI0)
        {
            Method (_INI, 0, NotSerialized)
            {
                \_SB.PSRV (0x92, 0x03, 0x01, \CKOS (), 0x00)
                GINI ()
                AINI ()
                \_SB.PSRV (0xB8, 0x01, 0x00, 0x00, 0x00)
            }

            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,
                    0x0000,
                    0x00FF,
                    0x0000,
                    0x0100, 0x00)
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,
                    0x00000000,
                    0x00000CF7,
                    0x00000000,
                    0x00000CF8, 0x00)
                IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08)
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,
                    0x00000D00,
                    0x0000FFFF,
                    0x00000000,
                    0x0000F300, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000A0000,
                    0x000BFFFF,
                    0x00000000,
                    0x00020000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C0000,
                    0x000C3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C4000,
                    0x000C7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000C8000,
                    0x000CBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000CC000,
                    0x000CFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D0000,
                    0x000D3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D4000,
                    0x000D7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000D8000,
                    0x000DBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000DC000,
                    0x000DFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E0000,
                    0x000E3FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E4000,
                    0x000E7FFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000E8000,
                    0x000EBFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000EC000,
                    0x000EFFFF,
                    0x00000000,
                    0x00004000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x000F0000,
                    0x000FFFFF,
                    0x00000000,
                    0x00010000, 0x00)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,
                    0x00000000,
                    0xFEBFFFFF,
                    0x00000000,
                    0x00000000, 0x00)
            })
            Method (_CRS, 0, Serialized)
            {
                If (PM1L)
                {
                    CreateDWordField (BUF0, 0x80, C0LN)
                    Store (Zero, C0LN)
                }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                CreateDWordField (BUF0, 0x01D3, M1MN)
                CreateDWordField (BUF0, 0x01D7, M1MX)
                CreateDWordField (BUF0, 0x01DF, M1LN)
                ShiftLeft (TOUD, 0x1B, M1MN)
                Add (Subtract (M1MX, M1MN), 0x01, M1LN)
                Return (BUF0)
            }

            Device (OPRM)
            {
                Name (_HID, EisaId ("PNP0C02"))
                Name (_UID, 0x1000)
                Name (RSRC, ResourceTemplate ()
                {
                    Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                })
                Method (ISSD, 1, NotSerialized)
                {
                    Store (0x03, Local0)
                    If (And (Arg0, 0x4000))
                    {
                        Store (0x30, Local0)
                    }

                    Store (ShiftRight (Subtract (Arg0, 0x000C0000), 0x0F), Local1)
                    If (LEqual (Local1, 0x00))
                    {
                        Add (Multiply (\_SB.PCI0.PM1H, 0x10), \_SB.PCI0.PM1L, Local2)
                    }

                    If (LEqual (Local1, 0x01))
                    {
                        Add (Multiply (\_SB.PCI0.PM2H, 0x10), \_SB.PCI0.PM2L, Local2)
                    }

                    If (LEqual (Local1, 0x02))
                    {
                        Add (Multiply (\_SB.PCI0.PM3H, 0x10), \_SB.PCI0.PM3L, Local2)
                    }

                    If (LEqual (Local1, 0x03))
                    {
                        Add (Multiply (\_SB.PCI0.PM4H, 0x10), \_SB.PCI0.PM4L, Local2)
                    }

                    If (LEqual (Local1, 0x04))
                    {
                        Add (Multiply (\_SB.PCI0.PM5H, 0x10), \_SB.PCI0.PM5L, Local2)
                    }

                    If (LEqual (Local1, 0x05))
                    {
                        Add (Multiply (\_SB.PCI0.PM6H, 0x10), \_SB.PCI0.PM6L, Local2)
                    }

                    Return (And (Local2, Local0))
                }

                Method (ROMS, 1, NotSerialized)
                {
                    If (ISSD (Arg0))
                    {
                        OperationRegion (XROM, SystemMemory, Arg0, 0x04)
                        Field (XROM, ByteAcc, NoLock, Preserve)
                        {
                            SIG,    16, 
                            SIZ,    8
                        }

                        If (LEqual (SIG, 0xAA55))
                        {
                            Return (Multiply (SIZ, 0x0200))
                        }
                    }

                    Return (Zero)
                }

                Method (MRSC, 2, Serialized)
                {
                    Name (BUFF, Buffer (Subtract (SizeOf (Arg0), 0x02)) {})
                    Store (Zero, Local0)
                    While (LLess (Local0, Subtract (SizeOf (Arg0), 0x02)))
                    {
                        Store (DerefOf (Index (Arg0, Local0)), Index (BUFF, Local0))
                        Increment (Local0)
                    }

                    Concatenate (BUFF, Arg1, Local1)
                    Return (Local1)
                }

                Method (RSVA, 3, Serialized)
                {
                    Name (FXRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0x00000000, 0x00000000)
                    })
                    CreateDWordField (FXRS, 0x04, ROMB)
                    CreateDWordField (FXRS, 0x08, ROML)
                    Store (Arg1, ROMB)
                    Subtract (Arg2, Arg1, ROML)
                    CreateDWordField (Arg0, 0x04, ABAS)
                    CreateDWordField (Arg0, 0x08, ALEN)
                    If (LAnd (LEqual (ABAS, Zero), LEqual (ALEN, Zero)))
                    {
                        Return (FXRS)
                    }

                    Return (MRSC (Arg0, FXRS))
                }

                Method (ALAD, 2, NotSerialized)
                {
                    Return (Multiply (Divide (Subtract (Add (Arg0, Arg1), One), Arg1, ), Arg1))
                }

                Method (OPRR, 1, NotSerialized)
                {
                    Store (Arg0, Local7)
                    Store (0x000C0000, Local0)
                    While (LLess (Local0, 0x000E0000))
                    {
                        Store (ROMS (Local0), Local1)
                        If (LEqual (Local1, Zero))
                        {
                            Store (ALAD (Local0, 0x4000), Local2)
                            Store (ALAD (Local0, 0x0800), Local3)
                            If (LNot (LEqual (Local0, Local2)))
                            {
                                If (LAnd (LNot (LEqual (Local0, Local3)), ROMS (Local3)))
                                {
                                    Store (RSVA (Local7, Local0, Local3), Local7)
                                    Store (Local3, Local0)
                                }
                                Else
                                {
                                    Store (RSVA (Local7, Local0, Local2), Local7)
                                    Store (0x000E0000, Local0)
                                }
                            }
                            Else
                            {
                                Store (0x000E0000, Local0)
                            }
                        }
                        Else
                        {
                            Add (Local0, Local1, Local0)
                        }
                    }

                    Return (Local7)
                }

                Method (_CRS, 0, NotSerialized)
                {
                    Return (OPRR (RSRC))
                }
            }

            Method (_PRT, 0, NotSerialized)
            {
                If (GPIC)
                {
                    Return (PIC4)
                }
                Else
                {
                    Return (PIC5)
                }
            }

            Name (PIC4, Package (0x0A)
            {
                Package (0x04)
                {
                    0x0002FFFF, 
                    0x00, 
                    0x00, 
                    0x10
                }, 

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

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

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

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

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

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

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

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

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x03, 
                    0x00, 
                    0x10
                }
            })
            Name (PIC5, Package (0x0A)
            {
                Package (0x04)
                {
                    0x0002FFFF, 
                    0x00, 
                    \_SB.PCI0.LPCB.LNKA, 
                    0x00
                }, 

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

                Package (0x04)
                {
                    0x001DFFFF, 
                    0x01, 
                    \_SB.PCI0.LPCB.LNKD, 
                    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.LNKB, 
                    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
                }, 

                Package (0x04)
                {
                    0x001FFFFF, 
                    0x03, 
                    \_SB.PCI0.LPCB.LNKA, 
                    0x00
                }
            })
            Scope (\)
            {
                Name (CSTE, 0x00)
                Name (NSTE, 0x00)
            }

            Device (GFX0)
            {
                Name (_ADR, 0x00020000)
                Method (_DOS, 1, NotSerialized)
                {
                    Store (And (Arg0, 0x03), Local0)
                    \_SB.PSRV (0xB9, 0x20, 0x01, Local0, 0x00)
                }

                Method (_DOD, 0, NotSerialized)
                {
                    Name (TMP2, Package (0x02)
                    {
                        0x80000100, 
                        0x80000410
                    })
                    Return (TMP2)
                }

                Device (CRT1)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        Store (0x80000100, Local0)
                        Return (And (0xFFFF, Local0))
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        Store (\_SB.PSRV (0xB9, 0x01, 0x00, 0x00, 0x03), Local0)
                        If (And (Local0, 0x0101))
                        {
                            Return (0x1F)
                        }
                        Else
                        {
                            Return (0x1D)
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Store (NSTE, Local0)
                        If (And (Local0, 0x0101))
                        {
                            Return (0x01)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (LCD1)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        Store (0x80000410, Local0)
                        Return (And (0xFFFF, Local0))
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        Store (\_SB.PSRV (0xB9, 0x01, 0x00, 0x00, 0x03), Local0)
                        If (And (Local0, 0x0808))
                        {
                            Return (0x1F)
                        }
                        Else
                        {
                            Return (0x1D)
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Store (NSTE, Local0)
                        If (And (Local0, 0x0808))
                        {
                            Return (0x01)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }
            }

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

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

            Device (USB3)
            {
                Name (_ADR, 0x001D0002)
            }

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

            Device (EHCI)
            {
                Name (_ADR, 0x001D0007)
            }

            Device (PCIB)
            {
                Name (_ADR, 0x001E0000)
                Device (CDB1)
                {
                    Name (_ADR, 0x00050000)
                }

                Device (LAN)
                {
                    Name (_ADR, 0x00010000)
                    Name (_PRW, Package (0x02)
                    {
                        0x0B, 
                        0x04
                    })
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (GPIC)
                    {
                        Return (PIC6)
                    }
                    Else
                    {
                        Return (PIC7)
                    }
                }

                Name (PIC6, Package (0x06)
                {
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x00, 
                        0x00, 
                        0x16
                    }, 

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

                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x02, 
                        0x00, 
                        0x17
                    }, 

                    Package (0x04)
                    {
                        0x0001FFFF, 
                        0x00, 
                        0x00, 
                        0x13
                    }, 

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

                    Package (0x04)
                    {
                        0x0004FFFF, 
                        0x01, 
                        0x00, 
                        0x13
                    }
                })
                Name (PIC7, Package (0x06)
                {
                    Package (0x04)
                    {
                        0x0005FFFF, 
                        0x00, 
                        \_SB.PCI0.LPCB.LNKG, 
                        0x00
                    }, 

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

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

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

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

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

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

            Device (MODM)
            {
                Name (_ADR, 0x001E0003)
                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
                Name (MPSW, 0x00)
                Method (_PSW, 1, NotSerialized)
                {
                    Store (ShiftLeft (0x00, 0x18), Local0)
                    Or (Local0, And (_ADR, 0x00FF0000), Local0)
                    Or (Local0, ShiftLeft (And (_ADR, 0xFF), 0x08), Local0)
                    Or (Local0, Arg0, Local0)
                    Store (Local0, MPSW)
                }
            }

            Device (LPCB)
            {
                Name (_ADR, 0x001F0000)
                OperationRegion (LPC0, PCI_Config, 0x40, 0xC0)
                Field (LPC0, AnyAcc, NoLock, Preserve)
                {
                    PMBA,   16, 
                    Offset (0x08), 
                    GPBA,   16, 
                    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 (0x44), 
                    GEN1,   16, 
                    Offset (0x48), 
                    GEN2,   16, 
                    Offset (0x60), 
                        ,   2, 
                    CREN,   1, 
                    Offset (0xB0), 
                    RCBA,   32
                }

                Device (MBRD)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x1F)
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0900, 0x0900, 0x01, 0x20)
                        IO (Decode16, 0x092C, 0x092C, 0x01, 0x54)
                        IO (Decode16, 0xFE00, 0xFE00, 0x02, 0x02)
                    })
                    Method (_CRS, 0, NotSerialized)
                    {
                        CreateWordField (BUF0, 0x02, G1MN)
                        CreateWordField (BUF0, 0x04, G1MX)
                        And (^^GEN1, 0xFF80, G1MN)
                        Store (G1MN, G1MX)
                        Return (BUF0)
                    }
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0000, 0x0000, 0x01, 0x20)
                        IO (Decode16, 0x0081, 0x0081, 0x01, 0x11)
                        IO (Decode16, 0x0093, 0x0093, 0x01, 0x0D)
                        IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20)
                        DMA (Compatibility, NotBusMaster, Transfer8_16) {4}
                    })
                }

                Device (FWHD)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly, 0xFF000000, 0x01000000)
                    })
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags () {0}
                        IRQNoFlags () {8}
                        Memory32Fixed (ReadOnly, 0xFED00000, 0x00000400)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (\CKOS (), 0x82))
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPAE)
                            {
                                Return (0x0B)
                            }
                        }

                        Return (0x00)
                    }

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

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

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

                        Return (BUF0)
                    }
                }

                Device (IPIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
                        IO (Decode16, 0x0024, 0x0024, 0x01, 0x02)
                        IO (Decode16, 0x0028, 0x0028, 0x01, 0x02)
                        IO (Decode16, 0x002C, 0x002C, 0x01, 0x02)
                        IO (Decode16, 0x0030, 0x0030, 0x01, 0x02)
                        IO (Decode16, 0x0034, 0x0034, 0x01, 0x02)
                        IO (Decode16, 0x0038, 0x0038, 0x01, 0x02)
                        IO (Decode16, 0x003C, 0x003C, 0x01, 0x02)
                        IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
                        IO (Decode16, 0x00A4, 0x00A4, 0x01, 0x02)
                        IO (Decode16, 0x00A8, 0x00A8, 0x01, 0x02)
                        IO (Decode16, 0x00AC, 0x00AC, 0x01, 0x02)
                        IO (Decode16, 0x00B0, 0x00B0, 0x01, 0x02)
                        IO (Decode16, 0x00B4, 0x00B4, 0x01, 0x02)
                        IO (Decode16, 0x00B8, 0x00B8, 0x01, 0x02)
                        IO (Decode16, 0x00BC, 0x00BC, 0x01, 0x02)
                        IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02)
                        IRQNoFlags () {2}
                    })
                }

                Device (MATH)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x00F0, 0x00F0, 0x01, 0x01)
                        IRQNoFlags () {13}
                    })
                }

                Device (MBD0)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x01)
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0063, 0x0063, 0x01, 0x01)
                        IO (Decode16, 0x0065, 0x0065, 0x01, 0x01)
                        IO (Decode16, 0x0067, 0x0067, 0x01, 0x01)
                        IO (Decode16, 0x0080, 0x0080, 0x01, 0x01)
                        IO (Decode16, 0x0092, 0x0092, 0x01, 0x01)
                        IO (Decode16, 0x00B2, 0x00B2, 0x01, 0x02)
                        IO (Decode16, 0x0800, 0x0800, 0x01, 0x10)
                        IO (Decode16, 0x1000, 0x1000, 0x01, 0x80)
                        IO (Decode16, 0x1180, 0x1180, 0x01, 0x40)
                        Memory32Fixed (ReadWrite, 0xE0000000, 0x10000000)
                        Memory32Fixed (ReadWrite, 0xF0000000, 0x00004000)
                        Memory32Fixed (ReadWrite, 0xF0004000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xF0005000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xF0008000, 0x00004000)
                        Memory32Fixed (ReadWrite, 0xFED20000, 0x00070000)
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        CreateWordField (BUF0, 0x3A, PMMN)
                        CreateWordField (BUF0, 0x3C, PMMX)
                        And (^^PMBA, 0xFF80, PMMN)
                        Store (PMMN, PMMX)
                        CreateWordField (BUF0, 0x42, GPMN)
                        CreateWordField (BUF0, 0x44, GPMX)
                        And (^^GPBA, 0xFFC0, GPMN)
                        Store (GPMN, GPMX)
                        Return (BUF0)
                    }
                }

                Device (MBD1)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x02)
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite, 0xFEC00000, 0x00001000)
                        Memory32Fixed (ReadWrite, 0xFEE00000, 0x00001000)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (\CKOS (), Local0)
                        If (LOr (LEqual (Local0, 0x01), LEqual (Local0, 0x02)))
                        {
                            If (LOr (APIC, HTTE))
                            {
                                Return (0x0B)
                            }
                        }

                        Return (0x00)
                    }
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x08)
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0070, 0x0070, 0x01, 0x08)
                        IRQNoFlags () {8}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            Return (BUF0)
                        }

                        Return (BUF1)
                    }
                }

                Device (TIMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0040, 0x0040, 0x01, 0x04)
                        IO (Decode16, 0x0050, 0x0050, 0x10, 0x04)
                        IRQNoFlags () {0}
                    })
                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            Return (BUF0)
                        }

                        Return (BUF1)
                    }
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0061, 0x0061, 0x01, 0x01)
                    })
                }

                Device (TPM)
                {
                    Name (_HID, EisaId ("IFX0101"))
                    Name (_UID, 0x01)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x004E, 0x004E, 0x01, 0x02)
                        IO (Decode16, 0x0920, 0x0920, 0x01, 0x0C)
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (\_SB.PSRV (0xCA, 0x00, 0x00, 0x00, 0x03))
                    }
                }

                Name (\ECST, 0x00)
                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0062, 0x0062, 0x00, 0x01)
                        IO (Decode16, 0x0066, 0x0066, 0x00, 0x01)
                    })
                    Mutex (ECEX, 0x00)
                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, ECST)
                            If (LEqual (Arg1, 0x01))
                            {
                                Store (EC01 (), PWRS)
                                \_SB.PSRV (0xC9, 0x03, 0x01, PWRS, 0x00)
                                PNOT ()
                            }
                        }
                    }

                    Method (_INI, 0, NotSerialized)
                    {
                        INI2 ()
                    }

                    Name (_GPE, 0x1D)
                    OperationRegion (ECR, EmbeddedControl, 0x00, 0xFF)
                    Field (ECR, ByteAcc, NoLock, Preserve)
                    {
                        BRST,   8, 
                        CTRL,   8, 
                        Offset (0x04), 
                        ECCR,   8, 
                        DAT1,   8, 
                        DAT2,   8, 
                        DAT3,   8, 
                        Offset (0x17), 
                        SLPT,   8
                    }

                    Name (LHKQ, Ones)
                    Method (HCNV, 1, Serialized)
                    {
                        Store (0xFFFFFFFF, Local0)
                        If (LAnd (LNot (LLess (Arg0, 0x0A)), LNot (LGreater (Arg0, 0x15))))
                        {
                            Subtract (Arg0, 0x09, Local0)
                            If (And (0x00, ShiftLeft (0x01, Local0)))
                            {
                                Store (0xFFFFFFFF, Local0)
                            }
                        }

                        If (LAnd (LNot (LLess (Arg0, 0x70)), LNot (LGreater (Arg0, 0x7B))))
                        {
                            Add (Arg0, 0x11, Local0)
                            Subtract (Arg0, 0x6F, Local1)
                            If (And (0x00, ShiftLeft (0x01, Local1)))
                            {
                                Store (0xFFFFFFFF, Local0)
                            }
                            Else
                            {
                                If (LHKQ)
                                {
                                    Store (EC86 (0x28), LHKQ)
                                }

                                If (LAnd (LHKQ, LNot (LEqual (LHKQ, Subtract (Local0, 0x80)))))
                                {
                                    Store (0xFFFFFFFF, Local0)
                                }
                            }
                        }

                        If (LAnd (LNot (LLess (Arg0, 0x81)), LNot (LGreater (Arg0, 0x82))))
                        {
                            Subtract (Arg0, 0x51, Local0)
                        }

                        If (LNot (LEqual (Local0, 0xFFFFFFFF)))
                        {
                            \_SB.HKEY.HIND (Local0)
                            Notify (\_SB.HKEY, 0x80)
                        }
                        Else
                        {
                        }
                    }

                    Method (_Q0A, 0, Serialized)
                    {
                        HCNV (0x0A)
                    }

                    Method (_Q0B, 0, Serialized)
                    {
                        HCNV (0x0B)
                    }

                    Method (_Q0D, 0, Serialized)
                    {
                        HCNV (0x0D)
                    }

                    Method (_Q0E, 0, Serialized)
                    {
                        HCNV (0x0E)
                    }

                    Method (_Q0F, 0, Serialized)
                    {
                        HCNV (0x0F)
                    }

                    Method (_Q10, 0, Serialized)
                    {
                        HCNV (0x10)
                    }

                    Method (_Q11, 0, Serialized)
                    {
                        HCNV (0x11)
                    }

                    Method (_Q12, 0, Serialized)
                    {
                        HCNV (0x12)
                    }

                    Method (_Q13, 0, Serialized)
                    {
                        HCNV (0x13)
                    }

                    Method (_Q14, 0, Serialized)
                    {
                        HCNV (0x14)
                    }

                    Method (_Q15, 0, Serialized)
                    {
                        HCNV (0x15)
                    }

                    Method (_Q70, 0, Serialized)
                    {
                        HCNV (0x70)
                    }

                    Method (_Q71, 0, Serialized)
                    {
                        HCNV (0x71)
                    }

                    Method (_Q73, 0, Serialized)
                    {
                        HCNV (0x73)
                    }

                    Method (_Q74, 0, Serialized)
                    {
                        HCNV (0x74)
                    }

                    Method (_Q75, 0, Serialized)
                    {
                        HCNV (0x75)
                    }

                    Method (_Q76, 0, Serialized)
                    {
                        HCNV (0x76)
                    }

                    Method (_Q77, 0, Serialized)
                    {
                        HCNV (0x77)
                    }

                    Method (_Q78, 0, Serialized)
                    {
                        HCNV (0x78)
                    }

                    Method (_Q79, 0, Serialized)
                    {
                        HCNV (0x79)
                    }

                    Method (_Q7A, 0, Serialized)
                    {
                        HCNV (0x7A)
                    }

                    Method (_Q7B, 0, Serialized)
                    {
                        HCNV (0x7B)
                    }

                    Method (_Q81, 0, Serialized)
                    {
                        HCNV (0x81)
                    }

                    Method (_Q82, 0, Serialized)
                    {
                        HCNV (0x82)
                    }

                    Method (_Q0C, 0, Serialized)
                    {
                        \_SB.CHGD ()
                    }

                    Method (_Q72, 0, NotSerialized)
                    {
                    }

                    Method (INI2, 0, NotSerialized)
                    {
                    }

                    Method (_Q23, 0, Serialized)
                    {
                    }

                    Method (_Q9F, 0, Serialized)
                    {
                        Notify (\_SB.BATA, 0x81)
                    }

                    Method (_QA0, 0, Serialized)
                    {
                        Notify (\_SB.BATA, 0x80)
                    }

                    Method (EC8D, 1, Serialized)
                    {
                        If (LEqual (ECST, 0x00))
                        {
                            Store (ShiftLeft (Arg0, 0x08), Local0)
                            Store (Add (Local0, 0x88), Local0)
                            Store (\_SB.PSRV (0xC3, Local0, 0x00, 0x00, 0x03), Local0)
                            If (And (Local0, 0xFF))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                Store (And (ShiftRight (Local0, 0x08), 0xFFFF), Local0)
                                Return (Local0)
                            }
                        }
                        Else
                        {
                            Acquire (ECEX, 0xFFFF)
                            Store (Arg0, DAT1)
                            Store (0x88, ECCR)
                            Store (0xC8, Local4)
                            While (LAnd (LNot (LEqual (Local4, 0x00)), LNot (LEqual (ECCR, 0x00))))
                            {
                                Stall (0x19)
                                Decrement (Local4)
                            }

                            Store (DAT1, Local1)
                            Store (DAT2, Local2)
                            Release (ECEX)
                            If (LEqual (Local4, 0x00))
                            {
                                Return (0xFFFFFFFF)
                            }

                            Store (Add (ShiftLeft (Local2, 0x08), Local1), Local0)
                            Return (Local0)
                        }
                    }

                    Method (EC03, 2, Serialized)
                    {
                        If (LEqual (Arg1, 0x00))
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (EC86 (0x6A), Local0)
                            }

                            If (LEqual (Local0, 0xFFFFFFFF))
                            {
                                Return (0x00)
                            }
                            Else
                            {
                                Return (Local0)
                            }
                        }

                        If (LEqual (Arg1, 0x01))
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (EC8D (0x6C), Local0)
                            }

                            If (LNot (LLess (Local0, 0xFFFF)))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                Return (Local0)
                            }
                        }

                        If (LEqual (Arg1, 0x02))
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (EC8D (0x6E), Local0)
                            }

                            If (LNot (LLess (Local0, 0xFFFF)))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                Return (Local0)
                            }
                        }

                        If (LEqual (Arg1, 0x03))
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (EC8D (0x70), Local0)
                                EC82 (0x41, 0x00)
                            }

                            If (LNot (LLess (Local0, 0xFFFF)))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                Return (Local0)
                            }
                        }
                    }

                    Method (_Q5C, 0, Serialized)
                    {
                        Notify (\_TZ.TZC, 0x80)
                    }

                    Method (_Q80, 0, Serialized)
                    {
                        Store (EC01 (), PWRS)
                        \_SB.PSRV (0xC9, 0x03, 0x01, PWRS, 0x00)
                        PNOT ()
                        Notify (\_SB.AC, 0x80)
                    }

                    Method (_Q83, 0, Serialized)
                    {
                        Notify (\_SB.LID, 0x80)
                    }

                    Method (_QA3, 0, Serialized)
                    {
                        \_SB.PSRV (0xD5, 0x00, 0x00, 0x00, 0x00)
                    }

                    Method (EC06, 0, Serialized)
                    {
                        Store (0x09, Local0)
                        Store (0x02, Local1)
                        Store (EC89 (Local0, Local1), Local2)
                        If (LEqual (Local2, 0xFFFFFFFF))
                        {
                            Return (0x01)
                        }
                        Else
                        {
                            Return (Local2)
                        }
                    }

                    Method (EC07, 0, Serialized)
                    {
                        Return (EC88 (EC87 (0x04, 0xC8)))
                    }

                    Method (EC08, 0, Serialized)
                    {
                        Return (0x03)
                    }

                    Method (EC09, 0, Serialized)
                    {
                        Return (EC88 (EC87 (0x04, 0xC5)))
                    }

                    Method (EC0A, 0, Serialized)
                    {
                        Return (EC88 (EC87 (0x04, 0xC6)))
                    }

                    Method (EC0B, 1, Serialized)
                    {
                        EC83 (0x0B, Arg0)
                        Return (0x00)
                    }

                    Method (EC01, 0, Serialized)
                    {
                        Return (And (EC86 (0x08), 0x01))
                    }

                    Method (EC02, 1, Serialized)
                    {
                        Store (EC86 (0x08), Local0)
                        If (LEqual (Local0, 0xFFFFFFFF))
                        {
                            Return (0x00)
                        }

                        If (LEqual (Arg0, 0x00))
                        {
                            If (And (Local0, 0x04))
                            {
                                Return (0x01)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }
                    }

                    Method (EC04, 2, Serialized)
                    {
                        Name (BUF, Buffer (0x10) {})
                        If (LEqual (Arg0, 0x00))
                        {
                            If (LEqual (Arg1, 0x00))
                            {
                                Store (EC85 (0x60), Local0)
                                If (LEqual (Local0, 0xFFFFFFFF))
                                {
                                    Return (0x01)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x01))
                            {
                                Store (EC85 (0x62), Local0)
                                If (LOr (LEqual (Local0, 0x00), LNot (LLess (Local0, 0xFFFF))))
                                {
                                    Return (0xFFFFFFFF)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x02))
                            {
                                Store (EC85 (0x64), Local0)
                                If (LOr (LEqual (Local0, 0x00), LNot (LLess (Local0, 0xFFFF))))
                                {
                                    Return (0xFFFFFFFF)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x03))
                            {
                                Return (One)
                            }

                            If (LEqual (Arg1, 0x04))
                            {
                                Store (EC85 (0x68), Local0)
                                If (LOr (LEqual (Local0, 0x00), LNot (LLess (Local0, 0xFFFF))))
                                {
                                    Return (0xFFFFFFFF)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x05))
                            {
                                Store (EC85 (0x72), Local0)
                                If (LEqual (Local0, 0xFFFFFFFF))
                                {
                                    Return (0x00)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x06))
                            {
                                Store (EC85 (0x74), Local0)
                                If (LEqual (Local0, 0xFFFFFFFF))
                                {
                                    Return (0x00)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x07))
                            {
                                Store (EC85 (0x76), Local0)
                                If (LEqual (Local0, 0xFFFFFFFF))
                                {
                                    Return (0x01)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x08))
                            {
                                Store (EC85 (0x78), Local0)
                                If (LEqual (Local0, 0xFFFFFFFF))
                                {
                                    Return (0x01)
                                }
                                Else
                                {
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Arg1, 0x09))
                            {
                                Store (0x00, BUF)
                                Store (EC84 (0x8C, 0x0C), BUF)
                                Return (BUF)
                            }

                            If (LEqual (Arg1, 0x0A))
                            {
                                Store (0x00, BUF)
                                Store (EC85 (0x9A), Local0)
                                Store (EC8C (Local0, 0x05), BUF)
                                Return (BUF)
                            }

                            If (LEqual (Arg1, 0x0B))
                            {
                                Store (0x00, BUF)
                                Store (EC84 (0x9C, 0x08), BUF)
                                Return (BUF)
                            }

                            If (LEqual (Arg1, 0x0C))
                            {
                                Store ("Panasonic", BUF)
                                Return (BUF)
                            }
                        }
                    }

                    Method (EC05, 2, Serialized)
                    {
                        If (LEqual (Arg0, 0x00))
                        {
                            EC82 (0xF0, Arg1)
                        }
                    }

                    Method (EC0C, 1, Serialized)
                    {
                        Store (And (Arg0, 0x07), SLPT)
                        Return (0x00)
                    }

                    Method (EC0D, 1, Serialized)
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (0x98, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x81, Local0)
                            }
                            Else
                            {
                                Return (0xFFFFFFFF)
                            }
                        }

                        Return (EC8B (0x43, Local0))
                    }

                    Method (EC0E, 1, Serialized)
                    {
                        If (LNot (LEqual (EC8A (0x00, 0x23, And (EC87 (0x00, 0x23), 0xFD)), 0x00)))
                        {
                            Return (0xFFFFFFFF)
                        }

                        If (LEqual (Arg0, 0x01))
                        {
                            Store (0x80, Local0)
                        }
                        Else
                        {
                            Store (0x00, Local0)
                        }

                        If (LEqual (EC8A (0x01, 0x9C, 0xFF), 0x00))
                        {
                            Return (EC8A (0x01, 0x9D, Local0))
                        }
                        Else
                        {
                            Return (0xFFFFFFFF)
                        }
                    }

                    Method (EC0F, 1, Serialized)
                    {
                        If (LEqual (Arg0, 0x01))
                        {
                            Store (0x01, Local0)
                        }
                        Else
                        {
                            If (LEqual (Arg0, 0x00))
                            {
                                Store (0x00, Local0)
                            }
                            Else
                            {
                                Return (0xFFFFFFFF)
                            }
                        }

                        EC83 (0x17, Local0)
                        Return (0xFFFFFFFF)
                    }

                    Method (EC10, 2, Serialized)
                    {
                        Store (EC89 (Arg0, Arg1), Local0)
                        If (LEqual (Local0, 0xFFFFFFFF))
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (Local0)
                        }
                    }

                    Method (Z000, 0, Serialized)
                    {
                        Store (EC86 (0x15), Local0)
                        And (Local0, 0x80, Local0)
                        Return (Local0)
                    }

                    Method (EC82, 2, Serialized)
                    {
                        If (LEqual (ECST, 0x00))
                        {
                            If (LAnd (LNot (LLess (Arg0, 0xF0)), LNot (LGreater (Arg0, 0xF3))))
                            {
                                Store (ShiftLeft (Arg1, 0x08), Local0)
                            }
                            Else
                            {
                                Store (0x00, Local0)
                            }

                            Store (Add (ShiftLeft (Local0, 0x08), Arg0), Local0)
                            Store (Add (ShiftLeft (Local0, 0x08), 0xDD), Local0)
                            Store (\_SB.PSRV (0xC3, Local0, 0x00, 0x00, 0x03), Local0)
                            If (And (Local0, 0x400000FF))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                If (LAnd (LNot (LLess (Arg0, 0x20)), LNot (LGreater (Arg0, 0x37))))
                                {
                                    Store (And (ShiftRight (Local0, 0x08), 0x0080FFFF), Local0)
                                    Return (Local0)
                                }
                                Else
                                {
                                    Return (0x00)
                                }
                            }
                        }

                        Acquire (ECEX, 0xFFFF)
                        If (LAnd (LNot (LLess (Arg0, 0xF0)), LNot (LGreater (Arg0, 0xF3))))
                        {
                            Store (And (Arg1, 0xFF), DAT2)
                            Store (And (ShiftRight (Arg1, 0x08), 0xFF), DAT3)
                        }

                        Store (Arg0, DAT1)
                        Store (0xDD, ECCR)
                        Store (0xC8, Local4)
                        While (LAnd (LNot (LEqual (Local4, 0x00)), LNot (LEqual (ECCR, 0x00))))
                        {
                            Stall (0x19)
                            Decrement (Local4)
                        }

                        Store (DAT1, Local1)
                        Store (DAT2, Local2)
                        Store (DAT3, Local3)
                        Release (ECEX)
                        If (LOr (LEqual (Local4, 0x00), And (Local3, 0x40)))
                        {
                            Return (0xFFFFFFFF)
                        }

                        If (LAnd (LNot (LLess (Arg0, 0x20)), LNot (LGreater (Arg0, 0x37))))
                        {
                            Store (Add (ShiftLeft (Local2, 0x08), Local1), Local0)
                            If (And (Local3, 0x80))
                            {
                                Or (Local0, 0x00800000)
                            }

                            Return (Local0)
                        }

                        Return (0x00)
                    }

                    Method (EC83, 2, Serialized)
                    {
                        If (LEqual (ECST, 0x00))
                        {
                            If (LEqual (Arg0, 0x0B))
                            {
                                \_SB.ECWR (0x0B, Arg1)
                            }

                            If (LEqual (Arg0, 0x17))
                            {
                                \_SB.ECWR (0x17, Arg1)
                            }
                        }
                        Else
                        {
                            Acquire (ECEX, 0xFFFF)
                            Store (Arg0, DAT1)
                            Store (Arg1, DAT2)
                            Store (0xB5, ECCR)
                            Store (0xC8, Local1)
                            While (LAnd (LNot (LEqual (Local1, 0x00)), LNot (LEqual (ECCR, 0x00))))
                            {
                                Stall (0x19)
                                Decrement (Local1)
                            }

                            Release (ECEX)
                        }
                    }

                    Method (EC89, 2, Serialized)
                    {
                        If (LOr (LOr (LLess (Arg0, 0x01), LGreater (Arg0, 0x10)), LGreater (Arg1, 0x07)))
                        {
                            Return (0xFFFFFFFF)
                        }

                        Store (EC87 (0x12, 0xEF), Local0)
                        If (LEqual (Local0, 0xFFFFFFFF))
                        {
                            Return (0xFFFFFFFF)
                        }

                        Store (0x0A, Local1)
                        While (LAnd (LNot (LEqual (Local1, 0x00)), LEqual (EC87 (0x12, 0xEF), Local0)))
                        {
                            Sleep (0x01)
                            Decrement (Local1)
                        }

                        If (LEqual (Local1, 0x00))
                        {
                            Return (0xFFFFFFFF)
                        }

                        Store (EC87 (0x12, Add (0xEF, Arg0)), Local0)
                        If (LEqual (Local0, 0xFFFFFFFF))
                        {
                            Return (0xFFFFFFFF)
                        }

                        Return (And (ShiftRight (Local0, Arg1), 0x01))
                    }

                    Method (EC84, 2, Serialized)
                    {
                        Name (EBUF, Buffer (0x10) {})
                        Store (0x00, Local0)
                        If (LGreater (Arg1, 0x00))
                        {
                            While (LLess (Local0, Arg1))
                            {
                                Store (EC86 (Add (Arg0, Local0)), Local1)
                                If (LEqual (Local1, 0xFFFFFFFF))
                                {
                                    Break
                                }

                                Store (Local1, Index (EBUF, Local0))
                                Increment (Local0)
                            }

                            If (LNot (LEqual (Local0, Arg1)))
                            {
                                Store (0x00, EBUF)
                            }
                        }

                        Return (EBUF)
                    }

                    Method (EC85, 1, Serialized)
                    {
                        Add (Arg0, 0x01, Local1)
                        Store (0xFFFFFFFF, Local0)
                        If (LNot (LGreater (Local1, 0xFF)))
                        {
                            Store (EC86 (Local1), Local2)
                            If (LNot (LGreater (Local2, 0xFF)))
                            {
                                ShiftLeft (Local2, 0x08, Local2)
                                Store (EC86 (Arg0), Local3)
                                If (LNot (LGreater (Local3, 0xFF)))
                                {
                                    Add (Local3, Local2, Local0)
                                }
                            }
                        }

                        Return (Local0)
                    }

                    Method (EC86, 1, Serialized)
                    {
                        Store (0xFFFFFFFF, Local0)
                        If (LNot (LGreater (Arg0, 0x7F)))
                        {
                            Store (EC87 (0x13, Or (Arg0, 0x80)), Local0)
                        }
                        Else
                        {
                            If (LNot (LGreater (Arg0, 0xFF)))
                            {
                                Store (EC87 (0x14, Arg0), Local0)
                            }
                        }

                        Return (Local0)
                    }

                    Method (EC8F, 2, Serialized)
                    {
                        Store (0xFFFFFFFF, Local0)
                        If (LNot (LGreater (Arg0, 0x7F)))
                        {
                            Store (EC8A (0x13, Or (Arg0, 0x80), Arg1), Local0)
                        }
                        Else
                        {
                            If (LNot (LGreater (Arg0, 0xFF)))
                            {
                                Store (EC8A (0x14, Arg0, Arg1), Local0)
                            }
                        }

                        Return (Local0)
                    }

                    Method (EC87, 2, Serialized)
                    {
                        If (LEqual (ECST, 0x00))
                        {
                            Store (Arg0, Local0)
                            Store (Add (ShiftLeft (Local0, 0x08), Arg1), Local0)
                            Store (Add (ShiftLeft (Local0, 0x10), 0xBA), Local0)
                            Store (\_SB.PSRV (0xC3, Local0, 0x00, 0x00, 0x03), Local0)
                            If (And (Local0, 0xFF))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                Return (And (ShiftRight (Local0, 0x08), 0xFF))
                            }
                        }

                        Acquire (ECEX, 0xFFFF)
                        Store (0xFFFFFFFF, Local0)
                        If (LAnd (LNot (LGreater (Arg1, 0xFF)), LNot (LGreater (Arg0, 0x17))))
                        {
                            Store (Arg1, DAT2)
                            Store (Arg0, DAT3)
                            Store (0xBA, ECCR)
                            Store (0xC8, Local1)
                            While (LAnd (LNot (LEqual (Local1, 0x00)), LNot (LEqual (ECCR, 0x00))))
                            {
                                Stall (0x19)
                                Decrement (Local1)
                            }

                            If (LEqual (Local1, 0x00))
                            {
                                Store (0xFFFFFFFF, Local0)
                            }
                            Else
                            {
                                Store (DAT1, Local0)
                            }
                        }

                        Release (ECEX)
                        Return (Local0)
                    }

                    Method (EC8B, 2, Serialized)
                    {
                        Store (0xFFFFFFFF, Local0)
                        If (LNot (LGreater (Arg0, 0x7F)))
                        {
                            Store (EC8A (0x13, Or (Arg0, 0x80), Arg1), Local0)
                        }
                        Else
                        {
                            If (LNot (LGreater (Arg0, 0xFF)))
                            {
                                Store (EC8A (0x14, Arg0, Arg1), Local0)
                            }
                        }

                        Return (Local0)
                    }

                    Method (EC8A, 3, Serialized)
                    {
                        If (LEqual (ECST, 0x00))
                        {
                            Store (Arg0, Local0)
                            Store (Add (ShiftLeft (Local0, 0x08), Arg1), Local0)
                            Store (Add (ShiftLeft (Local0, 0x08), Arg2), Local0)
                            Store (Add (ShiftLeft (Local0, 0x08), 0xBB), Local0)
                            Store (\_SB.PSRV (0xC3, Local0, 0x00, 0x00, 0x03), Local0)
                            If (And (Local0, 0xFF))
                            {
                                Return (0xFFFFFFFF)
                            }
                            Else
                            {
                                Return (0x00)
                            }
                        }

                        Acquire (ECEX, 0xFFFF)
                        Store (0xFFFFFFFF, Local0)
                        If (LAnd (LNot (LGreater (Arg1, 0xFF)), LNot (LGreater (Arg0, 0x17))))
                        {
                            Store (Arg2, DAT1)
                            Store (Arg1, DAT2)
                            Store (Arg0, DAT3)
                            Store (0xBB, ECCR)
                            Store (0xC8, Local1)
                            While (LAnd (LNot (LEqual (Local1, 0x00)), LNot (LEqual (ECCR, 0x00))))
                            {
                                Stall (0x19)
                                Decrement (Local1)
                            }

                            If (LEqual (Local1, 0x00))
                            {
                                Store (0xFFFFFFFF, Local0)
                            }
                            Else
                            {
                                Store (0x00, Local0)
                            }
                        }

                        Release (ECEX)
                        Return (Local0)
                    }

                    Method (EC8E, 1, Serialized)
                    {
                        And (Arg0, 0xFF, Local0)
                        Return (\_SB.PSRV (0x98, Local0, 0x00, 0x00, 0x01))
                    }

                    Method (EC88, 1, Serialized)
                    {
                        If (LGreater (Arg0, 0xFF))
                        {
                            Store (0xFFFFFFFF, Local0)
                        }
                        Else
                        {
                            Add (Arg0, 0x11, Local0)
                            If (LEqual (And (Arg0, 0x80), 0x00))
                            {
                                Add (Local0, 0x0100, Local0)
                            }

                            Multiply (Local0, 0x0A, Local0)
                        }

                        Return (Local0)
                    }

                    Method (EC8C, 2, Serialized)
                    {
                        Name (BUF, Buffer (0x10) {})
                        Store (0x00, BUF)
                        If (LOr (LLess (Arg1, 0x01), LGreater (Arg1, 0x10)))
                        {
                            Return (BUF)
                        }

                        Store (Arg0, Local0)
                        Store (0x00, Local1)
                        While (LLess (Local1, Arg1))
                        {
                            Divide (Local0, 0x0A, Local2, Local0)
                            Subtract (Arg1, Local1, Local3)
                            Decrement (Local3)
                            Add (Local2, 0x30, Index (BUF, Local3))
                            Increment (Local1)
                        }

                        Return (BUF)
                    }
                }

                Device (K101)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                        IRQNoFlags () {1}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LNot (LEqual (\_SB.PSRV (0x97, 0x05000000, 0x01, 0x5000, 0x03), 0x01)))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

                Device (K106)
                {
                    Name (_HID, EisaId ("PNP0320"))
                    Name (_CID, 0x0303D041)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
                        IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
                        IRQNoFlags () {1}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (\_SB.PSRV (0x97, 0x05000000, 0x01, 0x5000, 0x03), 0x01))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

                Device (MOUS)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (\_SB.PSRV (0x97, 0x06000000, 0x01, 0x6000, 0x01), Local0)
                        If (LEqual (Local0, 0x01))
                        {
                            Return (0x00)
                        }
                        Else
                        {
                            Return (0x0F)
                        }

                        OperationRegion (BDA, SystemMemory, 0x0400, 0x0100)
                        Field (BDA, ByteAcc, NoLock, Preserve)
                        {
                            Offset (0x10), 
                                ,   2, 
                            MFLG,   1
                        }

                        If (MFLG)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

                Device (MOU3)
                {
                    Name (_HID, EisaId ("SYN0002"))
                    Name (_CID, 0x130FD041)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQNoFlags () {12}
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        Store (\_SB.PSRV (0x97, 0x06000000, 0x01, 0x6000, 0x01), Local0)
                        If (LEqual (Local0, 0x01))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }

                        OperationRegion (BDA, SystemMemory, 0x0400, 0x0100)
                        Field (BDA, ByteAcc, NoLock, Preserve)
                        {
                            Offset (0x10), 
                                ,   2, 
                            MFLG,   1
                        }

                        If (MFLG)
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (0x00)
                        }
                    }
                }

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

                    Name (_PRS, ResourceTemplate ()
                    {
                        IRQ (Level, ActiveLow, Shared) {11}
                    })
                    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) {9}
                    })
                    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) {9}
                    })
                    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) {7}
                    })
                    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) {3}
                    })
                    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) {5}
                    })
                    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) {3}
                    })
                    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) {10}
                    })
                    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)
                        }
                    }
                }
            }

            Device (PATA)
            {
                Name (_ADR, 0x001F0001)
                OperationRegion (PACS, PCI_Config, 0x40, 0xC0)
                Field (PACS, DWordAcc, NoLock, Preserve)
                {
                    PRIT,   16, 
                    Offset (0x04), 
                    PSIT,   4, 
                    Offset (0x08), 
                    SYNC,   4, 
                    Offset (0x0A), 
                    SDT0,   2, 
                        ,   2, 
                    SDT1,   2, 
                    Offset (0x14), 
                    ICR0,   4, 
                    ICR1,   4, 
                    ICR2,   4, 
                    ICR3,   4, 
                    ICR4,   4, 
                    ICR5,   4
                }

                Device (PRID)
                {
                    Name (_ADR, 0x00)
                    Name (NCM0, 0x03)
                    Name (NCM1, 0x03)
                    Method (_GTM, 0, NotSerialized)
                    {
                        Name (PBUF, Buffer (0x14)
                        {
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                            0x00, 0x00, 0x00, 0x00
                        })
                        CreateDWordField (PBUF, 0x00, PIO0)
                        CreateDWordField (PBUF, 0x04, DMA0)
                        CreateDWordField (PBUF, 0x08, PIO1)
                        CreateDWordField (PBUF, 0x0C, DMA1)
                        CreateDWordField (PBUF, 0x10, FLAG)
                        Store (GETP (PRIT), PIO0)
                        Store (GDMA (And (SYNC, 0x01), And (ICR3, 0x01), And (ICR0, 0x01), SDT0, And (ICR1, 0x01)), DMA0)
                        If (LEqual (DMA0, 0xFFFFFFFF))
                        {
                            Store (PIO0, DMA0)
                        }

                        If (And (PRIT, 0x4000))
                        {
                            If (LEqual (And (PRIT, 0x90), 0x80))
                            {
                                Store (0x0384, PIO1)
                            }
                            Else
                            {
                                Store (GETT (PSIT), PIO1)
                            }
                        }
                        Else
                        {
                            Store (0xFFFFFFFF, PIO1)
                        }

                        Store (GDMA (And (SYNC, 0x02), And (ICR3, 0x02), And (ICR0, 0x02), SDT1, And (ICR1, 0x02)), DMA1)
                        If (LEqual (DMA1, 0xFFFFFFFF))
                        {
                            Store (PIO1, DMA1)
                        }

                        Store (GETF (And (SYNC, 0x01), And (SYNC, 0x02), PRIT), FLAG)
                        If (And (LEqual (PIO0, 0xFFFFFFFF), LEqual (DMA0, 0xFFFFFFFF)))
                        {
                            Store (0x78, PIO0)
                            Store (0x14, DMA0)
                            Store (0x03, FLAG)
                        }

                        Return (PBUF)
                    }

                    Method (_STM, 3, NotSerialized)
                    {
                        CreateDWordField (Arg0, 0x00, PIO0)
                        CreateDWordField (Arg0, 0x04, DMA0)
                        CreateDWordField (Arg0, 0x08, PIO1)
                        CreateDWordField (Arg0, 0x0C, DMA1)
                        CreateDWordField (Arg0, 0x10, FLAG)
                        If (LEqual (SizeOf (Arg1), 0x0200))
                        {
                            And (PRIT, 0x40F0, PRIT)
                            And (SYNC, 0x02, SYNC)
                            Store (0x00, SDT0)
                            And (ICR0, 0x02, ICR0)
                            And (ICR1, 0x02, ICR1)
                            And (ICR3, 0x02, ICR3)
                            And (ICR5, 0x02, ICR5)
                            CreateWordField (Arg1, 0x62, W490)
                            CreateWordField (Arg1, 0x6A, W530)
                            CreateWordField (Arg1, 0x7E, W630)
                            CreateWordField (Arg1, 0x80, W640)
                            CreateWordField (Arg1, 0xB0, W880)
                            CreateWordField (Arg1, 0xBA, W930)
                            CreateWordField (Arg1, 0xAC, W860)
                            Or (PRIT, 0x8004, PRIT)
                            If (LAnd (And (FLAG, 0x02), And (W490, 0x0800)))
                            {
                                Or (PRIT, 0x02, PRIT)
                            }

                            Or (PRIT, SETP (PIO0, W530, W640), PRIT)
                            If (And (FLAG, 0x01))
                            {
                                Or (SYNC, 0x01, SYNC)
                                Store (SDMA (DMA0), SDT0)
                                If (LLess (DMA0, 0x1E))
                                {
                                    Or (ICR3, 0x01, ICR3)
                                }

                                If (LLess (DMA0, 0x3C))
                                {
                                    Or (ICR0, 0x01, ICR0)
                                }

                                If (And (W930, 0x2000))
                                {
                                    Or (ICR1, 0x01, ICR1)
                                }
                            }

                            Store (0x03, NCM0)
                            If (LNot (LLess (SizeOf (Arg1), 0x0102)))
                            {
                                If (And (DerefOf (Index (Arg1, 0x0100)), One))
                                {
                                    Or (NCM0, 0x04, NCM0)
                                }
                            }

                            Store (\_SB.PSRV (0x97, 0x03000000, 0x01, 0x3000, 0x03), Local3)
                            If (Local3)
                            {
                                If (And (W860, 0x0400))
                                {
                                    \_SB.PSRV (0x97, 0x03000000, 0x01, 0x3100, 0x00)
                                }
                                Else
                                {
                                    Or (NCM0, 0x08, NCM0)
                                }
                            }
                        }

                        If (LEqual (SizeOf (Arg2), 0x0200))
                        {
                            And (PRIT, 0x3F0F, PRIT)
                            Store (0x00, PSIT)
                            And (SYNC, 0x01, SYNC)
                            Store (0x00, SDT1)
                            And (ICR0, 0x01, ICR0)
                            And (ICR1, 0x01, ICR1)
                            And (ICR3, 0x01, ICR3)
                            And (ICR5, 0x01, ICR5)
                            CreateWordField (Arg2, 0x62, W491)
                            CreateWordField (Arg2, 0x6A, W531)
                            CreateWordField (Arg2, 0x7E, W631)
                            CreateWordField (Arg2, 0x80, W641)
                            CreateWordField (Arg2, 0xB0, W881)
                            CreateWordField (Arg2, 0xBA, W931)
                            Or (PRIT, 0x8040, PRIT)
                            If (LAnd (And (FLAG, 0x08), And (W491, 0x0800)))
                            {
                                Or (PRIT, 0x20, PRIT)
                            }

                            If (And (FLAG, 0x10))
                            {
                                Or (PRIT, 0x4000, PRIT)
                                If (LGreater (PIO1, 0xF0))
                                {
                                    Or (PRIT, 0x80, PRIT)
                                }
                                Else
                                {
                                    Or (PRIT, 0x10, PRIT)
                                    Store (SETT (PIO1, W531, W641), PSIT)
                                }
                            }

                            If (And (FLAG, 0x04))
                            {
                                Or (SYNC, 0x02, SYNC)
                                Store (SDMA (DMA1), SDT1)
                                If (LLess (DMA1, 0x1E))
                                {
                                    Or (ICR3, 0x02, ICR3)
                                }

                                If (LLess (DMA1, 0x3C))
                                {
                                    Or (ICR0, 0x02, ICR0)
                                }

                                If (And (W931, 0x2000))
                                {
                                    Or (ICR1, 0x02, ICR1)
                                }
                            }

                            Store (0x03, NCM1)
                            If (LNot (LLess (SizeOf (Arg2), 0x0102)))
                            {
                                If (And (DerefOf (Index (Arg2, 0x0100)), One))
                                {
                                    Or (NCM1, 0x04, NCM1)
                                }
                            }
                        }
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, 0x00)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (PIB0, Buffer (0x0E)
                            {
                                0x03, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x03, 
                                0x00, 0x00, 0x00, 0x00, 0xA0, 0xEF
                            })
                            Name (FLK0, Buffer (0x07)
                            {
                                0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xF5
                            })
                            Name (SMX0, Buffer (0x0E)
                            {
                                0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0x00, 
                                0x00, 0x00, 0x00, 0x00, 0xE0, 0xF9
                            })
                            CreateByteField (PIB0, 0x01, PMD0)
                            CreateByteField (PIB0, 0x08, DMD0)
                            CreateDWordField (SMX0, 0x09, MXA0)
                            If (And (PRIT, 0x02))
                            {
                                If (LEqual (And (PRIT, 0x09), 0x08))
                                {
                                    Store (0x08, PMD0)
                                }
                                Else
                                {
                                    Store (0x0A, PMD0)
                                    ShiftRight (And (PRIT, 0x0300), 0x08, Local0)
                                    ShiftRight (And (PRIT, 0x3000), 0x0C, Local1)
                                    Add (Local0, Local1, Local2)
                                    If (LEqual (0x03, Local2))
                                    {
                                        Store (0x0B, PMD0)
                                    }

                                    If (LEqual (0x05, Local2))
                                    {
                                        Store (0x0C, PMD0)
                                    }
                                }
                            }
                            Else
                            {
                                Store (0x01, PMD0)
                            }

                            If (And (SYNC, 0x01))
                            {
                                Store (Or (SDT0, 0x40), DMD0)
                                If (And (ICR1, 0x01))
                                {
                                    If (And (ICR0, 0x01))
                                    {
                                        Add (DMD0, 0x02, DMD0)
                                    }

                                    If (And (ICR3, 0x01))
                                    {
                                        Store (0x45, DMD0)
                                    }
                                }
                            }
                            Else
                            {
                                Or (Subtract (And (PMD0, 0x07), 0x02), 0x20, DMD0)
                            }

                            If (And (NCM0, 0x08))
                            {
                                Store (\_SB.PSRV (0x97, 0x03000000, 0x01, 0x3000, 0x03), Local3)
                                If (Local3)
                                {
                                    Or (Local3, 0xE0000000, Local3)
                                    Store (Local3, MXA0)
                                    Concatenate (PIB0, SMX0, Local4)
                                }
                                Else
                                {
                                    Store (PIB0, Local4)
                                }
                            }
                            Else
                            {
                                Store (PIB0, Local4)
                            }

                            If (And (NCM0, 0x04))
                            {
                                Concatenate (Local4, FLK0, Local0)
                            }
                            Else
                            {
                                Store (Local4, Local0)
                            }

                            Return (Local0)
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, 0x01)
                        Method (_GTF, 0, NotSerialized)
                        {
                            Name (PIB1, Buffer (0x0E)
                            {
                                0x03, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF, 0x03, 
                                0x00, 0x00, 0x00, 0x00, 0xB0, 0xEF
                            })
                            Name (FLK1, Buffer (0x07)
                            {
                                0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xF5
                            })
                            CreateByteField (PIB1, 0x01, PMD1)
                            CreateByteField (PIB1, 0x08, DMD1)
                            If (And (PRIT, 0x20))
                            {
                                If (LEqual (And (PRIT, 0x90), 0x80))
                                {
                                    Store (0x08, PMD1)
                                }
                                Else
                                {
                                    Add (And (PSIT, 0x03), ShiftRight (And (PSIT, 0x0C), 0x02), Local0)
                                    If (LEqual (0x05, Local0))
                                    {
                                        Store (0x0C, PMD1)
                                    }
                                    Else
                                    {
                                        If (LEqual (0x03, Local0))
                                        {
                                            Store (0x0B, PMD1)
                                        }
                                        Else
                                        {
                                            Store (0x0A, PMD1)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Store (0x01, PMD1)
                            }

                            If (And (SYNC, 0x02))
                            {
                                Store (Or (SDT1, 0x40), DMD1)
                                If (And (ICR1, 0x02))
                                {
                                    If (And (ICR0, 0x02))
                                    {
                                        Add (DMD1, 0x02, DMD1)
                                    }

                                    If (And (ICR3, 0x02))
                                    {
                                        Store (0x45, DMD1)
                                    }
                                }
                            }
                            Else
                            {
                                Or (Subtract (And (PMD1, 0x07), 0x02), 0x20, DMD1)
                            }

                            If (And (NCM1, 0x04))
                            {
                                Concatenate (PIB1, FLK1, Local0)
                            }
                            Else
                            {
                                Store (PIB1, Local0)
                            }

                            Return (Local0)
                        }
                    }
                }
            }

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

        Method (CHGD, 0, NotSerialized)
        {
            If (\_SB.PSRV (0xB9, 0x22, 0x00, 0x00, 0x01))
            {
                Notify (\_SB.PCI0, 0x00)
                Sleep (0x03E8)
                Store (\_SB.PSRV (0xB9, 0x07, 0x00, 0x00, 0x03), NSTE)
                Store (NSTE, Local0)
                Notify (\_SB.PCI0.GFX0, 0x80)
            }
        }
    }

    Method (_PTS, 1, NotSerialized)
    {
        \_SB.PSRV (0xB8, 0x00, 0x00, 0x00, 0x00)
        If (LNot (LEqual (Arg0, 0x05)))
        {
            \_SB.PSRV (0x92, 0x02, 0x00, 0x00, 0x00)
        }

        If (LEqual (Arg0, 0x03))
        {
            \_SB.PSRV (0xC7, \_SB.PCI0.MODM.MPSW, 0x00, 0x00, 0x00)
            \_SB.PSRV (0x90, 0x00, 0x01, 0x03, 0x00)
            \_SB.PSRV (0x91, 0x10, 0x01, 0x01, 0x00)
            \_SB.PSRV (0x91, 0x40, 0x01, 0x01, 0x00)
        }

        If (LEqual (Arg0, 0x04))
        {
            \_SB.PSRV (0x90, 0x00, 0x01, 0x04, 0x00)
        }

        If (LEqual (Arg0, 0x05))
        {
            \_SB.PSRV (0x90, 0x00, 0x01, 0x05, 0x00)
        }

        If (LAnd (LNot (LLess (Arg0, 0x03)), LNot (LGreater (Arg0, 0x05))))
        {
            \_SB.HKEY.HSAV ()
        }

        Store (\_SB.ECPF (0x0101, 0x00, 0x00), \_SB.BAST)
        \_SB.ECPF (0x0206, Arg0, 0x00)
    }

    Scope (\_PR.CPU0)
    {
        Method (_PPC, 0, NotSerialized)
        {
            Return (0x00)
        }

        Method (_PCT, 0, NotSerialized)
        {
            If (And (CFGD, 0x4000))
            {
                Return (Package (0x02)
                {
                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000000800)
                    }, 

                    ResourceTemplate ()
                    {
                        Register (SystemIO, 0x08, 0x00, 0x0000000000000802)
                    }
                })
            }

            If (LAnd (And (CFGD, 0x02), And (PDC0, 0x01)))
            {
                Return (Package (0x02)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                    }, 

                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                    }
                })
            }

            Return (Package (0x02)
            {
                ResourceTemplate ()
                {
                    Register (SystemIO, 0x10, 0x00, 0x00000000000000B2)
                }, 

                ResourceTemplate ()
                {
                    Register (SystemIO, 0x08, 0x00, 0x00000000000000B3)
                }
            })
        }

        Method (_PSS, 0, NotSerialized)
        {
            If (LAnd (LNot (And (CFGD, 0x4000)), LAnd (And (CFGD, 0x02), And (PDC0, 0x01))))
            {
                Return (NPSS)
            }

            Return (SPSS)
        }

        Name (SPSS, Package (0x04)
        {
            Package (0x06)
            {
                0x000004B0, 
                0x00001388, 
                0x0000006E, 
                0x0000000A, 
                0x00000083, 
                0x00000000
            }, 

            Package (0x06)
            {
                0x000003E8, 
                0x00000FA0, 
                0x0000006E, 
                0x0000000A, 
                0x00000183, 
                0x00000001
            }, 

            Package (0x06)
            {
                0x00000320, 
                0x00000BB8, 
                0x0000006E, 
                0x0000000A, 
                0x00000283, 
                0x00000002
            }, 

            Package (0x06)
            {
                0x00000258, 
                0x00000BB8, 
                0x0000006E, 
                0x0000000A, 
                0x00000383, 
                0x00000003
            }
        })
        Name (NPSS, Package (0x04)
        {
            Package (0x06)
            {
                0x000004B0, 
                0x00001388, 
                0x0000000A, 
                0x0000000A, 
                0x00000C0D, 
                0x00000C0D
            }, 

            Package (0x06)
            {
                0x000003E8, 
                0x00000FA0, 
                0x0000000A, 
                0x0000000A, 
                0x00000A0B, 
                0x00000A0B
            }, 

            Package (0x06)
            {
                0x00000320, 
                0x00000BB8, 
                0x0000000A, 
                0x0000000A, 
                0x00000809, 
                0x00000809
            }, 

            Package (0x06)
            {
                0x00000258, 
                0x00000BB8, 
                0x0000000A, 
                0x0000000A, 
                0x00000607, 
                0x00000607
            }
        })
    }

    Scope (\_PR.CPU0)
    {
        Method (_CST, 0, NotSerialized)
        {
            If (And (CFGD, 0x4000))
            {
                Return (Package (0x02)
                {
                    0x01, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x01, 0x01, 0x0000000000000809)
                        }, 

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

            If (LAnd (And (CFGD, 0x80), LNot (PWRS)))
            {
                Return (Package (0x05)
                {
                    0x04, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                        }, 

                        0x01, 
                        0x01, 
                        0x03E8
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                        }, 

                        0x02, 
                        0x01, 
                        0x01F4
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001015)
                        }, 

                        0x03, 
                        0x55, 
                        0xFA
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001016)
                        }, 

                        0x03, 
                        0xB9, 
                        0x64
                    }
                })
            }

            If (And (CFGD, 0x40))
            {
                Return (Package (0x04)
                {
                    0x03, 
                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                        }, 

                        0x01, 
                        0x01, 
                        0x03E8
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                        }, 

                        0x02, 
                        0x01, 
                        0x01F4
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001015)
                        }, 

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

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

                        0x01, 
                        0x01, 
                        0x03E8
                    }, 

                    Package (0x04)
                    {
                        ResourceTemplate ()
                        {
                            Register (SystemIO, 0x08, 0x00, 0x0000000000001014)
                        }, 

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

            Return (Package (0x02)
            {
                0x01, 
                Package (0x04)
                {
                    ResourceTemplate ()
                    {
                        Register (FFixedHW, 0x00, 0x00, 0x0000000000000000)
                    }, 

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

    Scope (\)
    {
        Name (SSDT, Package (0x0C)
        {
            "CPU0IST ", 
            0x3F6E34E7, 
            0x00000235, 
            "CPU1IST ", 
            0x00000000, 
            0xF000FF53, 
            "CPU0CST ", 
            0x3F6E3309, 
            0x000001DE, 
            "CPU1CST ", 
            0x00000000, 
            0xF000FF53
        })
        Name (CFGD, 0x06D882F2)
        Name (\PDC0, 0x80000000)
        Name (\PDC1, 0x80000000)
    }

    Scope (\_PR.CPU0)
    {
        Name (HI0, 0x00)
        Name (HC0, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x08, CAP0)
            Store (CAP0, PDC0)
            If (LAnd (And (CFGD, 0x4000), LEqual (And (PDC0, 0x0A), 0x0A)))
            {
                If (And (CFGD, 0x03))
                {
                    OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, 0x01)), DerefOf (Index (SSDT, 0x02)))
                    Load (IST0, HI0)
                }

                If (And (CFGD, 0x10))
                {
                    OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08)))
                    Load (CST0, HC0)
                }
            }
        }
    }

    Scope (\_PR.CPU1)
    {
        Name (HI1, 0x00)
        Name (HC1, 0x00)
        Method (_PDC, 1, NotSerialized)
        {
            CreateDWordField (Arg0, 0x08, CAP1)
            Store (CAP1, PDC1)
            If (LAnd (And (CFGD, 0x4000), LEqual (And (PDC1, 0x0A), 0x0A)))
            {
                If (And (CFGD, 0x03))
                {
                    OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05)))
                    Load (IST1, HI1)
                }

                If (And (CFGD, 0x10))
                {
                    OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B)))
                    Load (CST1, HC1)
                }
            }

            If (LEqual (And (PDC1, 0x0A), 0x0A))
            {
                If (LEqual (WTHT, 0x01))
                {
                    Store (0x00, WTHT)
                    \_SB.PSRV (0xC9, 0x02, 0x01, 0x00, 0x00)
                }
            }
        }
    }
}

-------------- next part --------------
Id Refs Address    Size     Name
 1   74 0xc0400000 32f394   kernel
	Contains modules:
		Id Name
		152 null
		153 pci/fixup_pci
		154 pci/ignore_pci
		155 pci/isab
		156 pcib/pci
		157 pci/pcib
		158 watchdog
		159 devfs
		160 g_dev
		161 g_disk
		162 g_vfs
		163 isab/isa
		164 eisab/isa
		165 isa/isahint
		166 isa/orm
		167 isa/pnp
		168 elf32
		169 shell
		170 cpu/cpufreq
		171 rootbus
		172 ksem_init
		173 ksem_open
		174 ksem_unlink
		175 ksem_close
		176 ksem_post
		177 ksem_wait
		178 ksem_timedwait
		179 ksem_trywait
		180 ksem_getvalue
		181 ksem_destroy
		182 sem
		183 enc
		184 ether
		185 loop
		186 zlib
		187 crypto
		188 cryptodev
		189 ufs
		190 g_class
		191 atkbdc/atkbd
		192 isa/atkbdc
		193 acpi/atkbdc
		194 atkbdc/psm
		195 isa/psmcpnp
		196 acpi/psmcpnp
		197 scterm-sc
		198 scrndr-vga
		199 g_bsd
		200 g_mbr
		201 g_mbrext
		202 isa/pnpbios
		203 pci/ioapic
		204 nexus/legacy
		205 legacy/cpu
		206 legacy/mptable_pcib
		207 pci/mptable_pcib
		208 root/nexus
		209 isa/sysresource
		210 isa/atpic
		211 acpi/atpic
		212 isa/attimer
		213 acpi/attimer
		214 legacy/isa
		215 isa/atdma
		216 acpi/atdma
		217 nexus/npx
		218 isa/npxisa
		219 acpi/npxisa
		220 isa/pmtimer
		221 legacy/pcib
		222 pci/hostb
		223 isa/pcibus_pnp
		224 pci/pcibios_pcib
		225 legacy/pir
		226 isa/sc
		227 isa/vga
 2    2 0xc0730000 1f5b0    linux.ko
	Contains modules:
		Id Name
		18 linuxelf
		19 linuxaout
 3    2 0xc0750000 4818     sysvmsg.ko
	Contains modules:
		Id Name
		 1 sysvmsg
		 2 msgrcv
		 3 msgsnd
		 4 msgget
		 5 msgctl
		 6 msgsys
 4    2 0xc0755000 6360     sysvsem.ko
	Contains modules:
		Id Name
		 7 sysvsem
		 8 semop
		 9 semget
		10 __semctl
		11 semsys
 5    2 0xc075c000 4a74     sysvshm.ko
	Contains modules:
		Id Name
		12 sysvshm
		13 shmget
		14 shmdt
		15 shmctl
		16 shmat
		17 shmsys
 6    1 0xc0761000 5860     if_tap.ko
	Contains modules:
		Id Name
		20 if_tap
 7    1 0xc0767000 f964     if_iwi.ko
	Contains modules:
		Id Name
		23 pci/iwi
 8    3 0xc0777000 222d8    wlan.ko
	Contains modules:
		Id Name
		21 wlan
 9    3 0xc079a000 311c     firmware.ko
	Contains modules:
		Id Name
		22 firmware
10    1 0xc079e000 6758     if_rl.ko
	Contains modules:
		Id Name
		48 rl/miibus
		49 cardbus/rl
		50 pci/rl
11    2 0xc07a5000 1edac    miibus.ko
	Contains modules:
		Id Name
		24 miibus/ukphy
		25 miibus/e1000phy
		26 miibus/xlphy
		27 miibus/nsphy
		28 miibus/mlphy
		29 miibus/tlphy
		30 miibus/rlphy
		31 miibus/amphy
		32 miibus/dcphy
		33 miibus/pnphy
		34 miibus/inphy
		35 miibus/tdkphy
		36 miibus/bmtphy
		37 miibus/brgphy
		38 miibus/xmphy
		39 miibus/pnaphy
		40 miibus/lxtphy
		41 miibus/qsphy
		42 miibus/acphy
		43 miibus/nsgphy
		44 miibus/rgephy
		45 miibus/ruephy
		46 miibus/gentbi
		47 miibus/ip1000phy
12    1 0xc07c4000 7134     snd_ich.ko
	Contains modules:
		Id Name
		52 pci/snd_ich
13    2 0xc07cc000 26968    sound.ko
	Contains modules:
		Id Name
		51 sound
14    6 0xc07f3000 23184    usb.ko
	Contains modules:
		Id Name
		53 uhub/uhub
		54 usb/uhub
		55 ehci/usb
		56 uhci/usb
		57 ohci/usb
		58 cardbus/uhci
		59 pci/uhci
		60 cardbus/ohci
		61 pci/ohci
		62 cardbus/ehci
		63 pci/ehci
15    1 0xc0817000 519c     ugen.ko
	Contains modules:
		Id Name
		64 uhub/ugen
16    1 0xc081d000 7c54     umass.ko
	Contains modules:
		Id Name
		78 uhub/umass
17    2 0xc0825000 40450    cam.ko
	Contains modules:
		Id Name
		65 cam
		66 probe
		67 xpt
		68 cd
		69 ch
		70 da
		71 pass
		72 pt
		73 sa
		74 ses
		75 sg
		76 targbh
		77 targ
18    1 0xc0866000 3780     umodem.ko
	Contains modules:
		Id Name
		80 uhub/umodem
19    3 0xc086a000 3694     ucom.ko
	Contains modules:
		Id Name
		79 ucom
20    2 0xc086e000 17920    agp.ko
	Contains modules:
		Id Name
		81 pci/agp_i810
		82 pci/agp_intel
		83 pci/agp_via
		84 pci/agp_sis
		85 pci/agp_ali
		86 pci/agp_amd
		87 pci/agp_nvidia
		88 pci/agp_ati
		89 pci/agp_amd64
21    1 0xc0886000 19ac     accf_data.ko
	Contains modules:
		Id Name
		90 accf_data
22    1 0xc0888000 2484     accf_http.ko
	Contains modules:
		Id Name
		91 accf_http
23    1 0xc088b000 c31c     random.ko
	Contains modules:
		Id Name
		92 random
24    1 0xc0898000 1cfc     io.ko
	Contains modules:
		Id Name
		93 io
25    1 0xc089a000 8884     aio.ko
	Contains modules:
		Id Name
		94 aio
		95 lio_listio
		96 aio_waitcomplete
		97 aio_write
		98 aio_read
		99 aio_error
		100 aio_cancel
		101 aio_suspend
		102 aio_return
26    2 0xc08a3000 4d00     mem.ko
	Contains modules:
		Id Name
		103 mem
27    1 0xc08a8000 55f0     kbdmux.ko
	Contains modules:
		Id Name
		104 kbdmux
28    1 0xc08ae000 1d498    kqemu.ko
	Contains modules:
		Id Name
		105 kqemu
29    5 0xc08cc000 e8c8     ata.ko
	Contains modules:
		Id Name
		106 ata
30    1 0xc08db000 2166c    atapci.ko
	Contains modules:
		Id Name
		107 atapci/ata
		108 pci/atapci
31    1 0xc08fd000 25f0     atacard.ko
	Contains modules:
		Id Name
		109 pccard/ata
32    1 0xc0900000 3b40     atadisk.ko
	Contains modules:
		Id Name
		110 ata/ad
33    1 0xc0904000 7100     atapicd.ko
	Contains modules:
		Id Name
		111 ata/acd
34    1 0xc090c000 2ec8     wlan_wep.ko
	Contains modules:
		Id Name
		112 wlan_wep
35    1 0xc090f000 300fc    iwi_bss.ko
	Contains modules:
		Id Name
		113 iwi_bss_fw
36    1 0xc0940000 b77c     cbb.ko
	Contains modules:
		Id Name
		115 isa/cbb
		116 pci/cbb
37    3 0xc094c000 3514     exca.ko
	Contains modules:
		Id Name
		114 exca
38    1 0xc0950000 76ec     cardbus.ko
	Contains modules:
		Id Name
		117 cbb/cardbus
39    1 0xc0958000 ef34     pccard.ko
	Contains modules:
		Id Name
		118 cbb/pccard
		119 pcic/pccard
40    1 0xc0967000 4234     uplcom.ko
	Contains modules:
		Id Name
		120 uhub/uplcom
41    1 0xc096c000 3374     smb.ko
	Contains modules:
		Id Name
		121 smbus/smb
42    3 0xc0970000 2c1c     smbus.ko
	Contains modules:
		Id Name
43    1 0xc0973000 2af8     ichwd.ko
	Contains modules:
		Id Name
		122 isa/ichwd
44    1 0xc0976000 415c     ichsmb.ko
	Contains modules:
		Id Name
		123 ichsmb/smbus
		124 pci/ichsmb
45    1 0xc097b000 a4fc     cpufreq.ko
	Contains modules:
		Id Name
		125 pci/ichss_pci
		126 cpu/ichss
		127 cpu/est
		128 cpu/p4tcc
		129 cpu/powernow
		130 cpu/smist
46    1 0xc0986000 3898     acpi_panasonic.ko
	Contains modules:
		Id Name
		150 acpi/acpi_panasonic
47    2 0xc098a000 64df0    acpi.ko
	Contains modules:
		Id Name
		131 nexus/acpi
		132 acpi/acpi_button
		133 acpi/acpi_isab
		134 pcib/acpi_pci
		135 acpi/acpi_pcib
		136 pci/acpi_pcib
		137 acpi/acpi_sysresource
		138 acpi/acpi_timer
		139 acpi/acpi_pci_link
		140 acpi/acpi_tz
		141 acpi/acpi_acad
		142 acpi/acpi_cmbat
		143 acpi/cpu
		144 acpi/acpi_ec
		145 acpi/acpi_hpet
		146 acpi/acpi_lid
		147 cpu/acpi_perf
		148 acpi/acpi_smbat
		149 cpu/acpi_throttle
48    1 0xc09ef000 6e40     i915.ko
	Contains modules:
		Id Name
		151 agp/i915
49    2 0xc09f6000 10c68    drm.ko
	Contains modules:
		Id Name
50    2 0xc4e54000 6000     procfs.ko
	Contains modules:
		Id Name
		229 procfs
51    2 0xc4e5b000 6000     pseudofs.ko
	Contains modules:
		Id Name
		228 pseudofs
52    1 0xc4e61000 7000     linprocfs.ko
	Contains modules:
		Id Name
		230 linprocfs
53    1 0xc4e6a000 2000     ntfs_iconv.ko
	Contains modules:
		Id Name
		235 ntfs_iconv
54    1 0xc4e6c000 4000     libiconv.ko
	Contains modules:
		Id Name
		231 iconv
		232 iconv_xlat
		233 iconv_xlat16
55    1 0xc4e7f000 b000     ntfs.ko
	Contains modules:
		Id Name
		234 ntfs
56    2 0xc4f74000 e000     ipfw.ko
	Contains modules:
		Id Name
		236 ipfw
57    1 0xc4f8e000 4000     ipdivert.ko
	Contains modules:
		Id Name
		237 ipdivert
58    1 0xc50f8000 31000    nfsclient.ko
	Contains modules:
		Id Name
		238 nfslock
		239 nfs
		240 nfs4


More information about the freebsd-acpi mailing list