Daemon News Ezine BSD News BSD Mall BSD Support Forum BSD Advocacy BSD Updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

i386/54756: ACPI suspend/resume problem on CF-W2 laptop



>Number:         54756
>Category:       i386
>Synopsis:       ACPI suspend/resume problem on CF-W2 laptop
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 22 10:00:34 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Youki Kadobayashi
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
Nara Institute of Science and Technology, Japan
>Environment:
System: FreeBSD 5.1-CURRENT #3: Tue Jul 22 23:59:28 JST 2003
    root@xxxxxxxxxxxxxxxxxx:/usr/obj/usr/src/sys/GENERIC
Hardware: Panasonic CF-W2

>Description:

Suspend/resume does not work correctly on Panasonic CF-W2.
I observed the same symptom on 5.1-CURRENT (yesterday) and 5.1-RELEASE.

"acpiconf -s 3" suspends the machine.  But, when it's resumed, the LCD display
remains blank.  The keyboard is operational so that I can reboot the machine
by typing blindly.

Also, lid-close after acpiconf -s 3 mysteriously resumes the system.

"acpiconf -s 1" produces the following error; it does not suspend.
acpi0: AcpiGetSleepTypeData failed - AE_NOT_FOUND

dmesg, acpidump, sysctl hw.acpi and pciconf -lv output follows.

dmesg output --------------------------------------------------------

Copyright (c) 1992-2003 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 5.1-CURRENT #3: Tue Jul 22 23:59:28 JST 2003
    root@xxxxxxxxxxxxxxxxxx:/usr/obj/usr/src/sys/GENERIC
Preloaded elf kernel "/boot/kernel/kernel" at 0xc073d000.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc073d294.
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 598503332 Hz
CPU: Intel(R) Pentium(R) M processor  900MHz (598.50-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x695  Stepping = 5
  Features=0xa7e9f9bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,TM,PBE>
real memory  = 258932736 (246 MB)
avail memory = 243662848 (232 MB)
Pentium Pro MTRR support enabled
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <PTLTD    RSDT  > on motherboard
pcibios: BIOS version 2.10
Using $PIR table, 8 entries at 0xc00fdf40
acpi0: power button is handled as a fixed feature programming model.
Timecounter "ACPI-fast"  frequency 3579545 Hz
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_tz0: <thermal zone> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib0: slot 2 INTA is routed to irq 9
pcib0: slot 29 INTA is routed to irq 9
pcib0: slot 29 INTD is routed to irq 11
pcib0: slot 31 INTB is routed to irq 9
pcib0: slot 31 INTB is routed to irq 9
pcib0: slot 31 INTB is routed to irq 9
pci0: <base peripheral> at device 0.1 (no driver attached)
pci0: <base peripheral> at device 0.3 (no driver attached)
agp0: <Intel 8285xM (85xGM GMCH) SVGA controller> port 0x1800-0x1807 mem 0xe0000000-0xe007ffff,0xe8000000-0xefffffff irq 9 at device 2.0 on pci0
agp0: detected 8060k stolen memory
agp0: aperture size is 128M
pci0: <display> at device 2.1 (no driver attached)
uhci0: <Intel 82801DB (ICH4) USB controller USB-A> port 0x1820-0x183f irq 9 at device 29.0 on pci0
usb0: <Intel 82801DB (ICH4) 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
pci0: <serial bus, USB> at device 29.7 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pcib1: slot 1 INTA is routed to irq 3
pcib1: slot 4 INTA is routed to irq 7
pcib1: slot 5 INTB is routed to irq 5
rl0: <RealTek 8139 10/100BaseTX, rev. D> port 0x3000-0x30ff mem 0xe0201000-0xe02010ff irq 3 at device 1.0 on pci1
rl0: Ethernet address: 00:80:45:2b:1e:58
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pci1: <network> at device 4.0 (no driver attached)
cbb0: <RF5C475 PCI-CardBus Bridge> at device 5.0 on pci1
pcib1: can't decode default resource id 16 for cbb0, bypassing
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pcib1: possible interrupts:  10
pcib1: slot 5 INTA routed to irq 10 via \\_SB_.PCI0.LPC0.LNKG
pci1: <base peripheral> at device 5.1 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH4 UDMA100 controller> port 0x1810-0x181f,0-0x3,0-0x7,0-0x3,0-0x7 at device 31.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
pci0: <multimedia, audio> at device 31.5 (no driver attached)
pci0: <simple comms> at device 31.6 (no driver attached)
acpi_button0: <Power Button> on acpi0
acpi_acad0: <AC adapter> on acpi0
acpi_cmbat0: <Control method Battery> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_ec0: <embedded controller: GPE 0x1c> port 0x66,0x62 on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
orm0: <Option ROMs> at iomem 0xe0000-0xeffff,0xdc000-0xdffff,0xc0000-0xcc7ff on isa0
pmtimer0 on isa0
fdc0: ready for input in output
fdc0: cmd 3 failed at out byte 1 of 3
ppc0: parallel port not found.
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 8250 or not responding
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounters tick every 10.000 msec
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
system power profile changed to 'economy'
cbb0: Unsupported card type detected
ata1-slave: timeout waiting for interrupt
ata1-slave: ATAPI identify failed
ad0: 38154MB <TOSHIBA MK4020GLS> [77520/16/63] at ata0-master UDMA100
acd0: CD-RW <UJDA747 DVD/CDRW> at ata1-master PIO4
Mounting root from ufs:/dev/ad0s2a

acpidump output --------------------------------------------------------

/*
RSD PTR: Checksum=198, OEMID=PTLTD, RsdtAddress=0x0f6f6e87
 */
/*
RSDT: Length=48, Revision=1, Checksum=202,
	OEMID=PTLTD, OEM Table ID=  RSDT, OEM Revision=0x6040000,
	Creator ID= LTP, Creator Revision=0x0
 */
/*
	Entries={ 0x0f6fbf54, 0x0f6fbfd8, 0x0f6f6eb7 }
 */
/*
	DSDT=0xf6f722e
	INT_MODEL=PIC
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0x0
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1020-0x1020
	PM2_TMR_BLK=0x1008-0x100b
	PM2_GPE0_BLK=0x1028-0x102f
	P_LVL2_LAT=1ms, P_LVL3_LAT=185ms
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=1, DUTY_WIDTH=3
	DAY_ALRM=13, MON_ALRM=0, CENTURY=50
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
 */
/*
DSDT: Length=19750, Revision=1, Checksum=149,
	OEMID=MATBIO, OEM Table ID=CFW2-1, OEM Revision=0x6040000,
	Creator ID=MSFT, Creator Revision=0x100000e
 */
DefinitionBlock (
    "acpi_dsdt.aml",	//Output filename
    "DSDT",		//Signature
    0x1,		//DSDT Revision
    "MATBIO",		//OEMID
    "CFW2-1",		//TABLE ID
    0x6040000		//OEM Revision
)

{
Scope(_SB_) {
    OperationRegion(SMI0, SystemIO, 0x0000fe00, 0x00000002)
    Field(SMI0, AnyAcc, NoLock, Preserve) {
        SMIC,	8
    }
    OperationRegion(SMI1, SystemMemory, 0x0f6fcd4d, 0x00000200)
    Field(SMI1, AnyAcc, NoLock, Preserve) {
        BCMD,	8,
        DID_,	32,
        INFO,	4056
    }
    Field(SMI1, AnyAcc, NoLock, Preserve) {
        Offset(0x5),
        INF_,	8
    }
    Field(SMI1, AnyAcc, NoLock, Preserve) {
        Offset(0x5),
        INFD,	32
    }
    Field(SMI1, AnyAcc, NoLock, Preserve) {
        Offset(0x5),
        INFP,	128
    }
    Mutex(PSMX, 1)
    Method(PSRV, 5, Serialized) {
        Acquire(PSMX, 0xffff)
        If(Arg2) {
            Store(Arg3, INFO)
        }
        Store(Arg1, DID_)
        Store(Arg0, BCMD)
        Store(0x0, SMIC)
        If(LEqual(Arg4, 0x0)) {
            Store(Zero, Local0)
        }
        Else {
            If(LEqual(Arg4, 0x1)) {
                Store(INF_, Local0)
            }
            Else {
                If(LEqual(Arg4, 0x3)) {
                    Store(INFD, Local0)
                }
                Else {
                    If(LEqual(Arg4, 0x4)) {
                        Store(INFP, Local0)
                    }
                    Else {
                        Store(INFO, Local0)
                    }
                }
            }
        }
        Release(PSMX)
        Return(Local0)
    }
    Method(ECRD, 1) {
        And(Arg0, 0xff, Local0)
        Return(PSRV(0x98, Local0, 0x0, 0x0, 0x1))
    }
    Method(ECER, 1) {
        And(Arg0, 0xff, Local0)
        Return(PSRV(0xb2, Local0, 0x0, 0x0, 0x1))
    }
    Method(ECR2, 1) {
        And(Arg0, 0xff, Local0)
        Return(PSRV(0x9a, Local0, 0x0, 0x0, 0x3))
    }
    Method(ECMD, 3) {
        And(Arg0, 0xff, Local0)
        And(Arg1, 0xff, Local1)
        And(Arg2, 0xff, Local2)
        PSRV(0x99, Add(Add(Local0, ShiftLeft(Local1, 0x8, ), ), ShiftLeft(Local2, 0x10, ), ), 0x0, 0x0, 0x0)
    }
    Method(ECWR, 2) {
        And(Arg0, 0xff, Local0)
        And(Arg1, 0xff, Local1)
        PSRV(0x99, Add(Local0, ShiftLeft(Local1, 0x10, ), ), 0x0, 0x0, 0x0)
    }
    Method(ECEW, 2) {
        And(Arg0, 0xff, Local0)
        PSRV(0xb3, Local0, 0x1, Arg1, 0x0)
    }
    Method(ECW4, 2) {
        And(Arg0, 0xff, Local0)
        PSRV(0xa2, Local0, 0x1, Arg1, 0x0)
    }
    Method(ECW2, 2) {
        And(Arg0, 0xff, Local0)
        PSRV(0xa3, Local0, 0x1, Arg1, 0x0)
    }
    Method(ECRB, 1) {
        Store(\_SB_.ECR2(Arg0), Local0)
        If(And(Local0, 0x8000, )) {
            Or(0xffff0000, Local0, Local0)
        }
        Return(Local0)
    }
    Method(RRTC, 1) {
        And(Arg0, 0xff, Local0)
        Return(PSRV(0x95, 0x5, 0x1, Local0, 0x1))
    }
    Method(DPSX, 2) {
        Or(Arg0, 0x0, Local0)
        Or(Local0, Arg1, Local0)
        PSRV(0x94, Local0, 0x0, 0x0, 0x0)
    }
}
Scope(_SB_) {
    Method(ECPF, 3) {
        If(LEqual(Arg0, 0x0100)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC01())
        }
        If(LEqual(Arg0, 0x0101)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC02(Arg1))
        }
        If(LEqual(Arg0, 0x0110)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC03(Arg1, Arg2))
        }
        If(LEqual(Arg0, 0x0111)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC04(Arg1, Arg2))
        }
        If(LEqual(Arg0, 0x0112)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC05(Arg1, Arg2))
        }
        If(LEqual(Arg0, 0x0200)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC06())
        }
        If(LEqual(Arg0, 0x0201)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC07())
        }
        If(LEqual(Arg0, 0x0202)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC08())
        }
        If(LEqual(Arg0, 0x0203)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC09())
        }
        If(LEqual(Arg0, 0x0204)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC0A())
        }
        If(LEqual(Arg0, 0x0205)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC0B(Arg1))
        }
        If(LEqual(Arg0, 0x0206)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC0C(Arg1))
        }
        If(LEqual(Arg0, 0x0207)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC0D(Arg1))
        }
        If(LEqual(Arg0, 0x0208)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC0E(Arg1))
        }
        If(LEqual(Arg0, 0x0209)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC0F(Arg1))
        }
        If(LEqual(Arg0, 0x020a)) {
            Return(\_SB_.PCI0.LPC0.EC0_.EC10(Arg1, Arg2))
        }
        Return(0xffffffff)
    }
}
Scope(\_SB_) {
    Name(CRUN, Zero)
    Method(CRST) {
        If(CRUN) {
            Store(Zero, \_SB_.PCI0.LPC0.CREN)
        }
        Else {
            Store(One, \_SB_.PCI0.LPC0.CREN)
        }
    }
    Method(CRIN) {
        If(LNot(PSRV(0xb8, Zero, Zero, Zero, One))) {
            Or(CRUN, One, CRUN)
        }
        CRST()
    }
    Method(CRCT, 2) {
        If(Arg1) {
            And(CRUN, Not(Arg0, ), CRUN)
        }
        Else {
            Or(CRUN, Arg0, CRUN)
        }
        CRST()
    }
}
Scope(_PR_) {
    Processor(CPU0, 0, 0x1010, 0x6) {
        Method(_CST) {
            If(\_SB_.PSRV(0xc1, 0x0, 0x0, 0x0, 0x1)) {
                Return(Package(0x5) {
                    0x4,
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x7f, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x1,
                        0x1,
                        0x03e8,
                    },
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0x14, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x2,
                        0x1,
                        0x01f4,
                    },
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x3,
                        0x55,
                        0xfa,
                    },
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0x16, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x3,
                        0xb9,
                        0x64,
                    },
                })
            }
            Else {
                Return(Package(0x4) {
                    0x3,
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x7f, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x1,
                        0x1,
                        0x03e8,
                    },
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0x14, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x2,
                        0x1,
                        0x01f4,
                    },
                    Package(0x4) {
                        Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0x15, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                        0x3,
                        0x55,
                        0xfa,
                    },
                })
            }
        }
        Name(PDC0, 0x0)
        Method(_PDC, 1) {
            Store(SizeOf(Arg0), Local0)
            Name(PDCB, Buffer(Local0) { })
            Store(Arg0, PDCB)
            CreateDWordField(PDCB, 0x0, REV_)
            CreateDWordField(PDCB, 0x4, SIZE)
            CreateDWordField(PDCB, 0x8, DAT0)
            If(LAnd(LEqual(REV_, 0x1), LGreater(SIZE, 0x0))) {
                If(And(DAT0, 0x1, )) {
                    Store(0x1, PDC0)
                }
            }
        }
        Method(_PCT) {
            If(LEqual(PDC0, 0x1)) {
                Return(Package(0x2) {
                    Buffer(0x11) {0x82, 0xc, 0x0, 0x7f, 0x40, 0x0, 0x0, 0x99, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                    Buffer(0x11) {0x82, 0xc, 0x0, 0x7f, 0x10, 0x0, 0x0, 0x98, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                })
            }
            Else {
                Return(Package(0x2) {
                    Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x10, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                    Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0x80, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
                })
            }
        }
        Method(_PPC) {
            Return(0x0)
        }
    }
}
Method(MIN_, 2) {
    If(LLess(Arg0, Arg1)) {
        Return(Arg0)
    }
    Else {
        Return(Arg1)
    }
}
Method(SLEN, 1) {
    Return(SizeOf(Arg0))
}
Method(S2BF, 1, Serialized) {
    Add(SLEN(Arg0), One, Local0)
    Name(BUFF, Buffer(Local0) { })
    Store(Arg0, BUFF)
    Return(BUFF)
}
Method(SCMP, 2) {
    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, 0x0)
Method(CKOS) {
    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(0x1, OSID)
            }
            Else {
                If(LEqual(SCMP(\_OS_, "Microsoft WindowsME: Millennium Edition"), Zero)) {
                    Store(0x2, OSID)
                }
                Else {
                    Store(0xff, OSID)
                }
            }
        }
    }
    Return(OSID)
}
Scope(\_TZ_) {
    ThermalZone(TZC_) {
        Name(INIT, Zero)
        Name(CSCP, Zero)
        Name(PSV_, 0x0dca)
        Name(CRT_, 0x0e2e)
        Method(INIP) {
            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, 0xc)
        Name(_TSP, 0x28)
        Method(_TMP) {
            Store(\_SB_.ECPF(0x0201, Zero, Zero), Local0)
            If(LGreater(Local0, CRT_)) {
                \_SB_.PSRV(0x9c, 0x0, 0x0, 0x0, 0x0)
            }
            Return(Local0)
        }
        Method(_PSV) {
            \_TZ_.TZC_.INIP()
            Return(PSV_)
        }
        Name(_PSL, Package(0x1) {
            \_PR_.CPU0,
        })
        Method(_CRT) {
            \_TZ_.TZC_.INIP()
            Return(CRT_)
        }
        Method(_SCP, 1) {
            Store(Arg0, CSCP)
            Store(Zero, INIT)
            \_TZ_.TZC_.INIP()
            Notify(\_TZ_.TZC_, 0x81)
        }
    }
}
Name(_S0_, Package(0x3) {
    0x0,
    0x0,
    0x0,
})
Name(_S3_, Package(0x3) {
    0x5,
    0x5,
    0x0,
})
Name(_S4_, Package(0x3) {
    0x6,
    0x6,
    0x0,
})
Name(_S5_, Package(0x3) {
    0x7,
    0x7,
    0x0,
})
Name(\_SB_.BAST, 0x0)
Name(FWSO, "FWSO")
Method(_PTS, 1) {
    \_SB_.CRCT(0x2, Zero)
    If(LNot(LEqual(Arg0, 0x5))) {
        \_SB_.PSRV(0x92, 0x2, 0x0, 0x0, 0x0)
    }
    If(LEqual(Arg0, 0x3)) {
        \_SB_.PSRV(0xc7, \_SB_.PCI0.SMDM.MPSW, 0x0, 0x0, 0x0)
        \_SB_.PSRV(0x90, 0x0, 0x1, 0x3, 0x0)
        \_SB_.PSRV(0x91, 0x10, 0x1, 0x1, 0x0)
        \_SB_.PSRV(0x91, 0x40, 0x1, 0x1, 0x0)
    }
    If(LEqual(Arg0, 0x4)) {
        \_SB_.PCI0.IDEC.SVS4()
        \_SB_.PSRV(0x90, 0x0, 0x1, 0x4, 0x0)
    }
    If(LEqual(Arg0, 0x5)) {
        \_SB_.PSRV(0x90, 0x0, 0x1, 0x5, 0x0)
    }
    If(LAnd(LNot(LLess(Arg0, 0x3)), LNot(LGreater(Arg0, 0x5)))) {
        \_SB_.HKEY.HSAV()
    }
    Store(\_SB_.ECPF(0x0101, 0x0, 0x0), \_SB_.BAST)
    \_SB_.ECPF(0x0206, Arg0, 0x0)
}
Method(_WAK, 1) {
    \_SB_.PSRV(0x92, 0x3, 0x1, \CKOS(), 0x0)
    If(LOr(LEqual(Arg0, 0x4), LEqual(Arg0, 0x3))) {
        Store(\_SB_.PSRV(0x93, 0x1, 0x0, 0x0, 0x3), Local0)
        If(LOr(LEqual(Local0, 0x6), LEqual(Local0, 0x1))) {
            Notify(\_SB_.PWRB, 0x2)
        }
    }
    If(LAnd(LNot(LLess(Arg0, 0x3)), LNot(LGreater(Arg0, 0x5)))) {
        \_SB_.HKEY.HRES()
    }
    \_SB_.ECPF(0x0206, 0x0, 0x0)
    Store(\_SB_.ECPF(0x0101, 0x0, 0x0), Local0)
    If(XOr(\_SB_.BAST, Local0, )) {
        If(LEqual(Local0, 0x1)) {
            Notify(\_SB_.BATA, 0x0)
        }
        Else {
            Notify(\_SB_.BATA, 0x1)
        }
        \_SB_.PCI0.LPC0.EC0_._INI()
    }
    \_SB_.CRCT(0x2, One)
    \_SB_.CSTS(0x0)
    Return(Package(0x2) {
        0x0,
        0x0,
    })
}
Scope(\_SI_) {
    Method(_SST, 1) {
        If(LAnd(LNot(LEqual(Arg0, 0x4)), LNot(LEqual(Arg0, 0x0)))) {
            \_SB_.PSRV(0x92, 0x1, 0x1, Arg0, 0x0)
        }
    }
}
Scope(_GPE) {
    Method(_L0B) {
        Notify(\_SB_.PCI0.PCIB, 0x2)
    }
    Method(_L1B) {
        Notify(\_SB_.PWRB, 0x2)
    }
}
Scope(_SB_) {
    Device(PCI0) {
        Name(_HID, 0x030ad041)
        Name(_BBN, 0x0)
        Method(_INI) {
            \_SB_.PSRV(0x92, 0x3, 0x1, \CKOS(), 0x0)
        }
        Name(_ADR, 0x0)
        OperationRegion(HBUS, PCI_Config, 0x40, 0xc0)
        Field(HBUS, DWordAcc, NoLock, Preserve) {
            Offset(0x12),
            ,	1,
            IGDP,	1,
            ,	1,
            Offset(0x14),
            ,	7,
            IGDE,	1,
            Offset(0x18),
            ,	7,
            HENA,	1,
            ,	4,
            PM0H,	2,
            Offset(0x1a),
            PM1L,	2,
            ,	2,
            PM1H,	2,
            Offset(0x1b),
            PM2L,	2,
            ,	2,
            PM2H,	2,
            Offset(0x1c),
            PM3L,	2,
            ,	2,
            PM3H,	2,
            Offset(0x1d),
            PM4L,	2,
            ,	2,
            PM4H,	2,
            Offset(0x1e),
            PM5L,	2,
            ,	2,
            PM5H,	2,
            Offset(0x1f),
            PM6L,	2,
            ,	2,
            PM6H,	2
        }
        Name(BUF0, Buffer(0x0201) {0x88, 0xe, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x87, 0x18, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xc, 0x0, 0x0, 0x0, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x87, 0x18, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 
 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
  0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0xfe, 0xff, 0xff, 0xc1, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x79, 0x0 })
        Method(_CRS, 0, Serialized) {
            If(PM1L) {
                CreateDWordField(BUF0, 0x80, C0LN)
                Store(Zero, C0LN)
            }
            If(LEqual(PM1L, 0x1)) {
                CreateBitField(BUF0, 0x0378, C0RW)
                Store(Zero, C0RW)
            }
            If(PM1H) {
                CreateDWordField(BUF0, 0x9b, C4LN)
                Store(Zero, C4LN)
            }
            If(LEqual(PM1H, 0x1)) {
                CreateBitField(BUF0, 0x0450, C4RW)
                Store(Zero, C4RW)
            }
            If(PM2L) {
                CreateDWordField(BUF0, 0xb6, C8LN)
                Store(Zero, C8LN)
            }
            If(LEqual(PM2L, 0x1)) {
                CreateBitField(BUF0, 0x0528, C8RW)
                Store(Zero, C8RW)
            }
            If(PM2H) {
                CreateDWordField(BUF0, 0xd1, CCLN)
                Store(Zero, CCLN)
            }
            If(LEqual(PM2H, 0x1)) {
                CreateBitField(BUF0, 0x0600, CCRW)
                Store(Zero, CCRW)
            }
            If(PM3L) {
                CreateDWordField(BUF0, 0xec, D0LN)
                Store(Zero, D0LN)
            }
            If(LEqual(PM3L, 0x1)) {
                CreateBitField(BUF0, 0x06d8, D0RW)
                Store(Zero, D0RW)
            }
            If(PM3H) {
                CreateDWordField(BUF0, 0x0107, D4LN)
                Store(Zero, D4LN)
            }
            If(LEqual(PM3H, 0x1)) {
                CreateBitField(BUF0, 0x07b0, D4RW)
                Store(Zero, D4RW)
            }
            If(PM4L) {
                CreateDWordField(BUF0, 0x0122, D8LN)
                Store(Zero, D8LN)
            }
            If(LEqual(PM4L, 0x1)) {
                CreateBitField(BUF0, 0x0888, D8RW)
                Store(Zero, D8RW)
            }
            If(PM4H) {
                CreateDWordField(BUF0, 0x013d, DCLN)
                Store(Zero, DCLN)
            }
            If(LEqual(PM4H, 0x1)) {
                CreateBitField(BUF0, 0x0960, DCRW)
                Store(Zero, DCRW)
            }
            If(PM5L) {
                CreateDWordField(BUF0, 0x0158, E0LN)
                Store(Zero, E0LN)
            }
            If(LEqual(PM5L, 0x1)) {
                CreateBitField(BUF0, 0x0a38, E0RW)
                Store(Zero, E0RW)
            }
            If(PM5H) {
                CreateDWordField(BUF0, 0x0173, E4LN)
                Store(Zero, E4LN)
            }
            If(LEqual(PM5H, 0x1)) {
                CreateBitField(BUF0, 0x0b10, E4RW)
                Store(Zero, E4RW)
            }
            If(PM6L) {
                CreateDWordField(BUF0, 0x018e, E8LN)
                Store(Zero, E8LN)
            }
            If(LEqual(PM6L, 0x1)) {
                CreateBitField(BUF0, 0x0be8, E8RW)
                Store(Zero, E8RW)
            }
            If(PM6H) {
                CreateDWordField(BUF0, 0x01a9, ECLN)
                Store(Zero, ECLN)
            }
            If(LEqual(PM6H, 0x1)) {
                CreateBitField(BUF0, 0x0cc0, ECRW)
                Store(Zero, ECRW)
            }
            If(PM0H) {
                CreateDWordField(BUF0, 0x01c4, F0LN)
                Store(Zero, F0LN)
            }
            If(LEqual(PM0H, 0x1)) {
                CreateBitField(BUF0, 0x0d98, F0RW)
                Store(Zero, F0RW)
            }
            CreateDWordField(BUF0, 0x01d3, M1MN)
            CreateDWordField(BUF0, 0x01d7, M1MX)
            CreateDWordField(BUF0, 0x01df, M1LN)
            Multiply(0x02000000, \_SB_.PCI0.MBUS.DRB3, M1MN)
            Add(Subtract(M1MX, M1MN, ), 0x1, M1LN)
            Return(BUF0)
        }
        Device(GMCH) {
            Name(_ADR, 0x0)
            Device(RBAR) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x1000)
                Name(_CRS, Buffer(0xe) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xc1, 0xfe, 0x0, 0x0, 0x1, 0x0, 0x79, 0x0 })
            }
        }
        Device(MBUS) {
            Name(_ADR, 0x1)
            OperationRegion(MBUS, PCI_Config, 0x40, 0xc0)
            Field(MBUS, DWordAcc, NoLock, Preserve) {
                DRB0,	8,
                DRB1,	8,
                DRB2,	8,
                DRB3,	8
            }
        }
        Name(_PRT, Package(0x7) {
            Package(0x4) {
                0x001fffff,
                0x0,
                \_SB_.PCI0.LPC0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x001fffff,
                0x1,
                \_SB_.PCI0.LPC0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x0,
                \_SB_.PCI0.LPC0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x1,
                \_SB_.PCI0.LPC0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x2,
                \_SB_.PCI0.LPC0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x3,
                \_SB_.PCI0.LPC0.LNKH,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x0,
                \_SB_.PCI0.LPC0.LNKA,
                0x0,
            },
        })
        Device(GRFX) {
            Name(_ADR, 0x00020000)
            Name(SSTE, 0x0)
            Name(NSTE, 0x0)
            Name(VCPS, 0x0)
            Method(_PS0) {
                If(LEqual(VCPS, 0x3)) {
                    Sleep(0x01f4)
                }
                DPSX(0x01000000, 0x0)
                Store(0x0, VCPS)
            }
            Method(_PS1) {
                DPSX(0x01000000, 0x1)
                Store(0x1, VCPS)
            }
            Method(_PS2) {
                DPSX(0x01000000, 0x2)
                Store(0x2, VCPS)
            }
            Method(_PS3) {
                DPSX(0x01000000, 0x3)
                Store(0x3, VCPS)
            }
            Method(_DOS, 1) {
                Store(And(Arg0, 0x3, ), Local0)
                \_SB_.PSRV(0xb9, 0x20, 0x1, Local0, 0x0)
            }
            Method(_DOD) {
                Name(BUF3, Package(0x2) {
                    0x00010100,
                    0x00010400,
                })
                Return(BUF3)
            }
            Device(CRT1) {
                Name(_ADR, 0x0100)
                Method(_DCS) {
                    Store(\_SB_.PSRV(0xb9, 0x1, 0x0, 0x0, 0x3), Local0)
                    If(And(Local0, 0x0101, )) {
                        Return(0x1f)
                    }
                    Else {
                        Return(0x1d)
                    }
                }
                Method(_DGS) {
                    Store(NSTE, Local0)
                    If(And(Local0, 0x0101, )) {
                        Return(0x1)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Method(_DSS, 1) {
                    If(LEqual(And(Arg0, 0xc0000000, ), 0xc0000000)) {
                        Store(NSTE, SSTE)
                    }
                }
            }
            Device(LCD1) {
                Name(_ADR, 0x0400)
                Method(_DCS) {
                    Store(\_SB_.PSRV(0xb9, 0x1, 0x0, 0x0, 0x3), Local0)
                    If(And(Local0, 0x0808, )) {
                        Return(0x1f)
                    }
                    Else {
                        Return(0x1d)
                    }
                }
                Method(_DGS) {
                    Store(NSTE, Local0)
                    If(And(Local0, 0x0808, )) {
                        Return(0x1)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Method(_DSS, 1) {
                    If(LEqual(And(Arg0, 0xc0000000, ), 0xc0000000)) {
                        Store(NSTE, SSTE)
                    }
                }
            }
        }
        Device(LPC0) {
            Name(_ADR, 0x001f0000)
            OperationRegion(REGS, PCI_Config, 0x40, 0xc0)
            Field(REGS, DWordAcc, NoLock, Preserve) {
                PMBA,	16,
                Offset(0x18),
                GPBA,	16,
                Offset(0x60),
                ,	2,
                CREN,	1,
                Offset(0x90),
                MTSE,	32,
                Offset(0xb0),
                ,	5,
                FUND,	2
            }
            Method(_INI) {
                \_SB_.CRIN()
            }
            Device(MBRD) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x1f)
                Name(RSRC, Buffer(0xe2) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 0x10, 0x47, 0x1, 0x24, 0x0, 0x24, 0x0, 0x1, 0x2, 0x47, 0x1, 0x28, 0x0, 0x28, 0x0, 0x1, 0x2, 0x47, 0x1, 0x2c, 0x0, 0x2c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x1, 0x2, 0x47, 0x1, 0x34, 0x0, 0x34, 0x0, 0x1, 0x2, 0x47, 0x1, 0x38, 0x0, 0x38, 0x0, 0x1, 0x2, 0x47, 0x1, 0x3c, 0x0, 0x3c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x1, 0x4, 0x47, 0x1, 0x72, 0x0, 0x72, 0x0, 0x1, 0x6, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x90, 0x0, 0x90, 0x0, 0x1, 0x10, 0x47, 0x1, 0xa4, 0x0, 0xa4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xac, 0x0, 0xac, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb0, 0x0, 0xb0, 0x0, 0x1, 0x6, 0x47, 0x1, 0xb8, 0x0, 0xb8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xbc, 0x0, 0xbc, 0x0, 0x1, 0x2, 0x47, 0x1, 0x0, 0x10, 0x0, 0x10, 0x1, 0x80, 0x47, 0x1, 0x80, 0x11, 0x80, 0x11, 0x1, 0x40, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x62, 0x3, 0x62, 0x3, 0x1, 0x
 1, 0x47, 0x1, 0x66, 0x3, 0x66, 0x3, 0x1, 0x1, 0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x2, 0x2, 0x47, 0x1, 0x80, 0x5, 0x80, 0x5, 0x1, 0x8, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0x0, 0x0, 0x80, 0x0, 0x79, 0x0 })
                Method(ISSD, 1) {
                    Store(0x3, Local0)
                    If(And(Arg0, 0x4000, )) {
                        Store(0x30, Local0)
                    }
                    Store(ShiftRight(Subtract(Arg0, 0x000c0000, ), 0xf, ), Local1)
                    If(LEqual(Local1, 0x0)) {
                        Add(Multiply(\_SB_.PCI0.PM1H, 0x10, ), \_SB_.PCI0.PM1L, Local2)
                    }
                    If(LEqual(Local1, 0x1)) {
                        Add(Multiply(\_SB_.PCI0.PM2H, 0x10, ), \_SB_.PCI0.PM2L, Local2)
                    }
                    If(LEqual(Local1, 0x2)) {
                        Add(Multiply(\_SB_.PCI0.PM3H, 0x10, ), \_SB_.PCI0.PM3L, Local2)
                    }
                    If(LEqual(Local1, 0x3)) {
                        Add(Multiply(\_SB_.PCI0.PM4H, 0x10, ), \_SB_.PCI0.PM4L, Local2)
                    }
                    If(LEqual(Local1, 0x4)) {
                        Add(Multiply(\_SB_.PCI0.PM5H, 0x10, ), \_SB_.PCI0.PM5L, Local2)
                    }
                    If(LEqual(Local1, 0x5)) {
                        Add(Multiply(\_SB_.PCI0.PM6H, 0x10, ), \_SB_.PCI0.PM6L, Local2)
                    }
                    Return(And(Local2, Local0, ))
                }
                Method(ROMS, 1) {
                    If(ISSD(Arg0)) {
                        OperationRegion(XROM, SystemMemory, Arg0, 0x4)
                        Field(XROM, ByteAcc, NoLock, Preserve) {
                            SIG_,	16,
                            SIZ_,	8
                        }
                        If(LEqual(SIG_, 0xaa55)) {
                            Return(Multiply(SIZ_, 0x0200, ))
                        }
                    }
                    Return(Zero)
                }
                Name(XBAS, Zero)
                Name(XSIZ, Zero)
                Method(SRCH) {
                    If(LEqual(XBAS, Zero)) {
                        Store(0x000c0000, XBAS)
                        While(LLess(XBAS, 0x000e0000)) {
                            Store(ROMS(XBAS), Local1)
                            Add(XBAS, Local1, XBAS)
                            If(LEqual(Local1, Zero)) {
                                Divide(XBAS, 0x4000, Local2, )
                                If(Local2) {
                                    Subtract(0x4000, Local2, XSIZ)
                                }
                                Return(0x0)
                            }
                        }
                    }
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x92, PMMN)
                    CreateWordField(RSRC, 0x94, PMMX)
                    And(^^PMBA, 0xff80, PMMN)
                    Store(PMMN, PMMX)
                    CreateWordField(RSRC, 0x9a, GPMN)
                    CreateWordField(RSRC, 0x9c, GPMX)
                    And(^^GPBA, 0xff80, GPMN)
                    Store(GPMN, GPMX)
                    SRCH()
                    CreateDWordField(RSRC, 0xcc, ROMB)
                    CreateDWordField(RSRC, 0xd0, ROML)
                    Store(XBAS, ROMB)
                    Store(XSIZ, ROML)
                    \_SB_.CSTS(0x0)
                    Return(RSRC)
                }
            }
            Device(DMAC) {
                Name(_HID, 0x0002d041)
                Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1, 0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x2a, 0x10, 0x1, 0x79, 0x0 })
            }
            Device(PIC_) {
                Name(_HID, 0xd041)
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0 })
            }
            Device(TIME) {
                Name(_HID, 0x0001d041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
            }
            Device(SPKR) {
                Name(_HID, 0x0008d041)
                Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 0x79, 0x0 })
            }
            Device(RTC_) {
                Name(_HID, 0x000bd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x2, 0x22, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(MATH) {
                Name(_HID, 0x040cd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
            }
            Name(\ECST, 0x0)
            Device(EC0_) {
                Name(_HID, 0x090cd041)
                Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x0, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x0, 0x1, 0x79, 0x0 })
                Mutex(ECEX, 0)
                Method(_REG, 2) {
                    If(LEqual(Arg0, 0x3)) {
                        Store(Arg1, ECST)
                    }
                }
                Method(_INI) {
                    INI2()
                }
                Name(_GPE, 0x1c)
                OperationRegion(ECR_, EmbeddedControl, 0x0, 0xff)
                Field(ECR_, ByteAcc, NoLock, Preserve) {
                    BRST,	8,
                    CTRL,	8,
                    Offset(0x4),
                    ECCR,	8,
                    DAT1,	8,
                    DAT2,	8,
                    DAT3,	8,
                    Offset(0x17),
                    SLPT,	8,
                    Offset(0xc0),
                    CPUT,	10
                }
                Method(HCNV, 1, Serialized) {
                    Store(0xffffffff, Local0)
                    If(LAnd(LNot(LLess(Arg0, 0xa)), LNot(LGreater(Arg0, 0x15)))) {
                        Subtract(Arg0, 0x9, Local0)
                        If(And(0x0, ShiftLeft(0x1, Local0, ), )) {
                            Store(0xffffffff, Local0)
                        }
                    }
                    If(LAnd(LNot(LLess(Arg0, 0x70)), LNot(LGreater(Arg0, 0x7b)))) {
                        Add(Arg0, 0x11, Local0)
                        Subtract(Arg0, 0x6f, Local1)
                        If(And(0x0480, ShiftLeft(0x1, Local1, ), )) {
                            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(0xa)
                }
                Method(_Q0B, 0, Serialized) {
                    HCNV(0xb)
                }
                Method(_Q0D, 0, Serialized) {
                    HCNV(0xd)
                }
                Method(_Q0E, 0, Serialized) {
                    HCNV(0xe)
                }
                Method(_Q0F, 0, Serialized) {
                    HCNV(0xf)
                }
                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) {
                }
                Method(INI2) {
                }
                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, 0x0)) {
                        Store(ShiftLeft(Arg0, 0x8, ), Local0)
                        Store(Add(Local0, 0x88, ), Local0)
                        Store(\_SB_.PSRV(0xc3, Local0, 0x0, 0x0, 0x3), Local0)
                        If(And(Local0, 0xff, )) {
                            Return(0xffffffff)
                        }
                        Else {
                            Store(And(ShiftRight(Local0, 0x8, ), 0xffff, ), Local0)
                            Return(Local0)
                        }
                    }
                    Else {
                        Acquire(ECEX, 0xffff)
                        Store(Arg0, DAT1)
                        Store(0x88, ECCR)
                        Store(0xc8, Local4)
                        While(LAnd(LNot(LEqual(Local4, 0x0)), LNot(LEqual(ECCR, 0x0)))) {
                            Stall(0x19)
                            Decrement(Local4)
                        }
                        Store(DAT1, Local1)
                        Store(DAT2, Local2)
                        Release(ECEX)
                        If(LEqual(Local4, 0x0)) {
                            Return(0xffffffff)
                        }
                        Store(Add(ShiftLeft(Local2, 0x8, ), Local1, ), Local0)
                        Return(Local0)
                    }
                }
                Method(EC03, 2, Serialized) {
                    If(LEqual(Arg1, 0x0)) {
                        If(LEqual(Arg0, 0x0)) {
                            Store(EC86(0x6a), Local0)
                        }
                        If(LEqual(Local0, 0xffffffff)) {
                            Return(0x0)
                        }
                        Else {
                            Return(Local0)
                        }
                    }
                    If(LEqual(Arg1, 0x1)) {
                        If(LEqual(Arg0, 0x0)) {
                            Store(EC8D(0x6c), Local0)
                        }
                        If(LNot(LLess(Local0, 0xffff))) {
                            Return(0xffffffff)
                        }
                        Else {
                            Return(Local0)
                        }
                    }
                    If(LEqual(Arg1, 0x2)) {
                        If(LEqual(Arg0, 0x0)) {
                            Store(EC8D(0x6e), Local0)
                        }
                        If(LNot(LLess(Local0, 0xffff))) {
                            Return(0xffffffff)
                        }
                        Else {
                            Return(Local0)
                        }
                    }
                    If(LEqual(Arg1, 0x3)) {
                        If(LEqual(Arg0, 0x0)) {
                            Store(EC8D(0x70), Local0)
                            EC82(0x41, 0x0)
                        }
                        If(LNot(LLess(Local0, 0xffff))) {
                            Return(0xffffffff)
                        }
                        Else {
                            Return(Local0)
                        }
                    }
                }
                Method(_Q58, 0, Serialized) {
                    Notify(\_TZ_.TZC_, 0x80)
                }
                Method(_Q80, 0, Serialized) {
                    Store(EC01(), Local0)
                    \_SB_.PSRV(0xc4, Local0, 0x0, 0x0, 0x0)
                    Notify(\_SB_.AC__, 0x80)
                }
                Method(_Q83, 0, Serialized) {
                    Notify(\_SB_.LID_, 0x80)
                }
                Method(EC06, 0, Serialized) {
                    Store(0x9, Local0)
                    Store(0x2, Local1)
                    Store(EC89(Local0, Local1), Local2)
                    If(LEqual(Local2, 0xffffffff)) {
                        Return(0x1)
                    }
                    Else {
                        Return(Local2)
                    }
                }
                Method(EC07, 0, Serialized) {
                    Return(EC88(EC87(0x4, 0xc8)))
                }
                Method(EC08, 0, Serialized) {
                    Return(0xc)
                }
                Method(EC09, 0, Serialized) {
                    Return(EC88(EC87(0x4, 0xc5)))
                }
                Method(EC0A, 0, Serialized) {
                    Return(EC88(EC87(0x4, 0xc6)))
                }
                Method(EC0B, 1, Serialized) {
                    EC83(0xb, Arg0)
                    Return(0x0)
                }
                Method(EC01, 0, Serialized) {
                    Return(And(EC86(0x8), 0x1, ))
                }
                Method(EC02, 1, Serialized) {
                    Store(EC86(0x8), Local0)
                    If(LEqual(Local0, 0xffffffff)) {
                        Return(0x0)
                    }
                    If(LEqual(Arg0, 0x0)) {
                        If(And(Local0, 0x4, )) {
                            Return(0x1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                }
                Method(EC04, 2, Serialized) {
                    Name(BUF_, Buffer(0x10) { })
                    If(LEqual(Arg0, 0x0)) {
                        If(LEqual(Arg1, 0x0)) {
                            Store(EC85(0x60), Local0)
                            If(LEqual(Local0, 0xffffffff)) {
                                Return(0x1)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x1)) {
                            Store(EC85(0x62), Local0)
                            If(LOr(LEqual(Local0, 0x0), LNot(LLess(Local0, 0xffff)))) {
                                Return(0xffffffff)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x2)) {
                            Store(EC85(0x64), Local0)
                            If(LOr(LEqual(Local0, 0x0), LNot(LLess(Local0, 0xffff)))) {
                                Return(0xffffffff)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x3)) {
                            Return(One)
                        }
                        If(LEqual(Arg1, 0x4)) {
                            Store(EC85(0x68), Local0)
                            If(LOr(LEqual(Local0, 0x0), LNot(LLess(Local0, 0xffff)))) {
                                Return(0xffffffff)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x5)) {
                            Store(EC85(0x72), Local0)
                            If(LEqual(Local0, 0xffffffff)) {
                                Return(0x0)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x6)) {
                            Store(EC85(0x74), Local0)
                            If(LEqual(Local0, 0xffffffff)) {
                                Return(0x0)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x7)) {
                            Store(EC85(0x76), Local0)
                            If(LEqual(Local0, 0xffffffff)) {
                                Return(0x1)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x8)) {
                            Store(EC85(0x78), Local0)
                            If(LEqual(Local0, 0xffffffff)) {
                                Return(0x1)
                            }
                            Else {
                                Return(Local0)
                            }
                        }
                        If(LEqual(Arg1, 0x9)) {
                            Store(0x0, BUF_)
                            Store(EC84(0x8c, 0xc), BUF_)
                            Return(BUF_)
                        }
                        If(LEqual(Arg1, 0xa)) {
                            Store(0x0, BUF_)
                            Store(EC85(0x9a), Local0)
                            Store(EC8C(Local0, 0x5), BUF_)
                            Return(BUF_)
                        }
                        If(LEqual(Arg1, 0xb)) {
                            Store(0x0, BUF_)
                            Store(EC84(0x9c, 0x8), BUF_)
                            Return(BUF_)
                        }
                        If(LEqual(Arg1, 0xc)) {
                            Store("Panasonic", BUF_)
                            Return(BUF_)
                        }
                    }
                }
                Method(EC05, 2, Serialized) {
                    If(LEqual(Arg0, 0x0)) {
                        EC82(0xf0, Arg1)
                    }
                }
                Method(EC0C, 1, Serialized) {
                    Store(And(Arg0, 0x7, ), SLPT)
                    Return(0x0)
                }
                Method(EC0D, 1, Serialized) {
                    If(LEqual(Arg0, 0x1)) {
                        Store(0x98, Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x0)) {
                            Store(0x81, Local0)
                        }
                        Else {
                            Return(0xffffffff)
                        }
                    }
                    Return(EC8B(0x43, Local0))
                }
                Method(EC0E, 1, Serialized) {
                    If(LNot(LEqual(EC8A(0x0, 0x23, And(EC87(0x0, 0x23), 0xfd, )), 0x0))) {
                        Return(0xffffffff)
                    }
                    If(LEqual(Arg0, 0x1)) {
                        Store(0x80, Local0)
                    }
                    Else {
                        Store(0x0, Local0)
                    }
                    If(LEqual(EC8A(0x1, 0x9c, 0xff), 0x0)) {
                        Return(EC8A(0x1, 0x9d, Local0))
                    }
                    Else {
                        Return(0xffffffff)
                    }
                }
                Method(EC0F, 1, Serialized) {
                    If(LEqual(Arg0, 0x1)) {
                        Store(0x1, Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x0)) {
                            Store(0x0, Local0)
                        }
                        Else {
                            Return(0xffffffff)
                        }
                    }
                    EC83(0x17, Local0)
                    Return(0xffffffff)
                }
                Method(EC10, 2, Serialized) {
                    Store(EC89(Arg0, Arg1), Local0)
                    If(LEqual(Local0, 0xffffffff)) {
                        Return(0x0)
                    }
                    Else {
                        Return(Local0)
                    }
                }
                Method(EC82, 2, Serialized) {
                    If(LEqual(ECST, 0x0)) {
                        If(LAnd(LNot(LLess(Arg0, 0xf0)), LNot(LGreater(Arg0, 0xf3)))) {
                            Store(ShiftLeft(Arg1, 0x8, ), Local0)
                        }
                        Else {
                            Store(0x0, Local0)
                        }
                        Store(Add(ShiftLeft(Local0, 0x8, ), Arg0, ), Local0)
                        Store(Add(ShiftLeft(Local0, 0x8, ), 0xdd, ), Local0)
                        Store(\_SB_.PSRV(0xc3, Local0, 0x0, 0x0, 0x3), Local0)
                        If(And(Local0, 0x400000ff, )) {
                            Return(0xffffffff)
                        }
                        Else {
                            If(LAnd(LNot(LLess(Arg0, 0x20)), LNot(LGreater(Arg0, 0x37)))) {
                                Store(And(ShiftRight(Local0, 0x8, ), 0x0080ffff, ), Local0)
                                Return(Local0)
                            }
                            Else {
                                Return(0x0)
                            }
                        }
                    }
                    Acquire(ECEX, 0xffff)
                    If(LAnd(LNot(LLess(Arg0, 0xf0)), LNot(LGreater(Arg0, 0xf3)))) {
                        Store(And(Arg1, 0xff, ), DAT2)
                        Store(And(ShiftRight(Arg1, 0x8, ), 0xff, ), DAT3)
                    }
                    Store(Arg0, DAT1)
                    Store(0xdd, ECCR)
                    Store(0xc8, Local4)
                    While(LAnd(LNot(LEqual(Local4, 0x0)), LNot(LEqual(ECCR, 0x0)))) {
                        Stall(0x19)
                        Decrement(Local4)
                    }
                    Store(DAT1, Local1)
                    Store(DAT2, Local2)
                    Store(DAT3, Local3)
                    Release(ECEX)
                    If(LOr(LEqual(Local4, 0x0), And(Local3, 0x40, ))) {
                        Return(0xffffffff)
                    }
                    If(LAnd(LNot(LLess(Arg0, 0x20)), LNot(LGreater(Arg0, 0x37)))) {
                        Store(Add(ShiftLeft(Local2, 0x8, ), Local1, ), Local0)
                        If(And(Local3, 0x80, )) {
                            Or(Local0, 0x00800000, )
                        }
                        Return(Local0)
                    }
                    Return(0x0)
                }
                Method(EC83, 2, Serialized) {
                    If(LEqual(ECST, 0x0)) {
                        If(LEqual(Arg0, 0xb)) {
                            \_SB_.ECWR(0xb, 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, 0x0)), LNot(LEqual(ECCR, 0x0)))) {
                            Stall(0x19)
                            Decrement(Local1)
                        }
                        Release(ECEX)
                    }
                }
                Method(EC89, 2, Serialized) {
                    If(LOr(LOr(LLess(Arg0, 0x1), LGreater(Arg0, 0x10)), LGreater(Arg1, 0x7))) {
                        Return(0xffffffff)
                    }
                    Store(EC87(0x12, 0xef), Local0)
                    If(LEqual(Local0, 0xffffffff)) {
                        Return(0xffffffff)
                    }
                    Store(0xa, Local1)
                    While(LAnd(LNot(LEqual(Local1, 0x0)), LEqual(EC87(0x12, 0xef), Local0))) {
                        Sleep(0x1)
                        Decrement(Local1)
                    }
                    If(LEqual(Local1, 0x0)) {
                        Return(0xffffffff)
                    }
                    Store(EC87(0x12, Add(0xef, Arg0, )), Local0)
                    If(LEqual(Local0, 0xffffffff)) {
                        Return(0xffffffff)
                    }
                    Return(And(ShiftRight(Local0, Arg1, ), 0x1, ))
                }
                Method(EC84, 2, Serialized) {
                    Name(EBUF, Buffer(0x10) { })
                    Store(0x0, Local0)
                    If(LGreater(Arg1, 0x0)) {
                        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(0x0, EBUF)
                        }
                    }
                    Return(EBUF)
                }
                Method(EC85, 1, Serialized) {
                    Add(Arg0, 0x1, Local1)
                    Store(0xffffffff, Local0)
                    If(LNot(LGreater(Local1, 0xff))) {
                        Store(EC86(Local1), Local2)
                        If(LNot(LGreater(Local2, 0xff))) {
                            ShiftLeft(Local2, 0x8, 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(EC87, 2, Serialized) {
                    If(LEqual(ECST, 0x0)) {
                        Store(Arg0, Local0)
                        Store(Add(ShiftLeft(Local0, 0x8, ), Arg1, ), Local0)
                        Store(Add(ShiftLeft(Local0, 0x10, ), 0xba, ), Local0)
                        Store(\_SB_.PSRV(0xc3, Local0, 0x0, 0x0, 0x3), Local0)
                        If(And(Local0, 0xff, )) {
                            Return(0xffffffff)
                        }
                        Else {
                            Return(And(ShiftRight(Local0, 0x8, ), 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, 0x0)), LNot(LEqual(ECCR, 0x0)))) {
                            Stall(0x19)
                            Decrement(Local1)
                        }
                        If(LEqual(Local1, 0x0)) {
                            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, 0x0)) {
                        Store(Arg0, Local0)
                        Store(Add(ShiftLeft(Local0, 0x8, ), Arg1, ), Local0)
                        Store(Add(ShiftLeft(Local0, 0x8, ), Arg2, ), Local0)
                        Store(Add(ShiftLeft(Local0, 0x8, ), 0xbb, ), Local0)
                        Store(\_SB_.PSRV(0xc3, Local0, 0x0, 0x0, 0x3), Local0)
                        If(And(Local0, 0xff, )) {
                            Return(0xffffffff)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    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, 0x0)), LNot(LEqual(ECCR, 0x0)))) {
                            Stall(0x19)
                            Decrement(Local1)
                        }
                        If(LEqual(Local1, 0x0)) {
                            Store(0xffffffff, Local0)
                        }
                        Else {
                            Store(0x0, Local0)
                        }
                    }
                    Release(ECEX)
                    Return(Local0)
                }
                Method(EC88, 1, Serialized) {
                    If(LGreater(Arg0, 0xff)) {
                        Store(0xffffffff, Local0)
                    }
                    Else {
                        Add(Arg0, 0x11, Local0)
                        If(LEqual(And(Arg0, 0x80, ), 0x0)) {
                            Add(Local0, 0x0100, Local0)
                        }
                        Multiply(Local0, 0xa, Local0)
                    }
                    Return(Local0)
                }
                Method(EC8C, 2, Serialized) {
                    Name(BUF_, Buffer(0x10) { })
                    Store(0x0, BUF_)
                    If(LOr(LLess(Arg1, 0x1), LGreater(Arg1, 0x10))) {
                        Return(BUF_)
                    }
                    Store(Arg0, Local0)
                    Store(0x0, Local1)
                    While(LLess(Local1, Arg1)) {
                        Divide(Local0, 0xa, Local2, Local0)
                        Subtract(Arg1, Local1, Local3)
                        Decrement(Local3)
                        Add(Local2, 0x30, Index(BUF_, Local3, ))
                        Increment(Local1)
                    }
                    Return(BUF_)
                }
            }
            Device(K101) {
                Name(_HID, 0x0303d041)
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
                Method(_STA) {
                    Or(0x05000000, 0x5000, Local0)
                    If(LNot(LEqual(\_SB_.PSRV(0x94, Local0, 0x0, 0x0, 0x3), 0x1))) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
            }
            Device(K106) {
                Name(_HID, 0x2003d041)
                Name(_CID, 0x0303d041)
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
                Method(_STA) {
                    Or(0x05000000, 0x5000, Local0)
                    If(LEqual(\_SB_.PSRV(0x94, Local0, 0x0, 0x0, 0x3), 0x1)) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
            }
            Device(MOUS) {
                Name(_HID, 0x130fd041)
                Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
                Method(_STA) {
                    Or(0x06000000, 0x6000, Local0)
                    Store(\_SB_.PSRV(0x94, Local0, 0x0, 0x0, 0x1), Local0)
                    If(LEqual(Local0, 0x1)) {
                        Return(0x0)
                    }
                    Else {
                        Return(0xf)
                    }
                    OperationRegion(BDA_, SystemMemory, 0x0400, 0x0100)
                    Field(BDA_, ByteAcc, NoLock, Preserve) {
                        Offset(0x10),
                        ,	2,
                        MFLG,	1
                    }
                    If(MFLG) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
            }
            Device(MOU3) {
                Name(_HID, 0x02002e4f)
                Name(_CID, 0x130fd041)
                Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
                Method(_STA) {
                    Or(0x06000000, 0x6000, Local0)
                    Store(\_SB_.PSRV(0x94, Local0, 0x0, 0x0, 0x1), Local0)
                    If(LEqual(Local0, 0x1)) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                    OperationRegion(BDA_, SystemMemory, 0x0400, 0x0100)
                    Field(BDA_, ByteAcc, NoLock, Preserve) {
                        Offset(0x10),
                        ,	2,
                        MFLG,	1
                    }
                    If(MFLG) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
            }
            OperationRegion(PIRX, PCI_Config, 0x60, 0x4)
            Field(PIRX, DWordAcc, NoLock, Preserve) {
                AccessAs(ByteAcc, 0),
                PIRA,	8,
                PIRB,	8,
                PIRC,	8,
                PIRD,	8
            }
            OperationRegion(PIRY, PCI_Config, 0x68, 0x4)
            Field(PIRY, DWordAcc, NoLock, Preserve) {
                AccessAs(ByteAcc, 0),
                PIRE,	8,
                PIRF,	8,
                PIRG,	8,
                PIRH,	8
            }
            Device(LNKA) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x1)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRA, 0x80, PIRA)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRA, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Store(RSRC, Debug)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRA, 0x70, ), PIRA)
                }
                Method(_STA) {
                    If(And(PIRA, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKB) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x2)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRB, 0x80, PIRB)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRB, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRB, 0x70, ), PIRB)
                }
                Method(_STA) {
                    If(And(PIRB, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKC) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x3)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x0, 0x2, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRC, 0x80, PIRC)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRC, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRC, 0x70, ), PIRC)
                }
                Method(_STA) {
                    If(And(PIRC, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKD) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x4)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x8, 0x0, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x8, 0x0, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRD, 0x80, PIRD)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRD, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRD, 0x70, ), PIRD)
                }
                Method(_STA) {
                    If(And(PIRD, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKE) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x5)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x20, 0x0, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x20, 0x0, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRE, 0x80, PIRE)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRE, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRE, 0x70, ), PIRE)
                }
                Method(_STA) {
                    If(And(PIRE, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKF) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x6)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x80, 0x0, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x80, 0x0, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRF, 0x80, PIRF)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRF, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRF, 0x70, ), PIRF)
                }
                Method(_STA) {
                    If(And(PIRF, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKG) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x7)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRG, 0x80, PIRG)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRG, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRG, 0x70, ), PIRG)
                }
                Method(_STA) {
                    If(And(PIRG, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
            Device(LNKH) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x8)
                Method(_PRS) {
                    If(LEqual(\CKOS(), 0x1)) {
                        Return(Buffer(0x6) {0x23, 0x0, 0x8, 0x18, 0x79, 0x0 })
                    }
                    Else {
                        Return(Buffer(0x6) {0x23, 0x0, 0x8, 0x18, 0x79, 0x0 })
                    }
                }
                Name(RSRC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Or(PIRH, 0x80, PIRH)
                }
                Method(_CRS) {
                    CreateWordField(RSRC, 0x1, IRQ0)
                    And(PIRH, 0xf, Local0)
                    ShiftLeft(0x1, Local0, IRQ0)
                    Return(RSRC)
                }
                Method(_SRS, 1) {
                    CreateWordField(Arg0, 0x1, IRQ0)
                    FindSetRightBit(IRQ0, Local0)
                    Decrement(Local0)
                    Or(Local0, And(PIRH, 0x70, ), PIRH)
                }
                Method(_STA) {
                    If(And(PIRH, 0x80, )) {
                        Return(0x9)
                    }
                    Return(0xb)
                }
            }
        }
        Device(PCIB) {
            Name(_ADR, 0x001e0000)
            Name(_PRT, Package(0x8) {
                Package(0x4) {
                    0x0005ffff,
                    0x0,
                    \_SB_.PCI0.LPC0.LNKG,
                    0x0,
                },
                Package(0x4) {
                    0x0005ffff,
                    0x1,
                    \_SB_.PCI0.LPC0.LNKE,
                    0x0,
                },
                Package(0x4) {
                    0x0005ffff,
                    0x2,
                    \_SB_.PCI0.LPC0.LNKE,
                    0x0,
                },
                Package(0x4) {
                    0x0001ffff,
                    0x0,
                    \_SB_.PCI0.LPC0.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0x0004ffff,
                    0x0,
                    \_SB_.PCI0.LPC0.LNKF,
                    0x0,
                },
                Package(0x4) {
                    0x0004ffff,
                    0x1,
                    \_SB_.PCI0.LPC0.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0x0004ffff,
                    0x2,
                    \_SB_.PCI0.LPC0.LNKF,
                    0x0,
                },
                Package(0x4) {
                    0x0004ffff,
                    0x3,
                    \_SB_.PCI0.LPC0.LNKD,
                    0x0,
                },
            })
            Device(CDB0) {
                Name(_ADR, 0x00050000)
                OperationRegion(CBC0, PCI_Config, 0x0, 0x0100)
                Field(CBC0, DWordAcc, NoLock, Preserve) {
                    Offset(0x44),
                    C0B1,	32
                }
                Method(_INI) {
                    Store(Zero, C0B1)
                }
            }
            Method(SDCL, 1) {
                Store(One, Local0)
                Store(\_SB_.PSRV(0xcc, Arg0, Zero, Zero, One), Local1)
                If(LEqual(Local1, 0x2)) {
                    Store(Zero, Local0)
                }
                If(Local1) {
                    \_SB_.CRCT(0x0200, Local0)
                }
            }
            Device(SDC0) {
                Name(_ADR, 0x00050001)
                Method(_PS0) {
                    SDCL(One)
                }
                Method(_PS3) {
                }
                Method(_STA) {
                    SDCL(Zero)
                    Return(0xf)
                }
                Device(SDS0) {
                    Name(_ADR, 0x0)
                    Method(_STA) {
                        SDCL(Zero)
                        Return(0xf)
                    }
                }
            }
            Device(LAN_) {
                Name(_ADR, 0x00010000)
                Name(_PRW, Package(0x2) {
                    0xb,
                    0x4,
                })
            }
        }
        Device(IDEC) {
            Name(_ADR, 0x001f0001)
            OperationRegion(IDEC, PCI_Config, 0x0, 0x58)
            Field(IDEC, DWordAcc, NoLock, Preserve) {
                Offset(0x4),
                CMD_,	16,
                Offset(0x20),
                BAR_,	32,
                Offset(0x40),
                PRIT,	16,
                SECT,	16,
                PSIT,	4,
                SSIT,	4,
                Offset(0x48),
                SYNC,	4,
                Offset(0x4a),
                SDT0,	2,
                ,	2,
                SDT1,	2,
                Offset(0x4b),
                SDT2,	2,
                ,	2,
                SDT3,	2,
                Offset(0x54),
                ICR0,	4,
                ICR1,	4,
                ICR2,	4,
                ICR3,	4,
                ICR4,	4,
                ICR5,	4
            }
            Name(SVFL, 0x0)
            Name(SVCM, Ones)
            Name(SVBA, Buffer(0x4) { })
            Name(SVT0, Ones)
            Name(SVT1, Ones)
            Name(SVWP, Ones)
            Method(_PS0) {
                Store(0x0, SVFL)
            }
            Method(_PS3) {
                If(SVFL) {
                    Store(^SVCM, ^CMD_)
                    Store(^SVBA, ^BAR_)
                    And(^SVT0, 0x8044, Local0)
                    And(^PRIT, 0x7fbb, Local1)
                    Or(Local0, Local1, ^PRIT)
                    And(^SVT1, 0x8044, Local0)
                    And(^SECT, 0x7fbb, Local1)
                    Or(Local0, Local1, ^SECT)
                    Store(^SVWP, ^ICR2)
                }
            }
            Method(SVS4) {
                Store(^CMD_, ^SVCM)
                Store(^BAR_, ^SVBA)
                Store(^PRIT, ^SVT0)
                Store(^SECT, ^SVT1)
                Store(^ICR2, ^SVWP)
                Store(0x1, SVFL)
            }
            Device(PRID) {
                Name(_ADR, 0x0)
                Name(NCM0, 0x3)
                Name(NCM1, 0x3)
                Method(_GTM) {
                    Name(PBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                    CreateDWordField(PBUF, 0x0, PIO0)
                    CreateDWordField(PBUF, 0x4, DMA0)
                    CreateDWordField(PBUF, 0x8, PIO1)
                    CreateDWordField(PBUF, 0xc, DMA1)
                    CreateDWordField(PBUF, 0x10, FLAG)
                    Store(GETP(PRIT), PIO0)
                    Store(GDMA(And(SYNC, 0x1, ), And(ICR3, 0x1, ), And(ICR0, 0x1, ), SDT0, And(ICR1, 0x1, )), 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, 0x2, ), And(ICR3, 0x2, ), And(ICR0, 0x2, ), SDT1, And(ICR1, 0x2, )), DMA1)
                    If(LEqual(DMA1, 0xffffffff)) {
                        Store(PIO1, DMA1)
                    }
                    Store(GETF(And(SYNC, 0x1, ), And(SYNC, 0x2, ), PRIT), FLAG)
                    Return(PBUF)
                }
                Method(_STM, 3) {
                    CreateDWordField(Arg0, 0x0, PIO0)
                    CreateDWordField(Arg0, 0x4, DMA0)
                    CreateDWordField(Arg0, 0x8, PIO1)
                    CreateDWordField(Arg0, 0xc, DMA1)
                    CreateDWordField(Arg0, 0x10, FLAG)
                    Store(0x4, ICR2)
                    If(LAnd(LEqual(SizeOf(Arg1), 0x0200), PIO0)) {
                        And(PRIT, 0x40f0, PRIT)
                        And(SYNC, 0xe, SYNC)
                        Store(0x0, SDT0)
                        And(ICR0, 0xe, ICR0)
                        And(ICR1, 0xe, ICR1)
                        And(ICR3, 0xe, ICR3)
                        And(ICR5, 0xe, 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, 0x2, ), And(W490, 0x0800, ))) {
                            Or(PRIT, 0x2, PRIT)
                        }
                        Or(PRIT, SETP(PIO0, W530, W640), PRIT)
                        If(And(FLAG, 0x1, )) {
                            Or(SYNC, 0x1, SYNC)
                            Store(SDMA(DMA0), SDT0)
                            If(LLess(DMA0, 0x1e)) {
                                Or(ICR3, 0x1, ICR3)
                            }
                            If(LLess(DMA0, 0x3c)) {
                                Or(ICR0, 0x1, ICR0)
                            }
                            If(And(W930, 0x2000, )) {
                                Or(ICR1, 0x1, ICR1)
                            }
                        }
                        Store(0x3, NCM0)
                        If(LNot(LLess(SizeOf(Arg1), 0x0102))) {
                            If(And(DerefOf(Index(Arg1, 0x0100, )), One, )) {
                                Or(NCM0, 0x4, NCM0)
                            }
                        }
                        Or(0x03000000, 0x3000, Local4)
                        Store(\_SB_.PSRV(0x94, Local4, 0x0, 0x0, 0x3), Local3)
                        If(Local3) {
                            If(And(W860, 0x0400, )) {
                                Or(0x03000000, 0x3100, Local4)
                                \_SB_.PSRV(0x94, Local4, 0x0, 0x0, 0x0)
                            }
                            Else {
                                Or(NCM0, 0x8, NCM0)
                            }
                        }
                    }
                    If(LAnd(LEqual(SizeOf(Arg2), 0x0200), PIO1)) {
                        And(PRIT, 0x3f0f, PRIT)
                        Store(0x0, PSIT)
                        And(SYNC, 0xd, SYNC)
                        Store(0x0, SDT1)
                        And(ICR0, 0xd, ICR0)
                        And(ICR1, 0xd, ICR1)
                        And(ICR3, 0xd, ICR3)
                        And(ICR5, 0xd, 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, 0x8, ), 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, 0x4, )) {
                            Or(SYNC, 0x2, SYNC)
                            Store(SDMA(DMA1), SDT1)
                            If(LLess(DMA0, 0x1e)) {
                                Or(ICR3, 0x2, ICR3)
                            }
                            If(LLess(DMA0, 0x3c)) {
                                Or(ICR0, 0x2, ICR0)
                            }
                            If(And(W931, 0x2000, )) {
                                Or(ICR1, 0x2, ICR1)
                            }
                        }
                        Store(0x3, NCM1)
                        If(LNot(LLess(SizeOf(Arg2), 0x0102))) {
                            If(And(DerefOf(Index(Arg2, 0x0100, )), One, )) {
                                Or(NCM1, 0x4, NCM1)
                            }
                        }
                    }
                }
                Device(P_D0) {
                    Name(_ADR, 0x0)
                    Method(_GTF) {
                        Name(PIB0, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef })
                        Name(FLK0, Buffer(0x7) {0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xf5 })
                        Name(SMX0, Buffer(0xe) {0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xf9 })
                        CreateByteField(PIB0, 0x1, PMD0)
                        CreateByteField(PIB0, 0x8, DMD0)
                        CreateDWordField(SMX0, 0x9, MXA0)
                        If(And(PRIT, 0x2, )) {
                            If(LEqual(And(PRIT, 0x9, ), 0x8)) {
                                Store(0x8, PMD0)
                            }
                            Else {
                                Store(0xa, PMD0)
                                ShiftRight(And(PRIT, 0x0300, ), 0x8, Local0)
                                ShiftRight(And(PRIT, 0x3000, ), 0xc, Local1)
                                Add(Local0, Local1, Local2)
                                If(LEqual(0x3, Local2)) {
                                    Store(0xb, PMD0)
                                }
                                If(LEqual(0x5, Local2)) {
                                    Store(0xc, PMD0)
                                }
                            }
                        }
                        Else {
                            Store(0x1, PMD0)
                        }
                        If(And(SYNC, 0x1, )) {
                            Store(Or(SDT0, 0x40, ), DMD0)
                            If(And(ICR1, 0x1, )) {
                                If(And(ICR0, 0x1, )) {
                                    Add(DMD0, 0x2, DMD0)
                                }
                                If(And(ICR3, 0x1, )) {
                                    Store(0x45, DMD0)
                                }
                            }
                        }
                        Else {
                            Or(Subtract(And(PMD0, 0x7, ), 0x2, ), 0x20, DMD0)
                        }
                        If(And(NCM0, 0x8, )) {
                            Or(0x03000000, 0x3000, Local4)
                            Store(\_SB_.PSRV(0x94, Local4, 0x0, 0x0, 0x3), 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, 0x4, )) {
                            Concatenate(Local4, FLK0, Local0)
                        }
                        Else {
                            Store(Local4, Local0)
                        }
                        Return(Local0)
                    }
                }
                Device(P_D1) {
                    Name(_ADR, 0x1)
                    Method(_GTF) {
                        Name(PIB1, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef })
                        Name(FLK1, Buffer(0x7) {0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xf5 })
                        CreateByteField(PIB1, 0x1, PMD1)
                        CreateByteField(PIB1, 0x8, DMD1)
                        If(And(PRIT, 0x20, )) {
                            If(LEqual(And(PRIT, 0x90, ), 0x80)) {
                                Store(0x8, PMD1)
                            }
                            Else {
                                Add(And(PSIT, 0x3, ), ShiftRight(And(PSIT, 0xc, ), 0x2, ), Local0)
                                If(LEqual(0x5, Local0)) {
                                    Store(0xc, PMD1)
                                }
                                Else {
                                    If(LEqual(0x3, Local0)) {
                                        Store(0xb, PMD1)
                                    }
                                    Else {
                                        Store(0xa, PMD1)
                                    }
                                }
                            }
                        }
                        Else {
                            Store(0x1, PMD1)
                        }
                        If(And(SYNC, 0x2, )) {
                            Store(Or(SDT1, 0x40, ), DMD1)
                            If(And(ICR1, 0x2, )) {
                                If(And(ICR0, 0x2, )) {
                                    Add(DMD1, 0x2, DMD1)
                                }
                                If(And(ICR3, 0x2, )) {
                                    Store(0x45, DMD1)
                                }
                            }
                        }
                        Else {
                            Or(Subtract(And(PMD1, 0x7, ), 0x2, ), 0x20, DMD1)
                        }
                        If(And(NCM1, 0x4, )) {
                            Concatenate(PIB1, FLK1, Local0)
                        }
                        Else {
                            Store(PIB1, Local0)
                        }
                        Return(Local0)
                    }
                }
                Method(_PS0) {
                }
                Method(_PS3) {
                }
            }
            Device(SECD) {
                Name(_ADR, 0x1)
                Method(_GTM) {
                    Name(SBUF, Buffer(0x14) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                    CreateDWordField(SBUF, 0x0, PIO0)
                    CreateDWordField(SBUF, 0x4, DMA0)
                    CreateDWordField(SBUF, 0x8, PIO1)
                    CreateDWordField(SBUF, 0xc, DMA1)
                    CreateDWordField(SBUF, 0x10, FLAG)
                    Store(GETP(SECT), PIO0)
                    Store(GDMA(And(SYNC, 0x4, ), And(ICR3, 0x4, ), And(ICR0, 0x4, ), SDT2, And(ICR1, 0x4, )), DMA0)
                    If(LEqual(DMA0, 0xffffffff)) {
                        Store(PIO0, DMA0)
                    }
                    If(And(SECT, 0x4000, )) {
                        If(LEqual(And(SECT, 0x90, ), 0x80)) {
                            Store(0x0384, PIO1)
                        }
                        Else {
                            Store(GETT(SSIT), PIO1)
                        }
                    }
                    Else {
                        Store(0xffffffff, PIO1)
                    }
                    Store(GDMA(And(SYNC, 0x8, ), And(ICR3, 0x8, ), And(ICR0, 0x8, ), SDT3, And(ICR1, 0x8, )), DMA1)
                    If(LEqual(DMA1, 0xffffffff)) {
                        Store(PIO1, DMA1)
                    }
                    Store(GETF(And(SYNC, 0x4, ), And(SYNC, 0x8, ), SECT), FLAG)
                    Return(SBUF)
                }
                Method(_STM, 3) {
                    CreateDWordField(Arg0, 0x0, PIO0)
                    CreateDWordField(Arg0, 0x4, DMA0)
                    CreateDWordField(Arg0, 0x8, PIO1)
                    CreateDWordField(Arg0, 0xc, DMA1)
                    CreateDWordField(Arg0, 0x10, FLAG)
                    Store(0x4, ICR2)
                    If(LAnd(LEqual(SizeOf(Arg1), 0x0200), PIO0)) {
                        And(SECT, 0x40f0, SECT)
                        And(SYNC, 0xb, SYNC)
                        Store(0x0, SDT2)
                        And(ICR0, 0xb, ICR0)
                        And(ICR1, 0xb, ICR1)
                        And(ICR3, 0xb, ICR3)
                        And(ICR5, 0xb, 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)
                        Or(SECT, 0x8004, SECT)
                        If(LAnd(And(FLAG, 0x2, ), And(W490, 0x0800, ))) {
                            Or(SECT, 0x2, SECT)
                        }
                        Or(SECT, SETP(PIO0, W530, W640), SECT)
                        If(And(FLAG, 0x1, )) {
                            Or(SYNC, 0x4, SYNC)
                            Store(SDMA(DMA0), SDT2)
                            If(LLess(DMA0, 0x1e)) {
                                Or(ICR3, 0x4, ICR3)
                            }
                            If(LLess(DMA0, 0x3c)) {
                                Or(ICR0, 0x4, ICR0)
                            }
                            If(And(W930, 0x2000, )) {
                                Or(ICR1, 0x4, ICR1)
                            }
                        }
                    }
                    If(LAnd(LEqual(SizeOf(Arg2), 0x0200), PIO1)) {
                        And(SECT, 0x3f0f, SECT)
                        Store(0x0, SSIT)
                        And(SYNC, 0x7, SYNC)
                        Store(0x0, SDT3)
                        And(ICR0, 0x7, ICR0)
                        And(ICR1, 0x7, ICR1)
                        And(ICR3, 0x7, ICR3)
                        And(ICR5, 0x7, 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(SECT, 0x8040, SECT)
                        If(LAnd(And(FLAG, 0x8, ), And(W491, 0x0800, ))) {
                            Or(SECT, 0x20, SECT)
                        }
                        If(And(FLAG, 0x10, )) {
                            Or(SECT, 0x4000, SECT)
                            If(LGreater(PIO1, 0xf0)) {
                                Or(SECT, 0x80, SECT)
                            }
                            Else {
                                Or(SECT, 0x10, SECT)
                                Store(SETT(PIO1, W531, W641), SSIT)
                            }
                        }
                        If(And(FLAG, 0x4, )) {
                            Or(SYNC, 0x8, SYNC)
                            Store(SDMA(DMA1), SDT3)
                            If(LLess(DMA0, 0x1e)) {
                                Or(ICR3, 0x8, ICR3)
                            }
                            If(LLess(DMA0, 0x3c)) {
                                Or(ICR0, 0x8, ICR0)
                            }
                            If(And(W931, 0x2000, )) {
                                Or(ICR1, 0x8, ICR1)
                            }
                        }
                    }
                }
                Device(S_D0) {
                    Name(_ADR, 0x0)
                    Method(_GTF) {
                        Name(SIB0, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef })
                        CreateByteField(SIB0, 0x1, PMD0)
                        CreateByteField(SIB0, 0x8, DMD0)
                        If(And(SECT, 0x2, )) {
                            If(LEqual(And(SECT, 0x9, ), 0x8)) {
                                Store(0x8, PMD0)
                            }
                            Else {
                                Store(0xa, PMD0)
                                ShiftRight(And(SECT, 0x0300, ), 0x8, Local0)
                                ShiftRight(And(SECT, 0x3000, ), 0xc, Local1)
                                Add(Local0, Local1, Local2)
                                If(LEqual(0x3, Local2)) {
                                    Store(0xb, PMD0)
                                }
                                If(LEqual(0x5, Local2)) {
                                    Store(0xc, PMD0)
                                }
                            }
                        }
                        Else {
                            Store(0x1, PMD0)
                        }
                        If(And(SYNC, 0x4, )) {
                            Store(Or(SDT2, 0x40, ), DMD0)
                            If(And(ICR1, 0x4, )) {
                                If(And(ICR0, 0x4, )) {
                                    Add(DMD0, 0x2, DMD0)
                                }
                                If(And(ICR3, 0x4, )) {
                                    Store(0x45, DMD0)
                                }
                            }
                        }
                        Else {
                            Or(Subtract(And(PMD0, 0x7, ), 0x2, ), 0x20, DMD0)
                        }
                        Return(SIB0)
                    }
                }
                Device(S_D1) {
                    Name(_ADR, 0x1)
                    Method(_GTF) {
                        Name(SIB1, Buffer(0xe) {0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef, 0x3, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xef })
                        CreateByteField(SIB1, 0x1, PMD1)
                        CreateByteField(SIB1, 0x8, DMD1)
                        If(And(SECT, 0x20, )) {
                            If(LEqual(And(SECT, 0x90, ), 0x80)) {
                                Store(0x8, PMD1)
                            }
                            Else {
                                Add(And(SSIT, 0x3, ), ShiftRight(And(SSIT, 0xc, ), 0x2, ), Local0)
                                If(LEqual(0x5, Local0)) {
                                    Store(0xc, PMD1)
                                }
                                Else {
                                    If(LEqual(0x3, Local0)) {
                                        Store(0xb, PMD1)
                                    }
                                    Else {
                                        Store(0xa, PMD1)
                                    }
                                }
                            }
                        }
                        Else {
                            Store(0x1, PMD1)
                        }
                        If(And(SYNC, 0x8, )) {
                            Store(Or(SDT3, 0x40, ), DMD1)
                            If(And(ICR1, 0x8, )) {
                                If(And(ICR0, 0x8, )) {
                                    Add(DMD1, 0x2, DMD1)
                                }
                                If(And(ICR3, 0x8, )) {
                                    Store(0x45, DMD1)
                                }
                            }
                        }
                        Else {
                            Or(Subtract(And(PMD1, 0x7, ), 0x2, ), 0x20, DMD1)
                        }
                        Return(SIB1)
                    }
                }
                Method(_PS0) {
                    Or(0x08000000, 0x8000, Local0)
                    Or(Local0, 0x0, Local0)
                    \_SB_.PSRV(0x94, Local0, 0x0, 0x0, 0x0)
                }
                Method(_PS3) {
                    Or(0x08000000, 0x8000, Local0)
                    Or(Local0, 0x1, Local0)
                    \_SB_.PSRV(0x94, Local0, 0x0, 0x0, 0x0)
                }
            }
            Method(GETP, 1) {
                If(LEqual(And(Arg0, 0x9, ), 0x0)) {
                    Return(0xffffffff)
                }
                If(LEqual(And(Arg0, 0x9, ), 0x8)) {
                    Return(0x0384)
                }
                ShiftRight(And(Arg0, 0x0300, ), 0x8, Local0)
                ShiftRight(And(Arg0, 0x3000, ), 0xc, Local1)
                Return(Multiply(0x1e, Subtract(0x9, Add(Local0, Local1, ), ), ))
            }
            Method(GDMA, 5) {
                If(Arg0) {
                    If(LAnd(Arg1, Arg4)) {
                        Return(0x14)
                    }
                    If(LAnd(Arg2, Arg4)) {
                        Return(Multiply(Subtract(0x4, Arg3, ), 0xf, ))
                    }
                    Return(Multiply(Subtract(0x4, Arg3, ), 0x1e, ))
                }
                Return(0xffffffff)
            }
            Method(GETD, 4) {
                If(Arg0) {
                    If(Arg1) {
                        Return(0x17)
                    }
                    If(Arg2) {
                        Return(Multiply(Subtract(0x4, Arg3, ), 0xf, ))
                    }
                    Return(Multiply(Subtract(0x4, Arg3, ), 0x1e, ))
                }
                Return(0xffffffff)
            }
            Method(GETT, 1) {
                Return(Multiply(0x1e, Subtract(0x9, Add(And(ShiftRight(Arg0, 0x2, ), 0x3, ), And(Arg0, 0x3, ), ), ), ))
            }
            Method(GETF, 3) {
                Name(TMPF, 0x0)
                If(Arg0) {
                    Or(TMPF, 0x1, TMPF)
                }
                If(And(Arg2, 0x2, )) {
                    Or(TMPF, 0x2, TMPF)
                }
                If(Arg1) {
                    Or(TMPF, 0x4, TMPF)
                }
                If(And(Arg2, 0x20, )) {
                    Or(TMPF, 0x8, TMPF)
                }
                If(And(Arg2, 0x4000, )) {
                    Or(TMPF, 0x10, TMPF)
                }
                Return(TMPF)
            }
            Method(SETP, 3) {
                If(LGreater(Arg0, 0xf0)) {
                    Return(0x8)
                }
                Else {
                    If(And(Arg1, 0x2, )) {
                        If(LAnd(LNot(LGreater(Arg0, 0x78)), And(Arg2, 0x2, ))) {
                            Return(0x2301)
                        }
                        If(LAnd(LNot(LGreater(Arg0, 0xb4)), And(Arg2, 0x1, ))) {
                            Return(0x2101)
                        }
                    }
                    Return(0x1001)
                }
            }
            Method(SDMA, 1) {
                If(LNot(LGreater(Arg0, 0x14))) {
                    Return(0x1)
                }
                If(LNot(LGreater(Arg0, 0x1e))) {
                    Return(0x2)
                }
                If(LNot(LGreater(Arg0, 0x2d))) {
                    Return(0x1)
                }
                If(LNot(LGreater(Arg0, 0x3c))) {
                    Return(0x2)
                }
                If(LNot(LGreater(Arg0, 0x5a))) {
                    Return(0x1)
                }
                Return(0x0)
            }
            Method(SETD, 1) {
                If(LNot(LGreater(Arg0, 0x17))) {
                    Return(0x1)
                }
                If(LNot(LGreater(Arg0, 0x1e))) {
                    Return(0x2)
                }
                If(LNot(LGreater(Arg0, 0x2d))) {
                    Return(0x1)
                }
                If(LNot(LGreater(Arg0, 0x3c))) {
                    Return(0x2)
                }
                If(LNot(LGreater(Arg0, 0x5a))) {
                    Return(0x1)
                }
                Return(0x0)
            }
            Method(SETT, 3) {
                If(And(Arg1, 0x2, )) {
                    If(LAnd(LNot(LGreater(Arg0, 0x78)), And(Arg2, 0x2, ))) {
                        Return(0xb)
                    }
                    If(LAnd(LNot(LGreater(Arg0, 0xb4)), And(Arg2, 0x1, ))) {
                        Return(0x9)
                    }
                }
                Return(0x4)
            }
        }
        Method(_S3D) {
            Return(0x2)
        }
        Method(_S4D) {
            Return(0x2)
        }
        Device(USB1) {
            Name(_ADR, 0x001d0000)
            Method(_S3D) {
                Return(0x2)
            }
            Method(_S4D) {
                Return(0x2)
            }
            Method(_PS0) {
                DPSX(0x02000000, 0x0)
            }
            Method(_PS3) {
                DPSX(0x02000000, 0x3)
            }
        }
        Device(USB2) {
            Name(_ADR, 0x001d0001)
            Method(_S3D) {
                Return(0x2)
            }
            Method(_S4D) {
                Return(0x2)
            }
        }
        Device(USB3) {
            Name(_ADR, 0x001d0002)
            Method(_S3D) {
                Return(0x2)
            }
            Method(_S4D) {
                Return(0x2)
            }
        }
        Device(USB4) {
            Name(_ADR, 0x001d0007)
        }
        Device(SMBS) {
            Name(_ADR, 0x001f0003)
        }
        Device(AUDI) {
            Name(_ADR, 0x001f0005)
        }
        Device(SMDM) {
            Name(_ADR, 0x001f0006)
            Name(MPSW, 0x0)
            Name(_PRW, Package(0x2) {
                0x5,
                0x3,
            })
            Method(_PSW, 1) {
                Store(ShiftLeft(0x0, 0x18, ), Local0)
                Or(Local0, And(_ADR, 0x00ff0000, ), Local0)
                Or(Local0, ShiftLeft(And(_ADR, 0xff, ), 0x8, ), Local0)
                Or(Local0, Arg0, Local0)
                Store(Local0, MPSW)
            }
        }
    }
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Name(_UID, 0x0)
        Name(_PRW, Package(0x2) {
            0x1b,
            0x5,
        })
        Method(_STA) {
            Return(0xf)
        }
    }
    Device(AC__) {
        Name(_HID, "ACPI0003")
        Name(_UID, 0x0)
        Method(_PSR) {
            Return(\_SB_.ECPF(0x0100, 0x0, 0x0))
        }
        Name(_PCL, Package(0x1) {
            \_SB_,
        })
    }
    Device(BATA) {
        Name(_HID, 0x0a0cd041)
        Name(_UID, 0x0)
        Name(A_PU, 0xff)
        Method(_BIF, 0, Serialized) {
            Name(BIFR, Package(0xd) {
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                0x0,
                Buffer(0x10) { },
                Buffer(0x10) { },
                Buffer(0x10) { },
                Buffer(0x10) { },
            })
            Store(\_SB_.ECPF(0x0111, 0x0, 0x0), A_PU)
            Store(A_PU, Index(BIFR, 0x0, ))
            If(A_PU) {
                Store(0x1, Local1)
                While(LNot(LGreater(Local1, 0x8))) {
                    Store(\_SB_.ECPF(0x0111, 0x0, Local1), Index(BIFR, Local1, ))
                    Increment(Local1)
                }
            }
            Else {
                Store(0x1, Local1)
                While(LNot(LGreater(Local1, 0x8))) {
                    Store(\_SB_.ECPF(0x0111, 0x0, Local1), Local2)
                    If(LAnd(LNot(LEqual(Local2, 0xffffffff)), LAnd(LNot(LEqual(Local1, 0x3)), LNot(LEqual(Local1, 0x4))))) {
                        Multiply(Local2, 0xa, Local2)
                    }
                    Store(Local2, Index(BIFR, Local1, ))
                    Increment(Local1)
                }
            }
            Store(\_SB_.ECPF(0x0111, 0x0, 0x9), Index(BIFR, 0x9, ))
            Store(\_SB_.ECPF(0x0111, 0x0, 0xa), Index(BIFR, 0xa, ))
            Store(\_SB_.ECPF(0x0111, 0x0, 0xb), Index(BIFR, 0xb, ))
            Store("Panasonic", Index(BIFR, 0xc, ))
            Return(BIFR)
        }
        Method(_BST, 0, Serialized) {
            Name(BSTR, Package(0x4) {
                0x0,
                0x0,
                0x0,
                0x0,
            })
            Store(\_SB_.ECPF(0x0110, 0x0, 0x0), Index(BSTR, 0x0, ))
            If(LGreater(A_PU, 0x1)) {
                Store(\_SB_.ECPF(0x0111, 0x0, 0x0), A_PU)
            }
            If(A_PU) {
                Store(\_SB_.ECPF(0x0110, 0x0, 0x1), Index(BSTR, 0x1, ))
                Store(\_SB_.ECPF(0x0110, 0x0, 0x2), Index(BSTR, 0x2, ))
            }
            Else {
                Store(\_SB_.ECPF(0x0110, 0x0, 0x1), Local0)
                If(LEqual(Local0, 0xffffffff)) {
                    Store(Local0, Index(BSTR, 0x1, ))
                }
                Else {
                    Store(Multiply(Local0, 0xa, ), Index(BSTR, 0x1, ))
                }
                Store(\_SB_.ECPF(0x0110, 0x0, 0x2), Local0)
                If(LEqual(Local0, 0xffffffff)) {
                    Store(Local0, Index(BSTR, 0x2, ))
                }
                Else {
                    Store(Multiply(Local0, 0xa, ), Index(BSTR, 0x2, ))
                }
            }
            Store(\_SB_.ECPF(0x0110, 0x0, 0x3), Index(BSTR, 0x3, ))
            Return(BSTR)
        }
        Name(_PCL, Package(0x1) {
            \_SB_,
        })
        Method(_STA, 0, Serialized) {
            If(LEqual(\_SB_.ECPF(0x0101, 0x0, 0x0), 0x1)) {
                Return(0x1f)
            }
            Else {
                Return(0xf)
            }
        }
        Method(_BTP, 1) {
            If(LGreater(A_PU, 0x1)) {
                Store(\_SB_.ECPF(0x0111, 0x0, 0x0), A_PU)
            }
            If(A_PU) {
                Store(Arg0, Local1)
            }
            Else {
                Store(Divide(Arg0, 0xa, , ), Local1)
            }
            If(LNot(LLess(Local1, 0x00010000))) {
                Store(Zero, Local0)
            }
            Else {
                Store(Local1, Local0)
            }
            \_SB_.ECPF(0x0112, 0x0, Local0)
        }
    }
    Device(HKEY) {
        Name(_HID, 0x19003434)
        Name(SIFR, Package(0x9) {
            0x1,
            0x0,
            0xff,
            0x14,
            0xff,
            0xff,
            0x14,
            0x7f,
            0x0,
        })
        Name(HDAT, Buffer(0x20) { })
        Name(HINP, Zero)
        Name(HOUP, Zero)
        Mutex(HDMX, 0)
        Method(_STA) {
            Return(0xf)
        }
        Method(_INI) {
            HRES()
        }
        Method(HRES, 0, Serialized) {
            Acquire(HDMX, 0xffff)
            Or(0x01000000, 0x0, Local1)
            Store(\_SB_.PSRV(0x96, 0x19003434, 0x1, Local1, 0x3), Local0)
            Store(And(ShiftRight(Local0, 0x8, ), 0xff, ), Index(SIFR, 0x7, ))
            Store(And(Local0, 0xff, ), Index(SIFR, 0x4, ))
            Or(0x02000000, 0x0, Local1)
            Store(And(\_SB_.PSRV(0x96, 0x19003434, 0x1, Local1, 0x1), 0x1, ), Index(SIFR, 0x8, ))
            Release(HDMX)
        }
        Method(HSAV, 0, Serialized) {
            Acquire(HDMX, 0xffff)
            Store(DerefOf(Index(SIFR, 0x4, )), Local0)
            Add(ShiftLeft(DerefOf(Index(SIFR, 0x7, )), 0x8, ), Local0, Local0)
            Or(0x01000000, 0x00010000, Local1)
            Or(Local1, Local0, Local1)
            \_SB_.PSRV(0x96, 0x19003434, 0x1, Local1, 0x3)
            Store(And(DerefOf(Index(SIFR, 0x8, )), 0x1, ), Local0)
            Or(0x02000000, 0x00010000, Local1)
            Or(Local1, Local0, Local1)
            \_SB_.PSRV(0x96, 0x19003434, 0x1, Local1, 0x1)
            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) {
            Return(0x9)
        }
        Method(SINF) {
            Return(SIFR)
        }
        Method(SSET, 2, Serialized) {
            If(LOr(LEqual(Arg0, 0x4), LEqual(Arg0, 0x7))) {
                Store(Arg1, Index(SIFR, Arg0, ))
                \_SB_.ECPF(0x0205, Arg1, 0x0)
            }
            If(LEqual(Arg0, 0x8)) {
                Store(Arg1, Index(SIFR, Arg0, ))
                \_SB_.ECPF(0x0209, Arg1, 0x0)
            }
            If(LEqual(Arg0, 0x80)) {
                If(LEqual(Arg1, 0x1)) {
                    Store(0xe201, Local0)
                }
                Else {
                    Store(0xe200, Local0)
                }
                \_SB_.ECPF(0x0208, Arg1, 0x0)
            }
        }
        Method(HACT) {
            Notify(PWRB, 0x80)
        }
    }
    Method(CHGD) {
        If(\_SB_.PSRV(0xb9, 0x22, 0x0, 0x0, 0x1)) {
            If(LEqual(\CKOS(), 0x82)) {
                Notify(\_SB_.PCI0, 0x0)
            }
            Else {
                Notify(\_SB_.PCI0.GRFX, 0x0)
            }
            Sleep(0x03e8)
            Store(\_SB_.PSRV(0xb9, 0x7, 0x0, 0x0, 0x3), \_SB_.PCI0.GRFX.NSTE)
            Notify(\_SB_.PCI0.GRFX, 0x80)
        }
    }
    Device(LID_) {
        Name(_HID, 0x0d0cd041)
        Name(_UID, 0x0)
        Method(_LID) {
            Return(\_SB_.ECPF(0x0200, 0x0, 0x0))
        }
        Name(_PRW, Package(0x2) {
            0x1b,
            0x4,
        })
        Method(_PSW, 1) {
            \_SB_.ECPF(0x0207, Arg0, 0x0)
        }
    }
}
Scope(\_SB_) {
    Method(CSTS, 1) {
        Store(\CKOS(), Local0)
        If(LOr(LOr(LEqual(Local0, 0x1), LEqual(Local0, 0x2)), LEqual(Local0, 0x81))) {
            \_SB_.PSRV(0xc0, Arg0, 0x0, 0x0, 0x0)
        }
        Else {
            If(Arg0) {
                Notify(\_PR_.CPU0, 0x81)
            }
        }
    }
}
Scope(_SB_) {
    Method(BCNV, 1) {
        Return(DerefOf(Index(^BTBL, Arg0, )))
    }
    Name(BTBL, Buffer(0x0100) {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa
 3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff })
}

}
/*
BOOT: Length=40, Revision=1, Checksum=154,
	OEMID=PTLTD, OEM Table ID=$SBFTBL$, OEM Revision=0x6040000,
	Creator ID= LTP, Creator Revision=0x1
 */
/*
SSDT: Length=293, Revision=1, Checksum=228,
	OEMID=MATBIO, OEM Table ID=CFW2-1, OEM Revision=0x6040000,
	Creator ID=MSFT, Creator Revision=0x100000e
 */

sysctl hw.acpi output --------------------------------------------------------

hw.acpi.supported_sleep_state: S3 S4 S5 
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S1
hw.acpi.lid_switch_state: S1
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 2
hw.acpi.s4bios: 1
hw.acpi.verbose: 0
hw.acpi.disable_on_poweroff: 1
hw.acpi.cpu.max_speed: 8
hw.acpi.cpu.current_speed: 4
hw.acpi.cpu.performance_speed: 8
hw.acpi.cpu.economy_speed: 4
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 30
hw.acpi.thermal.tz0.temperature: 3150
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: 3630
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 3730
hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
hw.acpi.acline: 0
hw.acpi.battery.life: 77
hw.acpi.battery.time: 257
hw.acpi.battery.state: 1
hw.acpi.battery.units: 1
hw.acpi.battery.info_expire: 5

pciconf -lv output --------------------------------------------------------

hostb0@pci0:0:0:	class=0x060000 card=0x833810f7 chip=0x35808086 rev=0x02 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '852GM Host-Hub Interface Bridge'
    class    = bridge
    subclass = HOST-PCI
none0@pci0:0:1:	class=0x088000 card=0x833810f7 chip=0x35848086 rev=0x02 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '852GM System Memory Controller'
    class    = base peripheral
none1@pci0:0:3:	class=0x088000 card=0x833810f7 chip=0x35858086 rev=0x02 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '852GM Configuration Process'
    class    = base peripheral
agp0@pci0:2:0:	class=0x030000 card=0x833810f7 chip=0x35828086 rev=0x02 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '852GM Integrated Graphics Device'
    class    = display
    subclass = VGA
none2@pci0:2:1:	class=0x038000 card=0x833810f7 chip=0x35828086 rev=0x02 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '852GM Integrated Graphics Device'
    class    = display
uhci0@pci0:29:0:	class=0x0c0300 card=0x833810f7 chip=0x24c28086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DB (ICH4) USB UHCI Controller #1'
    class    = serial bus
    subclass = USB
none3@pci0:29:7:	class=0x0c0320 card=0x833810f7 chip=0x24cd8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DB (ICH4) USB EHCI Controller'
    class    = serial bus
    subclass = USB
pcib1@pci0:30:0:	class=0x060400 card=0x00000000 chip=0x24488086 rev=0x83 hdr=0x01
    vendor   = 'Intel Corporation'
    device   = '82801BAM/CAM (ICH2/3) PCI to I/O Hub Bridge (2448)'
    class    = bridge
    subclass = PCI-PCI
isab0@pci0:31:0:	class=0x060100 card=0x00000000 chip=0x24cc8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DBM LPC Interface Bridge'
    class    = bridge
    subclass = PCI-ISA
atapci0@pci0:31:1:	class=0x01018a card=0x833810f7 chip=0x24ca8086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DBM IDE Controller (UltraATA/100)'
    class    = mass storage
    subclass = ATA
none4@pci0:31:3:	class=0x0c0500 card=0x833810f7 chip=0x24c38086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DB (ICH4) SMBus Controller'
    class    = serial bus
    subclass = SMBus
none5@pci0:31:5:	class=0x040100 card=0x834610f7 chip=0x24c58086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DB (ICH4) AC'97 Audio Controller'
    class    = multimedia
    subclass = audio
none6@pci0:31:6:	class=0x070300 card=0x834b10f7 chip=0x24c68086 rev=0x03 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801DB (ICH4) AC'97 Modem Controller'
    class    = simple comms
rl0@pci1:1:0:	class=0x020000 card=0x833810f7 chip=0x813910ec rev=0x10 hdr=0x00
    vendor   = 'Realtek Semiconductor'
    device   = 'RT8139 (A/B/C/8130) Fast Ethernet Adapter'
    class    = network
    subclass = ethernet
none7@pci1:4:0:	class=0x028000 card=0x25278086 chip=0x10438086 rev=0x04 hdr=0x00
    vendor   = 'Intel Corporation'
    class    = network
cbb0@pci1:5:0:	class=0x060700 card=0x833810f7 chip=0x04751180 rev=0x88 hdr=0x02
    vendor   = 'Communication Automation Corporation'
    device   = 'RL5C475 CardBus controller'
    class    = bridge
    subclass = PCI-CardBus
none8@pci1:5:1:	class=0x088000 card=0x833810f7 chip=0x05751180 rev=0x00 hdr=0x00
    vendor   = 'Communication Automation Corporation'
    class    = base peripheral
>How-To-Repeat:

install 5.1-RELEASE
acpiconf -s 3


>Fix:



>Release-Note:
>Audit-Trail:
>Unformatted: